Jakob Stoklund Olesen | 9321a6d | 2009-11-18 00:02:18 +0000 | [diff] [blame] | 1 | ; RUN: llc -O3 < %s |
| 2 | ; This test fails with: |
| 3 | ; Assertion failed: (!B && "UpdateTerminators requires analyzable predecessors!"), function updateTerminator, MachineBasicBlock.cpp, line 255. |
| 4 | |
| 5 | 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-n8:16:32:64" |
| 6 | target 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 { %"struct.llvm::InlineAsm::ConstraintInfo"*, %"struct.llvm::InlineAsm::ConstraintInfo"*, %"struct.llvm::InlineAsm::ConstraintInfo"* } |
| 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 { %"struct.std::string"*, %"struct.std::string"*, %"struct.std::string"* } |
| 13 | %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* } |
| 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 | |
| 18 | define zeroext i8 @_ZN4llvm9InlineAsm14ConstraintInfo5ParseENS_9StringRefERSt6vectorIS1_SaIS1_EE(%"struct.llvm::InlineAsm::ConstraintInfo"* nocapture %this, i64 %Str.0, i64 %Str.1, %"struct.std::vector<llvm::InlineAsm::ConstraintInfo,std::allocator<llvm::InlineAsm::ConstraintInfo> >"* nocapture %ConstraintsSoFar) nounwind ssp align 2 { |
| 19 | entry: |
| 20 | br i1 undef, label %bb56, label %bb27.outer |
| 21 | |
| 22 | bb8: ; preds = %bb27.outer108, %bb13 |
| 23 | switch i8 undef, label %bb27.outer [ |
| 24 | i8 35, label %bb56 |
| 25 | i8 37, label %bb14 |
| 26 | i8 38, label %bb10 |
| 27 | i8 42, label %bb56 |
| 28 | ] |
| 29 | |
| 30 | bb27.outer: ; preds = %bb8, %entry |
| 31 | %I.2.ph = phi i8* [ undef, %entry ], [ %I.2.ph109, %bb8 ] ; <i8*> [#uses=2] |
| 32 | br label %bb27.outer108 |
| 33 | |
| 34 | bb10: ; preds = %bb8 |
| 35 | %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 %bb56 |
| 38 | |
| 39 | bb13: ; preds = %bb10 |
| 40 | br i1 undef, label %bb27.outer108, label %bb8 |
| 41 | |
| 42 | bb14: ; preds = %bb8 |
| 43 | ret i8 1 |
| 44 | |
| 45 | bb27.outer108: ; preds = %bb13, %bb27.outer |
| 46 | %I.2.ph109 = getelementptr i8* %I.2.ph, i64 undef ; <i8*> [#uses=1] |
| 47 | %scevgep = getelementptr i8* %I.2.ph, i64 undef ; <i8*> [#uses=0] |
| 48 | br label %bb8 |
| 49 | |
| 50 | bb56: ; preds = %bb10, %bb8, %bb8, %entry |
| 51 | ret i8 1 |
| 52 | } |