; RUN: llc < %s | FileCheck %s
target datalayout = "E-m:e-i64:64-n32:64"
target triple = "powerpc64-bgq-linux"

%"class.Foam::messageStream.6" = type <{ %"class.Foam::string.5", i32, i32, i32, [4 x i8] }>
%"class.Foam::string.5" = type { %"class.std::basic_string.4" }
%"class.std::basic_string.4" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider.3" }
%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider.3" = type { i8* }
%"class.Foam::prefixOSstream.27" = type { %"class.Foam::OSstream.26", i8, %"class.Foam::string.5" }
%"class.Foam::OSstream.26" = type { %"class.Foam::Ostream.base.9", %"class.Foam::fileName.10", %"class.std::basic_ostream.25"* }
%"class.Foam::Ostream.base.9" = type <{ %"class.Foam::IOstream.8", i16 }>
%"class.Foam::IOstream.8" = type { i32 (...)**, i32, [4 x i8], %"class.Foam::IOstream::versionNumber.7", i32, i32, i32, i32 }
%"class.Foam::IOstream::versionNumber.7" = type <{ double, i32, [4 x i8] }>
%"class.Foam::fileName.10" = type { %"class.Foam::string.5" }
%"class.std::basic_ostream.25" = type { i32 (...)**, %"class.std::basic_ios.24" }
%"class.std::basic_ios.24" = type { %"class.std::ios_base.16", %"class.std::basic_ostream.25"*, i8, i8, %"class.std::basic_streambuf.17"*, %"class.std::ctype.21"*, %"class.std::__gnu_cxx_ldbl128::num_put.22"*, %"class.std::__gnu_cxx_ldbl128::num_get.23"* }
%"class.std::ios_base.16" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list.11"*, %"struct.std::ios_base::_Words.12", [8 x %"struct.std::ios_base::_Words.12"], i32, %"struct.std::ios_base::_Words.12"*, %"class.std::locale.15" }
%"struct.std::ios_base::_Callback_list.11" = type { %"struct.std::ios_base::_Callback_list.11"*, void (i32, %"class.std::ios_base.16"*, i32)*, i32, i32 }
%"struct.std::ios_base::_Words.12" = type { i8*, i64 }
%"class.std::locale.15" = type { %"class.std::locale::_Impl.14"* }
%"class.std::locale::_Impl.14" = type { i32, %"class.std::locale::facet.13"**, i64, %"class.std::locale::facet.13"**, i8** }
%"class.std::locale::facet.13" = type <{ i32 (...)**, i32, [4 x i8] }>
%"class.std::basic_streambuf.17" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale.15" }
%"class.std::ctype.21" = type <{ %"class.std::locale::facet.base.18", [4 x i8], %struct.__locale_struct.20*, i8, [7 x i8], i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8, [6 x i8] }>
%"class.std::locale::facet.base.18" = type <{ i32 (...)**, i32 }>
%struct.__locale_struct.20 = type { [13 x %struct.__locale_data.19*], i16*, i32*, i32*, [13 x i8*] }
%struct.__locale_data.19 = type opaque
%"class.std::__gnu_cxx_ldbl128::num_put.22" = type { %"class.std::locale::facet.base.18", [4 x i8] }
%"class.std::__gnu_cxx_ldbl128::num_get.23" = type { %"class.std::locale::facet.base.18", [4 x i8] }
%"class.Foam::primitiveMesh.135" = type { i32 (...)**, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.Foam::List.116"*, %"class.Foam::List.0"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.5"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::List.1"*, %"class.Foam::DynamicList.40", %"class.Foam::HashSet.127", %"class.Foam::Field.131"*, %"class.Foam::Field.131"*, %"class.Foam::Field.11"*, %"class.Foam::Field.131"* }
%"class.Foam::List.116" = type opaque
%"class.Foam::List.0" = type { %"class.Foam::UList.119" }
%"class.Foam::UList.119" = type { i32, %"class.Foam::edge.118"* }
%"class.Foam::edge.118" = type { %"class.Foam::FixedList.117" }
%"class.Foam::FixedList.117" = type { [2 x i32] }
%"class.Foam::List.5" = type { %"class.Foam::UList.6" }
%"class.Foam::UList.6" = type { i32, %"class.Foam::cell.121"* }
%"class.Foam::cell.121" = type { %"class.Foam::List.3" }
%"class.Foam::List.3" = type { %"class.Foam::UList.4" }
%"class.Foam::UList.4" = type { i32, i32* }
%"class.Foam::List.1" = type { %"class.Foam::UList.2" }
%"class.Foam::UList.2" = type { i32, %"class.Foam::List.3"* }
%"class.Foam::DynamicList.40" = type <{ %"class.Foam::List.3", i32, [4 x i8] }>
%"class.Foam::HashSet.127" = type { %"class.Foam::HashTable.7" }
%"class.Foam::HashTable.7" = type { i32, i32, %"struct.Foam::HashTable<Foam::nil, int, Foam::Hash<Foam::label> >::hashedEntry.125"** }
%"struct.Foam::HashTable<Foam::nil, int, Foam::Hash<Foam::label> >::hashedEntry.125" = type <{ i32, [4 x i8], %"struct.Foam::HashTable<Foam::nil, int, Foam::Hash<Foam::label> >::hashedEntry.125"*, %"class.Foam::nil.124", [7 x i8] }>
%"class.Foam::nil.124" = type { i8 }
%"class.Foam::Field.11" = type { %"class.Foam::refCount.128", %"class.Foam::List.12" }
%"class.Foam::refCount.128" = type { i32 }
%"class.Foam::List.12" = type { %"class.Foam::UList.13" }
%"class.Foam::UList.13" = type { i32, double* }
%"class.Foam::Field.131" = type { %"class.Foam::refCount.128", %"class.Foam::List.8" }
%"class.Foam::List.8" = type { %"class.Foam::UList.9" }
%"class.Foam::UList.9" = type { i32, %"class.Foam::Vector.29"* }
%"class.Foam::Vector.29" = type { %"class.Foam::VectorSpace.10" }
%"class.Foam::VectorSpace.10" = type { [3 x double] }
%"class.Foam::Ostream.189" = type <{ %"class.Foam::IOstream.8", i16, [6 x i8] }>

@_ZN4Foam4InfoE = external global %"class.Foam::messageStream.6", align 8
@.str27 = external unnamed_addr constant [24 x i8], align 1
@.str28 = external unnamed_addr constant [7 x i8], align 1
@_ZN4Foam4PoutE = external global %"class.Foam::prefixOSstream.27", align 8

define void @_ZN4Foam13checkTopologyERKNS_8polyMeshEbb(i1 zeroext %allTopology) #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
  br i1 undef, label %for.body, label %for.cond.cleanup

; CHECK-LABEL: @_ZN4Foam13checkTopologyERKNS_8polyMeshEbb

; CHECK: addis [[REG1:[0-9]+]], 2, .LC0@toc@ha
; CHECK: std 2, 40(1)
; CHECK: ld {{[0-9]+}}, .LC0@toc@l([[REG1]])
; CHECK: {{mr|ld}} 2,
; CHECK: mtctr
; CHECK: bctrl
; CHECK: ld 2, 40(1)

; CHECK: addis [[REG1:[0-9]+]], 2, .LC0@toc@ha
; CHECK: std 2, 40(1)
; CHECK: ld {{[0-9]+}}, .LC0@toc@l([[REG1]])
; CHECK: {{mr|ld}} 2,
; CHECK: mtctr
; CHECK: bctrl
; CHECK: ld 2, 40(1)

for.cond.cleanup:                                 ; preds = %entry
  br i1 undef, label %if.then.i, label %if.else.i

if.then.i:                                        ; preds = %for.cond.cleanup
  br i1 undef, label %if.then.i1435, label %if.else.i1436

if.else.i:                                        ; preds = %for.cond.cleanup
  unreachable

if.then.i1435:                                    ; preds = %if.then.i
  br label %_ZN4Foam12returnReduceIiNS_5sumOpIiEEEET_RKS3_RKT0_ii.exit

if.else.i1436:                                    ; preds = %if.then.i
  br label %_ZN4Foam12returnReduceIiNS_5sumOpIiEEEET_RKS3_RKT0_ii.exit

_ZN4Foam12returnReduceIiNS_5sumOpIiEEEET_RKS3_RKT0_ii.exit: ; preds = %if.else.i1436, %if.then.i1435
  br i1 undef, label %for.body.i, label %_ZNK4Foam8ZoneMeshINS_8cellZoneENS_8polyMeshEE15checkDefinitionEb.exit

for.body:                                         ; preds = %entry
  unreachable

for.body.i:                                       ; preds = %_ZN4Foam12returnReduceIiNS_5sumOpIiEEEET_RKS3_RKT0_ii.exit
  unreachable

_ZNK4Foam8ZoneMeshINS_8cellZoneENS_8polyMeshEE15checkDefinitionEb.exit: ; preds = %_ZN4Foam12returnReduceIiNS_5sumOpIiEEEET_RKS3_RKT0_ii.exit
  br i1 undef, label %for.body.i1480, label %_ZNK4Foam8ZoneMeshINS_8faceZoneENS_8polyMeshEE15checkDefinitionEb.exit

for.body.i1480:                                   ; preds = %_ZNK4Foam8ZoneMeshINS_8cellZoneENS_8polyMeshEE15checkDefinitionEb.exit
  unreachable

_ZNK4Foam8ZoneMeshINS_8faceZoneENS_8polyMeshEE15checkDefinitionEb.exit: ; preds = %_ZNK4Foam8ZoneMeshINS_8cellZoneENS_8polyMeshEE15checkDefinitionEb.exit
  br i1 undef, label %for.body.i1504, label %_ZNK4Foam8ZoneMeshINS_9pointZoneENS_8polyMeshEE15checkDefinitionEb.exit

for.body.i1504:                                   ; preds = %_ZNK4Foam8ZoneMeshINS_8faceZoneENS_8polyMeshEE15checkDefinitionEb.exit
  unreachable

_ZNK4Foam8ZoneMeshINS_9pointZoneENS_8polyMeshEE15checkDefinitionEb.exit: ; preds = %_ZNK4Foam8ZoneMeshINS_8faceZoneENS_8polyMeshEE15checkDefinitionEb.exit
  invoke void @_ZN4Foam4word12stripInvalidEv()
          to label %_ZN4Foam4wordC2EPKcb.exit unwind label %lpad.i

lpad.i:                                           ; preds = %_ZNK4Foam8ZoneMeshINS_9pointZoneENS_8polyMeshEE15checkDefinitionEb.exit
  %0 = landingpad { i8*, i32 }
          cleanup
  resume { i8*, i32 } %0

_ZN4Foam4wordC2EPKcb.exit:                        ; preds = %_ZNK4Foam8ZoneMeshINS_9pointZoneENS_8polyMeshEE15checkDefinitionEb.exit
  invoke void @_ZN4Foam7cellSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE()
          to label %invoke.cont59 unwind label %lpad

invoke.cont59:                                    ; preds = %_ZN4Foam4wordC2EPKcb.exit
  br i1 undef, label %_ZNSsD2Ev.exit, label %if.then.i.i, !prof !1

if.then.i.i:                                      ; preds = %invoke.cont59
  br i1 true, label %if.then.i.i.i1508, label %if.else.i.i.i

if.then.i.i.i1508:                                ; preds = %if.then.i.i
  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i

if.else.i.i.i:                                    ; preds = %if.then.i.i
  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i

_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i: ; preds = %if.else.i.i.i, %if.then.i.i.i1508
  br i1 undef, label %if.then4.i.i, label %_ZNSsD2Ev.exit

if.then4.i.i:                                     ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
  br label %_ZNSsD2Ev.exit

_ZNSsD2Ev.exit:                                   ; preds = %if.then4.i.i, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i, %invoke.cont59
  br i1 undef, label %for.body70, label %for.cond.cleanup69

for.cond.cleanup69:                               ; preds = %_ZNSsD2Ev.exit
  br i1 undef, label %if.then121, label %if.else

lpad:                                             ; preds = %_ZN4Foam4wordC2EPKcb.exit
  %1 = landingpad { i8*, i32 }
          cleanup
  br i1 undef, label %_ZNSsD2Ev.exit1578, label %if.then.i.i1570, !prof !1

if.then.i.i1570:                                  ; preds = %lpad
  br i1 undef, label %if.then4.i.i1577, label %_ZNSsD2Ev.exit1578

if.then4.i.i1577:                                 ; preds = %if.then.i.i1570
  unreachable

_ZNSsD2Ev.exit1578:                               ; preds = %if.then.i.i1570, %lpad
  unreachable

for.body70:                                       ; preds = %_ZNSsD2Ev.exit
  unreachable

if.then121:                                       ; preds = %for.cond.cleanup69
  unreachable

if.else:                                          ; preds = %for.cond.cleanup69
  invoke void @_ZN4Foam4word12stripInvalidEv()
          to label %_ZN4Foam4wordC2EPKcb.exit1701 unwind label %lpad.i1689

lpad.i1689:                                       ; preds = %if.else
  %2 = landingpad { i8*, i32 }
          cleanup
  unreachable

_ZN4Foam4wordC2EPKcb.exit1701:                    ; preds = %if.else
  invoke void @_ZN4Foam8pointSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE()
          to label %invoke.cont169 unwind label %lpad165

invoke.cont169:                                   ; preds = %_ZN4Foam4wordC2EPKcb.exit1701
  %call177 = invoke zeroext i1 undef(%"class.Foam::primitiveMesh.135"* undef, i1 zeroext true, %"class.Foam::HashSet.127"* undef)
          to label %invoke.cont176 unwind label %lpad175

invoke.cont176:                                   ; preds = %invoke.cont169
  br i1 %call177, label %if.then178, label %if.end213

if.then178:                                       ; preds = %invoke.cont176
  unreachable

lpad165:                                          ; preds = %_ZN4Foam4wordC2EPKcb.exit1701
  %3 = landingpad { i8*, i32 }
          cleanup
  unreachable

lpad175:                                          ; preds = %invoke.cont169
  %4 = landingpad { i8*, i32 }
          cleanup
  invoke void @_ZN4Foam8pointSetD1Ev()
          to label %eh.resume unwind label %terminate.lpad

if.end213:                                        ; preds = %invoke.cont176
  invoke void @_ZN4Foam4word12stripInvalidEv()
          to label %_ZN4Foam4wordC2EPKcb.exit1777 unwind label %lpad.i1765

lpad.i1765:                                       ; preds = %if.end213
  %5 = landingpad { i8*, i32 }
          cleanup
  br i1 undef, label %eh.resume.i1776, label %if.then.i.i.i1767, !prof !1

if.then.i.i.i1767:                                ; preds = %lpad.i1765
  unreachable

eh.resume.i1776:                                  ; preds = %lpad.i1765
  resume { i8*, i32 } %5

_ZN4Foam4wordC2EPKcb.exit1777:                    ; preds = %if.end213
  invoke void @_ZN4Foam7faceSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE()
          to label %invoke.cont221 unwind label %lpad217

invoke.cont221:                                   ; preds = %_ZN4Foam4wordC2EPKcb.exit1777
  br i1 undef, label %_ZNSsD2Ev.exit1792, label %if.then.i.i1784, !prof !1

if.then.i.i1784:                                  ; preds = %invoke.cont221
  br i1 undef, label %if.then4.i.i1791, label %_ZNSsD2Ev.exit1792

if.then4.i.i1791:                                 ; preds = %if.then.i.i1784
  br label %_ZNSsD2Ev.exit1792

_ZNSsD2Ev.exit1792:                               ; preds = %if.then4.i.i1791, %if.then.i.i1784, %invoke.cont221
  %call232 = invoke zeroext i1 undef(%"class.Foam::primitiveMesh.135"* undef, i1 zeroext true, %"class.Foam::HashSet.127"* undef)
          to label %invoke.cont231 unwind label %lpad230

invoke.cont231:                                   ; preds = %_ZNSsD2Ev.exit1792
  invoke void @_ZN4Foam6reduceIiNS_5sumOpIiEEEEvRKNS_4ListINS_8UPstream11commsStructEEERT_RKT0_ii()
          to label %invoke.cont243 unwind label %lpad230

lpad217:                                          ; preds = %_ZN4Foam4wordC2EPKcb.exit1777
  %6 = landingpad { i8*, i32 }
          cleanup
  br label %eh.resume

lpad230:                                          ; preds = %invoke.cont231, %_ZNSsD2Ev.exit1792
  %7 = landingpad { i8*, i32 }
          cleanup
  invoke void @_ZN4Foam7faceSetD1Ev()
          to label %eh.resume unwind label %terminate.lpad

invoke.cont243:                                   ; preds = %invoke.cont231
  invoke void @_ZN4Foam4word12stripInvalidEv()
          to label %_ZN4Foam4wordC2EPKcb.exit1862 unwind label %lpad.i1850

lpad.i1850:                                       ; preds = %invoke.cont243
  %8 = landingpad { i8*, i32 }
          cleanup
  unreachable

_ZN4Foam4wordC2EPKcb.exit1862:                    ; preds = %invoke.cont243
  invoke void @_ZN4Foam7faceSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE()
          to label %invoke.cont280 unwind label %lpad276

invoke.cont280:                                   ; preds = %_ZN4Foam4wordC2EPKcb.exit1862
  br i1 undef, label %_ZNSsD2Ev.exit1877, label %if.then.i.i1869, !prof !1

if.then.i.i1869:                                  ; preds = %invoke.cont280
  unreachable

_ZNSsD2Ev.exit1877:                               ; preds = %invoke.cont280
  br i1 undef, label %if.then292, label %if.end328

if.then292:                                       ; preds = %_ZNSsD2Ev.exit1877
  unreachable

lpad276:                                          ; preds = %_ZN4Foam4wordC2EPKcb.exit1862
  %9 = landingpad { i8*, i32 }
          cleanup
  unreachable

if.end328:                                        ; preds = %_ZNSsD2Ev.exit1877
  br i1 %allTopology, label %if.then331, label %if.end660

if.then331:                                       ; preds = %if.end328
  unreachable

if.end660:                                        ; preds = %if.end328
  invoke void @_ZN4Foam13messageStreamcvRNS_8OSstreamEEv()
          to label %invoke.cont668 unwind label %lpad663

invoke.cont668:                                   ; preds = %if.end660
  %call671 = invoke dereferenceable(56) %"class.Foam::Ostream.189"* @_ZN4FoamlsERNS_7OstreamEPKc()
          to label %invoke.cont670 unwind label %lpad663

invoke.cont670:                                   ; preds = %invoke.cont668
  invoke void @_ZN4FoamlsERNS_7OstreamEi()
          to label %invoke.cont674 unwind label %lpad663

invoke.cont674:                                   ; preds = %invoke.cont670
  %call677 = invoke dereferenceable(56) %"class.Foam::Ostream.189"* @_ZN4FoamlsERNS_7OstreamEPKc()
          to label %invoke.cont676 unwind label %lpad663

invoke.cont676:                                   ; preds = %invoke.cont674
  invoke void undef(%"class.Foam::Ostream.189"* %call677)
          to label %if.end878 unwind label %lpad663

lpad663:                                          ; preds = %invoke.cont670, %if.end660, %invoke.cont668, %invoke.cont674, %invoke.cont676
  %10 = landingpad { i8*, i32 }
          cleanup
  br i1 undef, label %_ZN4Foam4ListIiED2Ev.exit.i3073, label %delete.notnull.i.i3071

if.end878:                                        ; preds = %invoke.cont676
  br i1 undef, label %_ZN4Foam11regionSplitD2Ev.exit, label %delete.notnull.i.i3056

delete.notnull.i.i3056:                           ; preds = %if.end878
  unreachable

_ZN4Foam11regionSplitD2Ev.exit:                   ; preds = %if.end878
  br i1 undef, label %if.then883, label %if.else888

if.then883:                                       ; preds = %_ZN4Foam11regionSplitD2Ev.exit
  unreachable

delete.notnull.i.i3071:                           ; preds = %lpad663
  unreachable

_ZN4Foam4ListIiED2Ev.exit.i3073:                  ; preds = %lpad663
  invoke void @_ZN4Foam11regIOobjectD2Ev()
          to label %eh.resume unwind label %terminate.lpad

if.else888:                                       ; preds = %_ZN4Foam11regionSplitD2Ev.exit
  invoke void @_ZN4Foam4word12stripInvalidEv()
          to label %_ZN4Foam4wordC2EPKcb.exit3098 unwind label %lpad.i3086

lpad.i3086:                                       ; preds = %if.else888
  %11 = landingpad { i8*, i32 }
          cleanup
  unreachable

_ZN4Foam4wordC2EPKcb.exit3098:                    ; preds = %if.else888
  invoke void @_ZN4Foam8pointSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE()
          to label %invoke.cont902 unwind label %lpad898

invoke.cont902:                                   ; preds = %_ZN4Foam4wordC2EPKcb.exit3098
  br i1 undef, label %_ZNSsD2Ev.exit3113, label %if.then.i.i3105, !prof !1

if.then.i.i3105:                                  ; preds = %invoke.cont902
  br i1 undef, label %if.then4.i.i3112, label %_ZNSsD2Ev.exit3113

if.then4.i.i3112:                                 ; preds = %if.then.i.i3105
  unreachable

_ZNSsD2Ev.exit3113:                               ; preds = %if.then.i.i3105, %invoke.cont902
  %call.i31163117 = invoke zeroext i32 undef(%"class.Foam::IOstream.8"* getelementptr inbounds (%"class.Foam::prefixOSstream.27", %"class.Foam::prefixOSstream.27"* @_ZN4Foam4PoutE, i64 0, i32 0, i32 0, i32 0))
          to label %call.i3116.noexc unwind label %lpad905.loopexit.split-lp

call.i3116.noexc:                                 ; preds = %_ZNSsD2Ev.exit3113
  %call5.i3118 = invoke zeroext i32 null(%"class.Foam::IOstream.8"* getelementptr inbounds (%"class.Foam::prefixOSstream.27", %"class.Foam::prefixOSstream.27"* @_ZN4Foam4PoutE, i64 0, i32 0, i32 0, i32 0), i32 zeroext undef)
          to label %invoke.cont906 unwind label %lpad905.loopexit.split-lp

invoke.cont906:                                   ; preds = %call.i3116.noexc
  unreachable

lpad898:                                          ; preds = %_ZN4Foam4wordC2EPKcb.exit3098
  %12 = landingpad { i8*, i32 }
          cleanup
  br i1 undef, label %_ZNSsD2Ev.exit3204, label %if.then.i.i3196, !prof !1

if.then.i.i3196:                                  ; preds = %lpad898
  unreachable

_ZNSsD2Ev.exit3204:                               ; preds = %lpad898
  unreachable

lpad905.loopexit.split-lp:                        ; preds = %call.i3116.noexc, %_ZNSsD2Ev.exit3113
  %lpad.loopexit.split-lp = landingpad { i8*, i32 }
          cleanup
  invoke void @_ZN4Foam8pointSetD1Ev()
          to label %eh.resume unwind label %terminate.lpad

eh.resume:                                        ; preds = %_ZN4Foam4ListIiED2Ev.exit.i3073, %lpad230, %lpad175, %lpad905.loopexit.split-lp, %lpad217
  resume { i8*, i32 } undef

terminate.lpad:                                   ; preds = %_ZN4Foam4ListIiED2Ev.exit.i3073, %lpad230, %lpad175, %lpad905.loopexit.split-lp
  %13 = landingpad { i8*, i32 }
          catch i8* null
  unreachable
}

