53 lines · plain
1; RUN: llc -O3 < %s2; This test fails with:3; Assertion failed: (!B && "UpdateTerminators requires analyzable predecessors!"), function updateTerminator, MachineBasicBlock.cpp, line 255.4 5target 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-n8:16:32:64"6target triple = "x86_64-apple-darwin10.2"7 8%"struct.llvm::InlineAsm::ConstraintInfo" = type { i32, i8, i8, i8, i8, %"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> > > >" }9%"struct.std::_Vector_base<llvm::InlineAsm::ConstraintInfo,std::allocator<llvm::InlineAsm::ConstraintInfo> >" = type { %"struct.std::_Vector_base<llvm::InlineAsm::ConstraintInfo,std::allocator<llvm::InlineAsm::ConstraintInfo> >::_Vector_impl" }10%"struct.std::_Vector_base<llvm::InlineAsm::ConstraintInfo,std::allocator<llvm::InlineAsm::ConstraintInfo> >::_Vector_impl" = type { ptr, ptr, ptr }11%"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" }12%"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 { ptr, ptr, ptr }13%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { ptr }14%"struct.std::string" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }15%"struct.std::vector<llvm::InlineAsm::ConstraintInfo,std::allocator<llvm::InlineAsm::ConstraintInfo> >" = type { %"struct.std::_Vector_base<llvm::InlineAsm::ConstraintInfo,std::allocator<llvm::InlineAsm::ConstraintInfo> >" }16%"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> > > >" }17 18define zeroext i8 @_ZN4llvm9InlineAsm14ConstraintInfo5ParseENS_9StringRefERSt6vectorIS1_SaIS1_EE(ptr nocapture %this, i64 %Str.0, i64 %Str.1, ptr nocapture %ConstraintsSoFar) nounwind ssp align 2 {19entry:20 br i1 undef, label %bb56, label %bb27.outer21 22bb8: ; preds = %bb27.outer108, %bb1323 switch i8 undef, label %bb27.outer [24 i8 35, label %bb5625 i8 37, label %bb1426 i8 38, label %bb1027 i8 42, label %bb5628 ]29 30bb27.outer: ; preds = %bb8, %entry31 %I.2.ph = phi ptr [ undef, %entry ], [ %I.2.ph109, %bb8 ] ; <ptr> [#uses=2]32 br label %bb27.outer10833 34bb10: ; preds = %bb835 %toBool = icmp eq i8 0, 0 ; <i1> [#uses=1]36 %or.cond = and i1 undef, %toBool ; <i1> [#uses=1]37 br i1 %or.cond, label %bb13, label %bb5638 39bb13: ; preds = %bb1040 br i1 undef, label %bb27.outer108, label %bb841 42bb14: ; preds = %bb843 ret i8 144 45bb27.outer108: ; preds = %bb13, %bb27.outer46 %I.2.ph109 = getelementptr i8, ptr %I.2.ph, i64 undef ; <ptr> [#uses=1]47 %scevgep = getelementptr i8, ptr %I.2.ph, i64 undef ; <ptr> [#uses=0]48 br label %bb849 50bb56: ; preds = %bb10, %bb8, %bb8, %entry51 ret i8 152}53