; RUN: llc < %s -march=x86 -relocation-model=pic -stats |& grep {Number of valno def marked dead} | grep 1 ; rdar://6566708 target triple = "i386-apple-darwin9.6" %"struct..0$_58" = type { i32, %"struct.llvm::MachineOperand"**, %"struct.llvm::MachineOperand"* } %"struct..1$_60" = type { i32 } %"struct..3$_53" = type { i64 } %struct.__false_type = type <{ i8 }> %"struct.llvm::APFloat" = type { %"struct.llvm::fltSemantics"*, %"struct..3$_53", i16, i16 } %"struct.llvm::AbstractTypeUser" = type { i32 (...)** } %"struct.llvm::AnalysisResolver" = type { %"struct.std::vector,std::allocator > >", %"struct.llvm::PMDataManager"* } %"struct.llvm::Annotable" = type { %"struct.llvm::Annotation"* } %"struct.llvm::Annotation" = type { i32 (...)**, %"struct..1$_60", %"struct.llvm::Annotation"* } %"struct.llvm::Argument" = type { %"struct.llvm::Value", %"struct.llvm::ilist_node", %"struct.llvm::Function"* } %"struct.llvm::AttrListPtr" = type { %"struct.llvm::AttributeListImpl"* } %"struct.llvm::AttributeListImpl" = type opaque %"struct.llvm::BasicBlock" = type { %"struct.llvm::Value", %"struct.llvm::ilist_node", %"struct.llvm::iplist >", %"struct.llvm::Function"* } %"struct.llvm::BitVector" = type { i32*, i32, i32 } %"struct.llvm::BumpPtrAllocator" = type { i8* } %"struct.llvm::CalleeSavedInfo" = type { i32, %"struct.llvm::TargetRegisterClass"*, i32 } %"struct.llvm::CondCodeSDNode" = type { %"struct.llvm::SDNode", i32 } %"struct.llvm::Constant" = type { %"struct.llvm::User" } %"struct.llvm::DebugLocTracker" = type { %"struct.std::vector >", %"struct.llvm::DenseMap,llvm::DenseMapInfo >" } %"struct.llvm::DebugLocTuple" = type { i32, i32, i32 } %"struct.llvm::DenseMap,llvm::DenseMapInfo >" = type { i32, %"struct.std::pair"*, i32, i32 } %"struct.llvm::DwarfWriter" = type opaque %"struct.llvm::FoldingSet" = type { %"struct.llvm::FoldingSetImpl" } %"struct.llvm::FoldingSetImpl" = type { i32 (...)**, i8**, i32, i32 } %"struct.llvm::Function" = type { %"struct.llvm::GlobalValue", %"struct.llvm::Annotable", %"struct.llvm::ilist_node", %"struct.llvm::iplist >", %"struct.llvm::iplist >", %"struct.llvm::ValueSymbolTable"*, %"struct.llvm::AttrListPtr" } %"struct.llvm::FunctionLoweringInfo" = type opaque %"struct.llvm::GlobalAddressSDNode" = type { %"struct.llvm::SDNode", %"struct.llvm::GlobalValue"*, i64 } %"struct.llvm::GlobalValue" = type { %"struct.llvm::Constant", %"struct.llvm::Module"*, i32, %"struct.std::string" } %"struct.llvm::GlobalVariable" = type { %"struct.llvm::GlobalValue", %"struct.llvm::ilist_node", i8 } %"struct.llvm::ImmutablePass" = type { %"struct.llvm::ModulePass" } %"struct.llvm::Instruction" = type { %"struct.llvm::User", %"struct.llvm::ilist_node", %"struct.llvm::BasicBlock"* } %"struct.llvm::LandingPadInfo" = type <{ %"struct.llvm::MachineBasicBlock"*, [12 x i8], %"struct.llvm::SmallVector", %"struct.llvm::SmallVector", i32, %"struct.llvm::Function"*, %"struct.std::vector >", [3 x i32] }> %"struct.llvm::MVT" = type { %"struct..1$_60" } %"struct.llvm::MachineBasicBlock" = type { %"struct.llvm::ilist_node", %"struct.llvm::ilist", %"struct.llvm::BasicBlock"*, i32, %"struct.llvm::MachineFunction"*, %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", i32, i8 } %"struct.llvm::MachineConstantPool" = type opaque %"struct.llvm::MachineFrameInfo" = type { %"struct.std::vector >", i32, i8, i8, i64, i32, i32, i8, i32, i32, %"struct.std::vector >", %"struct.llvm::MachineModuleInfo"*, %"struct.llvm::TargetFrameInfo"* } %"struct.llvm::MachineFrameInfo::StackObject" = type { i64, i32, i8, i64 } %"struct.llvm::MachineFunction" = type { %"struct.llvm::Annotation", %"struct.llvm::Function"*, %"struct.llvm::TargetMachine"*, %"struct.llvm::MachineRegisterInfo"*, %"struct.llvm::AbstractTypeUser"*, %"struct.llvm::MachineFrameInfo"*, %"struct.llvm::MachineConstantPool"*, %"struct.llvm::MachineJumpTableInfo"*, %"struct.std::vector >", %"struct.llvm::BumpPtrAllocator", %"struct.llvm::Recycler", %"struct.llvm::Recycler", %"struct.llvm::ilist", %"struct.llvm::DebugLocTracker" } %"struct.llvm::MachineInstr" = type { %"struct.llvm::ilist_node", %"struct.llvm::TargetInstrDesc"*, i16, %"struct.std::vector >", %"struct.std::list >", %"struct.llvm::MachineBasicBlock"*, %"struct..1$_60" } %"struct.llvm::MachineJumpTableInfo" = type opaque %"struct.llvm::MachineLocation" = type { i8, i32, i32 } %"struct.llvm::MachineModuleInfo" = type { %"struct.llvm::ImmutablePass", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", %"struct.llvm::SmallPtrSet", i8, i8, i8 } %"struct.llvm::MachineMove" = type { i32, %"struct.llvm::MachineLocation", %"struct.llvm::MachineLocation" } %"struct.llvm::MachineOperand" = type { i8, i8, i8, %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineOperand::$_57" } %"struct.llvm::MachineOperand::$_57" = type { %"struct..0$_58" } %"struct.llvm::MachineRegisterInfo" = type { %"struct.std::vector,std::allocator > >", %"struct.std::vector >,std::allocator > > >", %"struct.llvm::MachineOperand"**, %"struct.llvm::BitVector", %"struct.std::vector,std::allocator > >", %"struct.std::vector >" } %"struct.llvm::Module" = type opaque %"struct.llvm::ModulePass" = type { %"struct.llvm::Pass" } %"struct.llvm::PATypeHandle" = type { %"struct.llvm::Type"*, %"struct.llvm::AbstractTypeUser"* } %"struct.llvm::PATypeHolder" = type { %"struct.llvm::Type"* } %"struct.llvm::PMDataManager" = type opaque %"struct.llvm::Pass" = type { i32 (...)**, %"struct.llvm::AnalysisResolver"*, i32, %"struct.std::vector,std::allocator > >" } %"struct.llvm::PassInfo" = type { i8*, i8*, i32, i8, i8, i8, %"struct.std::vector >", %"struct.llvm::Pass"* ()* } %"struct.llvm::Recycler" = type { %"struct.llvm::iplist >" } %"struct.llvm::RecyclerStruct" = type { %"struct.llvm::RecyclerStruct"*, %"struct.llvm::RecyclerStruct"* } %"struct.llvm::RecyclingAllocator" = type { %"struct.llvm::Recycler", %"struct.llvm::BumpPtrAllocator" } %"struct.llvm::SDNode" = type { %"struct.llvm::BumpPtrAllocator", %"struct.llvm::ilist_node", i16, i16, i32, %"struct.llvm::SDUse"*, %"struct.llvm::MVT"*, %"struct.llvm::SDUse"*, i16, i16, %"struct..1$_60" } %"struct.llvm::SDUse" = type { %"struct.llvm::SDValue", %"struct.llvm::SDNode"*, %"struct.llvm::SDUse"**, %"struct.llvm::SDUse"* } %"struct.llvm::SDVTList" = type { %"struct.llvm::MVT"*, i16 } %"struct.llvm::SDValue" = type { %"struct.llvm::SDNode"*, i32 } %"struct.llvm::SelectionDAG" = type { %"struct.llvm::TargetLowering"*, %"struct.llvm::MachineFunction"*, %"struct.llvm::FunctionLoweringInfo"*, %"struct.llvm::MachineModuleInfo"*, %"struct.llvm::DwarfWriter"*, %"struct.llvm::SDNode", %"struct.llvm::SDValue", %"struct.llvm::ilist", %"struct.llvm::RecyclingAllocator", %"struct.llvm::FoldingSet", %"struct.llvm::BumpPtrAllocator", %"struct.llvm::BumpPtrAllocator", %"struct.std::map, std::allocator >,std::less,std::allocator, std::allocator > > > >", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::vector >", %"struct.std::map, std::allocator >,std::less,std::allocator, std::allocator > > > >", %"struct.llvm::StringMap", %"struct.llvm::StringMap" } %"struct.llvm::SmallPtrSet" = type { %"struct.llvm::SmallPtrSetImpl", [32 x i8*] } %"struct.llvm::SmallPtrSetImpl" = type { i8**, i32, i32, i32, [1 x i8*] } %"struct.llvm::SmallVector" = type <{ [17 x i8], [127 x i8] }> %"struct.llvm::SmallVector" = type <{ [17 x i8], [3 x i8], [3 x i32] }> %"struct.llvm::StringMap" = type { %"struct.llvm::StringMapImpl", %struct.__false_type } %"struct.llvm::StringMapImpl" = type { %"struct.llvm::StringMapImpl::ItemBucket"*, i32, i32, i32, i32 } %"struct.llvm::StringMapImpl::ItemBucket" = type { i32, %"struct..1$_60"* } %"struct.llvm::TargetAsmInfo" = type opaque %"struct.llvm::TargetData" = type <{ %"struct.llvm::ImmutablePass", i8, i8, i8, i8, [4 x i8], %"struct.llvm::SmallVector" }> %"struct.llvm::TargetFrameInfo" = type { i32 (...)**, i32, i32, i32 } %"struct.llvm::TargetInstrDesc" = type { i16, i16, i16, i16, i8*, i32, i32, i32*, i32*, %"struct.llvm::TargetRegisterClass"**, %"struct.llvm::TargetOperandInfo"* } %"struct.llvm::TargetLowering" = type { i32 (...)**, %"struct.llvm::TargetMachine"*, %"struct.llvm::TargetData"*, %"struct.llvm::MVT", i8, i8, i8, i8, i8, i8, i8, %"struct.llvm::MVT", i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [30 x %"struct.llvm::TargetRegisterClass"*], [30 x i8], [30 x %"struct.llvm::MVT"], [30 x %"struct.llvm::MVT"], [179 x i64], [4 x i64], [30 x i64], [2 x [5 x i64]], [30 x i64], [24 x i64], %"struct.llvm::TargetLowering::ValueTypeActionImpl", %"struct.std::vector >", %"struct.std::vector,std::allocator > >", [23 x i8], %"struct.std::map, std::allocator >,std::less,std::allocator, std::allocator > > > >", [180 x i8*], [180 x i32], i32, i32, i32, i8 } %"struct.llvm::TargetLowering::ValueTypeActionImpl" = type { [2 x i32] } %"struct.llvm::TargetMachine" = type { i32 (...)**, %"struct.llvm::TargetAsmInfo"* } %"struct.llvm::TargetOperandInfo" = type { i16, i16, i32 } %"struct.llvm::TargetRegisterClass" = type { i32 (...)**, i32, i8, %"struct.llvm::MVT"*, %"struct.llvm::TargetRegisterClass"**, %"struct.llvm::TargetRegisterClass"**, i32, i32, i32, i32*, i32* } %"struct.llvm::Type" = type { %"struct.llvm::AbstractTypeUser", i8, [3 x i8], i32, %"struct.llvm::Type"*, %"struct.std::vector >", i32, %"struct.llvm::PATypeHandle"* } %"struct.llvm::Use" = type { %"struct.llvm::Value"*, %"struct.llvm::Use"*, %"struct..1$_60" } %"struct.llvm::User" = type { %"struct.llvm::Value", %"struct.llvm::Use"*, i32 } %"struct.llvm::Value" = type { i32 (...)**, i16, i16, %"struct.llvm::PATypeHolder", %"struct.llvm::Use"*, %"struct.llvm::ValueName"* } %"struct.llvm::ValueName" = type opaque %"struct.llvm::ValueSymbolTable" = type opaque %"struct.llvm::fltSemantics" = type opaque %"struct.llvm::ilist" = type { %"struct.llvm::iplist >" } %"struct.llvm::ilist" = type { %"struct.llvm::iplist >" } %"struct.llvm::ilist" = type { %"struct.llvm::iplist >" } %"struct.llvm::ilist_node" = type { %"struct.llvm::Argument"*, %"struct.llvm::Argument"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::Function"*, %"struct.llvm::Function"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::GlobalVariable"*, %"struct.llvm::GlobalVariable"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"* } %"struct.llvm::ilist_node" = type { %"struct.llvm::SDNode"*, %"struct.llvm::SDNode"* } %"struct.llvm::ilist_traits" = type { %"struct.llvm::MachineBasicBlock" } %"struct.llvm::ilist_traits" = type { %"struct.llvm::MachineInstr", %"struct.llvm::MachineBasicBlock"* } %"struct.llvm::ilist_traits" = type { %"struct.llvm::RecyclerStruct" } %"struct.llvm::ilist_traits" = type { %"struct.llvm::SDNode" } %"struct.llvm::iplist >" = type { %"struct.llvm::Argument"* } %"struct.llvm::iplist >" = type { %"struct.llvm::BasicBlock"* } %"struct.llvm::iplist >" = type { %"struct.llvm::Instruction"* } %"struct.llvm::iplist >" = type { %"struct.llvm::ilist_traits", %"struct.llvm::MachineBasicBlock"* } %"struct.llvm::iplist >" = type { %"struct.llvm::ilist_traits", %"struct.llvm::MachineInstr"* } %"struct.llvm::iplist >" = type { %"struct.llvm::ilist_traits", %"struct.llvm::RecyclerStruct"* } %"struct.llvm::iplist >" = type { %"struct.llvm::ilist_traits", %"struct.llvm::SDNode"* } %"struct.std::_List_base >" = type { %"struct.llvm::ilist_traits" } %"struct.std::_Rb_tree, std::allocator > >,std::_Select1st, std::allocator > > >,std::less,std::allocator, std::allocator > > > >" = type { %"struct.std::_Rb_tree, std::allocator > >,std::_Select1st, std::allocator > > >,std::less,std::allocator, std::allocator > > > >::_Rb_tree_impl,false>" } %"struct.std::_Rb_tree, std::allocator > >,std::_Select1st, std::allocator > > >,std::less,std::allocator, std::allocator > > > >::_Rb_tree_impl,false>" = type { %struct.__false_type, %"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::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { i32*, i32*, i32* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::APFloat"*, %"struct.llvm::APFloat"*, %"struct.llvm::APFloat"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::CalleeSavedInfo"*, %"struct.llvm::CalleeSavedInfo"*, %"struct.llvm::CalleeSavedInfo"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::CondCodeSDNode"**, %"struct.llvm::CondCodeSDNode"**, %"struct.llvm::CondCodeSDNode"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::DebugLocTuple"*, %"struct.llvm::DebugLocTuple"*, %"struct.llvm::DebugLocTuple"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::Function"**, %"struct.llvm::Function"**, %"struct.llvm::Function"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::GlobalVariable"**, %"struct.llvm::GlobalVariable"**, %"struct.llvm::GlobalVariable"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::LandingPadInfo"*, %"struct.llvm::LandingPadInfo"*, %"struct.llvm::LandingPadInfo"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::MachineBasicBlock"**, %"struct.llvm::MachineBasicBlock"**, %"struct.llvm::MachineBasicBlock"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::MachineFrameInfo::StackObject"*, %"struct.llvm::MachineFrameInfo::StackObject"*, %"struct.llvm::MachineFrameInfo::StackObject"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::MachineMove"*, %"struct.llvm::MachineMove"*, %"struct.llvm::MachineMove"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"* } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::SDNode"**, %"struct.llvm::SDNode"**, %"struct.llvm::SDNode"** } %"struct.std::_Vector_base >" = type { %"struct.std::_Vector_base >::_Vector_impl" } %"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::SDVTList"*, %"struct.llvm::SDVTList"*, %"struct.llvm::SDVTList"* } %"struct.std::_Vector_base,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" } %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" = type { %"struct.std::pair"*, %"struct.std::pair"*, %"struct.std::pair"* } %"struct.std::_Vector_base,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" } %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" = type { %"struct.std::pair"*, %"struct.std::pair"*, %"struct.std::pair"* } %"struct.std::_Vector_base,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" } %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" = type { %"struct.std::pair"*, %"struct.std::pair"*, %"struct.std::pair"* } %"struct.std::_Vector_base,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" } %"struct.std::_Vector_base,std::allocator > >::_Vector_impl" = type { %"struct.std::pair"*, %"struct.std::pair"*, %"struct.std::pair"* } %"struct.std::_Vector_base >,std::allocator > > >" = type { %"struct.std::_Vector_base >,std::allocator > > >::_Vector_impl" } %"struct.std::_Vector_base >,std::allocator > > >::_Vector_impl" = type { %"struct.std::vector >"*, %"struct.std::vector >"*, %"struct.std::vector >"* } %"struct.std::list >" = type { %"struct.std::_List_base >" } %"struct.std::map, std::allocator >,std::less,std::allocator, std::allocator > > > >" = type { %"struct.std::_Rb_tree, std::allocator > >,std::_Select1st, std::allocator > > >,std::less,std::allocator, std::allocator > > > >" } %"struct.std::pair" = type { %"struct.llvm::PassInfo"*, %"struct.llvm::Pass"* } %"struct.std::pair" = type { %"struct.llvm::TargetRegisterClass"*, %"struct.llvm::MachineOperand"* } %"struct.std::pair" = type { i32, i32 } %"struct.std::pair" = type { %"struct.llvm::DebugLocTuple", i32 } %"struct.std::pair" = type { %"struct.llvm::MVT", %"struct.llvm::TargetRegisterClass"* } %"struct.std::string" = type { %"struct.llvm::BumpPtrAllocator" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector >" = type { %"struct.std::_Vector_base >" } %"struct.std::vector,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >" } %"struct.std::vector,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >" } %"struct.std::vector,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >" } %"struct.std::vector,std::allocator > >" = type { %"struct.std::_Vector_base,std::allocator > >" } %"struct.std::vector >,std::allocator > > >" = type { %"struct.std::_Vector_base >,std::allocator > > >" } @"\01LC81" = internal constant [65 x i8] c"/Users/echeng/LLVM/llvm/include/llvm/CodeGen/SelectionDAGNodes.h\00" ; <[65 x i8]*> [#uses=1] @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__ = internal constant [13 x i8] c"getValueType\00" ; <[13 x i8]*> [#uses=1] @"\01LC83" = internal constant [46 x i8] c"ResNo < NumValues && \22Illegal result number!\22\00" ; <[46 x i8]*> [#uses=1] @"\01LC197" = internal constant [16 x i8] c"___tls_get_addr\00" ; <[16 x i8]*> [#uses=1] @llvm.used1 = appending global [1 x i8*] [ i8* bitcast (i64 (%"struct.llvm::GlobalAddressSDNode"*, %"struct.llvm::SelectionDAG"*, %"struct.llvm::MVT"*)* @_ZL31LowerToTLSGeneralDynamicModel32PN4llvm19GlobalAddressSDNodeERNS_12SelectionDAGENS_3MVTE to i8*) ], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0] define fastcc i64 @_ZL31LowerToTLSGeneralDynamicModel32PN4llvm19GlobalAddressSDNodeERNS_12SelectionDAGENS_3MVTE(%"struct.llvm::GlobalAddressSDNode"* %GA, %"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind noinline { entry: %VT2.i185 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT1.i186 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %Ops.i187 = alloca [4 x %"struct.llvm::SDValue"], align 8 ; <[4 x %"struct.llvm::SDValue"]*> [#uses=9] %0 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT182 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT2.i173 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT1.i174 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %Ops.i175 = alloca [4 x %"struct.llvm::SDValue"], align 8 ; <[4 x %"struct.llvm::SDValue"]*> [#uses=9] %1 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT3.i = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT2.i = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %VT1.i = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %Ops.i = alloca [3 x %"struct.llvm::SDValue"], align 8 ; <[3 x %"struct.llvm::SDValue"]*> [#uses=7] %VT = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %Ops1 = alloca [5 x %"struct.llvm::SDValue"], align 8 ; <[5 x %"struct.llvm::SDValue"]*> [#uses=11] %Ops = alloca [3 x %"struct.llvm::SDValue"], align 8 ; <[3 x %"struct.llvm::SDValue"]*> [#uses=7] %NodeTys = alloca %"struct.llvm::SDVTList", align 8 ; <%"struct.llvm::SDVTList"*> [#uses=4] %2 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %3 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %4 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %5 = alloca %"struct.llvm::MVT", align 8 ; <%"struct.llvm::MVT"*> [#uses=2] %6 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 0, i32 10, i32 0 ; [#uses=1] %7 = load i32* %6, align 4 ; [#uses=5] %8 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 208, i32 0, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; [#uses=2] %9 = trunc i64 %8 to i32 ; [#uses=1] %sroa.store.elt = lshr i64 %8, 32 ; [#uses=1] %10 = trunc i64 %sroa.store.elt to i32 ; [#uses=3] %tmp52 = inttoptr i32 %9 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=3] %11 = getelementptr %"struct.llvm::SelectionDAG"* %DAG, i32 0, i32 5 ; <%"struct.llvm::SDNode"*> [#uses=1] %12 = getelementptr %"struct.llvm::MVT"* %VT1.i186, i32 0, i32 0, i32 0 ; [#uses=1] store i32 0, i32* %12, align 8 %13 = getelementptr %"struct.llvm::MVT"* %VT2.i185, i32 0, i32 0, i32 0 ; [#uses=1] store i32 12, i32* %13, align 8 %14 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %VT1.i186, %"struct.llvm::MVT"* byval align 4 %VT2.i185) nounwind ; [#uses=1] %15 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %11, %"struct.llvm::SDNode"** %15, align 8 %16 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 0, i32 1 ; [#uses=1] store i32 0, i32* %16, align 4 %17 = getelementptr %"struct.llvm::SDNode"* %tmp52, i32 0, i32 9 ; [#uses=1] %18 = load i16* %17, align 2 ; [#uses=1] %19 = zext i16 %18 to i32 ; [#uses=1] %20 = icmp ugt i32 %19, %10 ; [#uses=1] br i1 %20, label %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193, label %bb.i.i.i188 bb.i.i.i188: ; preds = %entry call void @__assert_rtn(i8* getelementptr ([13 x i8]* @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__, i32 0, i32 0), i8* getelementptr ([65 x i8]* @"\01LC81", i32 0, i32 0), i32 1314, i8* getelementptr ([46 x i8]* @"\01LC83", i32 0, i32 0)) noreturn nounwind unreachable _ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193: ; preds = %entry %21 = trunc i64 %14 to i32 ; [#uses=1] %tmp4.i.i189 = inttoptr i32 %21 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] %22 = getelementptr %"struct.llvm::SDNode"* %tmp52, i32 0, i32 6 ; <%"struct.llvm::MVT"**> [#uses=1] %23 = load %"struct.llvm::MVT"** %22, align 4 ; <%"struct.llvm::MVT"*> [#uses=1] %24 = getelementptr %"struct.llvm::MVT"* %23, i32 %10, i32 0, i32 0 ; [#uses=1] %25 = load i32* %24, align 4 ; [#uses=1] %26 = getelementptr %"struct.llvm::MVT"* %0, i32 0, i32 0, i32 0 ; [#uses=1] store i32 %25, i32* %26, align 8 %27 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 19, %"struct.llvm::MVT"* byval align 4 %0) nounwind ; [#uses=2] %28 = trunc i64 %27 to i32 ; [#uses=1] %sroa.store.elt.i190 = lshr i64 %27, 32 ; [#uses=1] %29 = trunc i64 %sroa.store.elt.i190 to i32 ; [#uses=1] %30 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] %tmp5.i191 = inttoptr i32 %28 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] store %"struct.llvm::SDNode"* %tmp5.i191, %"struct.llvm::SDNode"** %30, align 8 %31 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 1, i32 1 ; [#uses=1] store i32 %29, i32* %31, align 4 %32 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp52, %"struct.llvm::SDNode"** %32, align 8 %33 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 2, i32 1 ; [#uses=1] store i32 %10, i32* %33, align 4 %34 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 3, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* null, %"struct.llvm::SDNode"** %34, align 8 %35 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 3, i32 1 ; [#uses=1] store i32 0, i32* %35, align 4 %36 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i187, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] %37 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 36, i32 %7, %"struct.llvm::MVT"* %tmp4.i.i189, i32 2, %"struct.llvm::SDValue"* %36, i32 3) nounwind ; [#uses=2] %38 = trunc i64 %37 to i32 ; [#uses=1] %tmp66 = inttoptr i32 %38 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=2] %39 = getelementptr %"struct.llvm::MVT"* %5, i32 0, i32 0, i32 0 ; [#uses=1] store i32 12, i32* %39, align 8 %40 = getelementptr %"struct.llvm::MVT"* %4, i32 0, i32 0, i32 0 ; [#uses=1] store i32 0, i32* %40, align 8 %41 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_S1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %PtrVT, %"struct.llvm::MVT"* byval align 4 %4, %"struct.llvm::MVT"* byval align 4 %5) nounwind ; [#uses=2] %42 = trunc i64 %41 to i32 ; [#uses=1] %sroa.store.elt75 = lshr i64 %41, 32 ; [#uses=1] %43 = trunc i64 %sroa.store.elt75 to i16 ; [#uses=1] %44 = getelementptr %"struct.llvm::SDVTList"* %NodeTys, i32 0, i32 0 ; <%"struct.llvm::MVT"**> [#uses=2] %tmp78 = inttoptr i32 %42 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] store %"struct.llvm::MVT"* %tmp78, %"struct.llvm::MVT"** %44, align 8 %45 = getelementptr %"struct.llvm::SDVTList"* %NodeTys, i32 0, i32 1 ; [#uses=2] store i16 %43, i16* %45, align 4 %46 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 0, i32 9 ; [#uses=1] %47 = load i16* %46, align 2 ; [#uses=1] %48 = icmp eq i16 %47, 0 ; [#uses=1] br i1 %48, label %bb.i, label %_ZNK4llvm6SDNode12getValueTypeEj.exit bb.i: ; preds = %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193 call void @__assert_rtn(i8* getelementptr ([13 x i8]* @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__, i32 0, i32 0), i8* getelementptr ([65 x i8]* @"\01LC81", i32 0, i32 0), i32 1314, i8* getelementptr ([46 x i8]* @"\01LC83", i32 0, i32 0)) noreturn nounwind unreachable _ZNK4llvm6SDNode12getValueTypeEj.exit: ; preds = %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit193 %sroa.store.elt63 = lshr i64 %37, 32 ; [#uses=1] %49 = trunc i64 %sroa.store.elt63 to i32 ; [#uses=1] %50 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 2 ; [#uses=1] %51 = load i64* %50, align 4 ; [#uses=1] %52 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 0, i32 6 ; <%"struct.llvm::MVT"**> [#uses=1] %53 = load %"struct.llvm::MVT"** %52, align 4 ; <%"struct.llvm::MVT"*> [#uses=1] %54 = getelementptr %"struct.llvm::MVT"* %53, i32 0, i32 0, i32 0 ; [#uses=1] %55 = load i32* %54, align 4 ; [#uses=1] %56 = getelementptr %"struct.llvm::GlobalAddressSDNode"* %GA, i32 0, i32 1 ; <%"struct.llvm::GlobalValue"**> [#uses=1] %57 = load %"struct.llvm::GlobalValue"** %56, align 4 ; <%"struct.llvm::GlobalValue"*> [#uses=1] %58 = getelementptr %"struct.llvm::MVT"* %VT182, i32 0, i32 0, i32 0 ; [#uses=1] store i32 %55, i32* %58, align 8 %59 = call i64 @_ZN4llvm12SelectionDAG16getGlobalAddressEPKNS_11GlobalValueENS_3MVTExb(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::GlobalValue"* %57, %"struct.llvm::MVT"* byval align 4 %VT182, i64 %51, i8 zeroext 1) nounwind ; [#uses=2] %60 = trunc i64 %59 to i32 ; [#uses=1] %sroa.store.elt83 = lshr i64 %59, 32 ; [#uses=1] %61 = trunc i64 %sroa.store.elt83 to i32 ; [#uses=1] %tmp86 = inttoptr i32 %60 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] %62 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp66, %"struct.llvm::SDNode"** %62, align 8 %63 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 0, i32 1 ; [#uses=1] store i32 %49, i32* %63, align 4 %64 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp86, %"struct.llvm::SDNode"** %64, align 8 %65 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 1, i32 1 ; [#uses=1] store i32 %61, i32* %65, align 4 %66 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp66, %"struct.llvm::SDNode"** %66, align 8 %67 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 2, i32 1 ; [#uses=1] store i32 1, i32* %67, align 4 %68 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] %69 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_8SDVTListEPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 220, i32 %7, %"struct.llvm::SDVTList"* byval align 4 %NodeTys, %"struct.llvm::SDValue"* %68, i32 3) nounwind ; [#uses=2] %70 = trunc i64 %69 to i32 ; [#uses=1] %sroa.store.elt89 = lshr i64 %69, 32 ; [#uses=1] %71 = trunc i64 %sroa.store.elt89 to i32 ; [#uses=3] %tmp92 = inttoptr i32 %70 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=7] call void @_ZNK4llvm6SDNode4dumpEv(%"struct.llvm::SDNode"* %tmp92) nounwind %72 = getelementptr %"struct.llvm::MVT"* %VT1.i174, i32 0, i32 0, i32 0 ; [#uses=1] store i32 0, i32* %72, align 8 %73 = getelementptr %"struct.llvm::MVT"* %VT2.i173, i32 0, i32 0, i32 0 ; [#uses=1] store i32 12, i32* %73, align 8 %74 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %VT1.i174, %"struct.llvm::MVT"* byval align 4 %VT2.i173) nounwind ; [#uses=1] %75 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp92, %"struct.llvm::SDNode"** %75, align 8 %76 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 0, i32 1 ; [#uses=1] store i32 1, i32* %76, align 4 %77 = getelementptr %"struct.llvm::SDNode"* %tmp92, i32 0, i32 9 ; [#uses=1] %78 = load i16* %77, align 2 ; [#uses=1] %79 = zext i16 %78 to i32 ; [#uses=1] %80 = icmp ugt i32 %79, %71 ; [#uses=1] br i1 %80, label %_ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit, label %bb.i.i.i bb.i.i.i: ; preds = %_ZNK4llvm6SDNode12getValueTypeEj.exit call void @__assert_rtn(i8* getelementptr ([13 x i8]* @_ZZNK4llvm6SDNode12getValueTypeEjE8__func__, i32 0, i32 0), i8* getelementptr ([65 x i8]* @"\01LC81", i32 0, i32 0), i32 1314, i8* getelementptr ([46 x i8]* @"\01LC83", i32 0, i32 0)) noreturn nounwind unreachable _ZN4llvm12SelectionDAG12getCopyToRegENS_7SDValueENS_8DebugLocEjS1_S1_.exit: ; preds = %_ZNK4llvm6SDNode12getValueTypeEj.exit %81 = trunc i64 %74 to i32 ; [#uses=1] %tmp4.i.i176 = inttoptr i32 %81 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] %82 = getelementptr %"struct.llvm::SDNode"* %tmp92, i32 0, i32 6 ; <%"struct.llvm::MVT"**> [#uses=1] %83 = load %"struct.llvm::MVT"** %82, align 4 ; <%"struct.llvm::MVT"*> [#uses=1] %84 = getelementptr %"struct.llvm::MVT"* %83, i32 %71, i32 0, i32 0 ; [#uses=1] %85 = load i32* %84, align 4 ; [#uses=1] %86 = getelementptr %"struct.llvm::MVT"* %1, i32 0, i32 0, i32 0 ; [#uses=1] store i32 %85, i32* %86, align 8 %87 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 17, %"struct.llvm::MVT"* byval align 4 %1) nounwind ; [#uses=2] %88 = trunc i64 %87 to i32 ; [#uses=1] %sroa.store.elt.i177 = lshr i64 %87, 32 ; [#uses=1] %89 = trunc i64 %sroa.store.elt.i177 to i32 ; [#uses=1] %90 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] %tmp5.i178 = inttoptr i32 %88 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] store %"struct.llvm::SDNode"* %tmp5.i178, %"struct.llvm::SDNode"** %90, align 8 %91 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 1, i32 1 ; [#uses=1] store i32 %89, i32* %91, align 4 %92 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp92, %"struct.llvm::SDNode"** %92, align 8 %93 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 2, i32 1 ; [#uses=1] store i32 %71, i32* %93, align 4 %94 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 3, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp92, %"struct.llvm::SDNode"** %94, align 8 %95 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 3, i32 1 ; [#uses=1] store i32 2, i32* %95, align 4 %96 = icmp eq %"struct.llvm::SDNode"* %tmp92, null ; [#uses=1] %iftmp.583.0.i = select i1 %96, i32 3, i32 4 ; [#uses=1] %97 = getelementptr [4 x %"struct.llvm::SDValue"]* %Ops.i175, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] %98 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 36, i32 %7, %"struct.llvm::MVT"* %tmp4.i.i176, i32 2, %"struct.llvm::SDValue"* %97, i32 %iftmp.583.0.i) nounwind ; [#uses=2] %99 = trunc i64 %98 to i32 ; [#uses=1] %sroa.store.elt107 = lshr i64 %98, 32 ; [#uses=1] %100 = trunc i64 %sroa.store.elt107 to i32 ; [#uses=1] %tmp110 = inttoptr i32 %99 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=2] %101 = getelementptr %"struct.llvm::MVT"* %3, i32 0, i32 0, i32 0 ; [#uses=1] store i32 12, i32* %101, align 8 %102 = getelementptr %"struct.llvm::MVT"* %2, i32 0, i32 0, i32 0 ; [#uses=1] store i32 0, i32* %102, align 8 %103 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %2, %"struct.llvm::MVT"* byval align 4 %3) nounwind ; [#uses=2] %104 = trunc i64 %103 to i32 ; [#uses=1] %sroa.store.elt119 = lshr i64 %103, 32 ; [#uses=1] %105 = trunc i64 %sroa.store.elt119 to i16 ; [#uses=1] %tmp122 = inttoptr i32 %104 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] store %"struct.llvm::MVT"* %tmp122, %"struct.llvm::MVT"** %44, align 8 store i16 %105, i16* %45, align 4 %106 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp110, %"struct.llvm::SDNode"** %106, align 8 %107 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 0, i32 1 ; [#uses=1] store i32 %100, i32* %107, align 4 %108 = call i64 @_ZN4llvm12SelectionDAG23getTargetExternalSymbolEPKcNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i8* getelementptr ([16 x i8]* @"\01LC197", i32 0, i32 0), %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; [#uses=2] %109 = trunc i64 %108 to i32 ; [#uses=1] %sroa.store.elt125 = lshr i64 %108, 32 ; [#uses=1] %110 = trunc i64 %sroa.store.elt125 to i32 ; [#uses=1] %111 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] %tmp128 = inttoptr i32 %109 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] store %"struct.llvm::SDNode"* %tmp128, %"struct.llvm::SDNode"** %111, align 8 %112 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 1, i32 1 ; [#uses=1] store i32 %110, i32* %112, align 4 %113 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 17, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; [#uses=2] %114 = trunc i64 %113 to i32 ; [#uses=1] %sroa.store.elt131 = lshr i64 %113, 32 ; [#uses=1] %115 = trunc i64 %sroa.store.elt131 to i32 ; [#uses=1] %116 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] %tmp134 = inttoptr i32 %114 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] store %"struct.llvm::SDNode"* %tmp134, %"struct.llvm::SDNode"** %116, align 8 %117 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 2, i32 1 ; [#uses=1] store i32 %115, i32* %117, align 4 %118 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 19, %"struct.llvm::MVT"* byval align 4 %PtrVT) nounwind ; [#uses=2] %119 = trunc i64 %118 to i32 ; [#uses=1] %sroa.store.elt137 = lshr i64 %118, 32 ; [#uses=1] %120 = trunc i64 %sroa.store.elt137 to i32 ; [#uses=1] %121 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 3, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] %tmp140 = inttoptr i32 %119 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] store %"struct.llvm::SDNode"* %tmp140, %"struct.llvm::SDNode"** %121, align 8 %122 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 3, i32 1 ; [#uses=1] store i32 %120, i32* %122, align 4 %123 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 4, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp110, %"struct.llvm::SDNode"** %123, align 8 %124 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 4, i32 1 ; [#uses=1] store i32 1, i32* %124, align 4 %125 = getelementptr [5 x %"struct.llvm::SDValue"]* %Ops1, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] %126 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_8SDVTListEPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 195, i32 %7, %"struct.llvm::SDVTList"* byval align 4 %NodeTys, %"struct.llvm::SDValue"* %125, i32 5) nounwind ; [#uses=2] %127 = trunc i64 %126 to i32 ; [#uses=1] %sroa.store.elt143 = lshr i64 %126, 32 ; [#uses=1] %128 = trunc i64 %sroa.store.elt143 to i32 ; [#uses=1] %tmp146 = inttoptr i32 %127 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=3] %tmp171195 = getelementptr %"struct.llvm::MVT"* %PtrVT, i32 0, i32 0, i32 0 ; [#uses=1] %tmp197 = load i32* %tmp171195, align 1 ; [#uses=2] %129 = getelementptr %"struct.llvm::MVT"* %VT, i32 0, i32 0, i32 0 ; [#uses=1] store i32 %tmp197, i32* %129, align 8 %130 = getelementptr %"struct.llvm::MVT"* %VT1.i, i32 0, i32 0, i32 0 ; [#uses=1] store i32 %tmp197, i32* %130, align 8 %131 = getelementptr %"struct.llvm::MVT"* %VT2.i, i32 0, i32 0, i32 0 ; [#uses=1] store i32 0, i32* %131, align 8 %132 = getelementptr %"struct.llvm::MVT"* %VT3.i, i32 0, i32 0, i32 0 ; [#uses=1] store i32 12, i32* %132, align 8 %133 = call i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_S1_(%"struct.llvm::SelectionDAG"* %DAG, %"struct.llvm::MVT"* byval align 4 %VT1.i, %"struct.llvm::MVT"* byval align 4 %VT2.i, %"struct.llvm::MVT"* byval align 4 %VT3.i) nounwind ; [#uses=1] %134 = trunc i64 %133 to i32 ; [#uses=1] %tmp4.i.i = inttoptr i32 %134 to %"struct.llvm::MVT"* ; <%"struct.llvm::MVT"*> [#uses=1] %135 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 0, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp146, %"struct.llvm::SDNode"** %135, align 8 %136 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 0, i32 1 ; [#uses=1] store i32 %128, i32* %136, align 4 %137 = call i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"* %DAG, i32 17, %"struct.llvm::MVT"* byval align 4 %VT) nounwind ; [#uses=2] %138 = trunc i64 %137 to i32 ; [#uses=1] %sroa.store.elt.i = lshr i64 %137, 32 ; [#uses=1] %139 = trunc i64 %sroa.store.elt.i to i32 ; [#uses=1] %140 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 1, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] %tmp5.i = inttoptr i32 %138 to %"struct.llvm::SDNode"* ; <%"struct.llvm::SDNode"*> [#uses=1] store %"struct.llvm::SDNode"* %tmp5.i, %"struct.llvm::SDNode"** %140, align 8 %141 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 1, i32 1 ; [#uses=1] store i32 %139, i32* %141, align 4 %142 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 2, i32 0 ; <%"struct.llvm::SDNode"**> [#uses=1] store %"struct.llvm::SDNode"* %tmp146, %"struct.llvm::SDNode"** %142, align 8 %143 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 2, i32 1 ; [#uses=1] store i32 1, i32* %143, align 4 %144 = icmp eq %"struct.llvm::SDNode"* %tmp146, null ; [#uses=1] %iftmp.588.0.i = select i1 %144, i32 2, i32 3 ; [#uses=1] %145 = getelementptr [3 x %"struct.llvm::SDValue"]* %Ops.i, i32 0, i32 0 ; <%"struct.llvm::SDValue"*> [#uses=1] %146 = call i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"* %DAG, i32 37, i32 %7, %"struct.llvm::MVT"* %tmp4.i.i, i32 3, %"struct.llvm::SDValue"* %145, i32 %iftmp.588.0.i) nounwind ; [#uses=1] ret i64 %146 } declare void @__assert_rtn(i8*, i8*, i32, i8*) noreturn declare i64 @_ZN4llvm12SelectionDAG16getGlobalAddressEPKNS_11GlobalValueENS_3MVTExb(%"struct.llvm::SelectionDAG"*, %"struct.llvm::GlobalValue"*, %"struct.llvm::MVT"* byval align 4, i64, i8 zeroext) declare i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_(%"struct.llvm::SelectionDAG"*, %"struct.llvm::MVT"* byval align 4, %"struct.llvm::MVT"* byval align 4) declare i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_8SDVTListEPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"*, i32, i32, %"struct.llvm::SDVTList"* byval align 4, %"struct.llvm::SDValue"*, i32) declare i64 @_ZN4llvm12SelectionDAG11getRegisterEjNS_3MVTE(%"struct.llvm::SelectionDAG"*, i32, %"struct.llvm::MVT"* byval align 4) declare i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocEPKNS_3MVTEjPKNS_7SDValueEj(%"struct.llvm::SelectionDAG"*, i32, i32, %"struct.llvm::MVT"*, i32, %"struct.llvm::SDValue"*, i32) declare i64 @_ZN4llvm12SelectionDAG9getVTListENS_3MVTES1_S1_(%"struct.llvm::SelectionDAG"*, %"struct.llvm::MVT"* byval align 4, %"struct.llvm::MVT"* byval align 4, %"struct.llvm::MVT"* byval align 4) declare i64 @_ZN4llvm12SelectionDAG23getTargetExternalSymbolEPKcNS_3MVTE(%"struct.llvm::SelectionDAG"*, i8*, %"struct.llvm::MVT"* byval align 4) declare i64 @_ZN4llvm12SelectionDAG7getNodeEjNS_8DebugLocENS_3MVTE(%"struct.llvm::SelectionDAG"*, i32, i32, %"struct.llvm::MVT"* byval align 4) declare void @_ZNK4llvm6SDNode4dumpEv(%"struct.llvm::SDNode"*)