declare dereferenceable(56) %"class.Foam::Ostream.189"* @_ZN4FoamlsERNS_7OstreamEPKc() #0

declare void @_ZN4Foam13messageStreamcvRNS_8OSstreamEEv() #0

declare i32 @__gxx_personality_v0(...)

declare void @_ZN4Foam7cellSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE() #0

declare void @_ZN4FoamlsERNS_7OstreamEi() #0

declare void @_ZN4Foam8pointSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE() #0

declare void @_ZN4Foam8pointSetD1Ev() #0

declare void @_ZN4Foam7faceSetC1ERKNS_8polyMeshERKNS_4wordEiNS_8IOobject11writeOptionE() #0

declare void @_ZN4Foam7faceSetD1Ev() #0

; Function Attrs: inlinehint
declare void @_ZN4Foam4word12stripInvalidEv() #1 align 2

declare void @_ZN4Foam11regIOobjectD2Ev() #0

declare void @_ZN4Foam6reduceIiNS_5sumOpIiEEEEvRKNS_4ListINS_8UPstream11commsStructEEERT_RKT0_ii() #0

attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="a2q" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { inlinehint "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="a2q" "unsafe-fp-math"="false" "use-soft-float"="false" }

!llvm.module.flags = !{!0}

!0 = !{i32 1, !"PIC Level", i32 2}
!1 = !{!"branch_weights", i32 64, i32 4}
