; LLVM IR from NVIDIA/TensorRT :: plugin/batchedNMSPlugin (batchedNMSPlugin)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.nvinfer1::plugin::LogStream" = type { %"class.std::basic_ostream.base", %"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kWARNING>::Buf", %"class.std::mutex", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kWARNING>::Buf" = type { %"class.std::__cxx11::basic_stringbuf" }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.nvinfer1::plugin::NMSParameters" = type { i8, i32, i32, i32, i32, float, float, i8 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.0" = type { i8 }
%"struct.std::less" = type { i8 }
%"class.std::allocator.8" = type { i8 }
%"struct.nvinfer1::PluginFieldCollection" = type { i32, ptr }
%"class.nvinfer1::PluginField" = type { ptr, ptr, i32, i32 }
%"class.nvinfer1::pluginInternal::BaseCreator" = type { %"class.nvinfer1::v_1_0::IPluginCreator", %"class.std::__cxx11::basic_string" }
%"class.nvinfer1::v_1_0::IPluginCreator" = type { %"class.nvinfer1::v_1_0::IPluginCreatorInterface" }
%"class.nvinfer1::v_1_0::IPluginCreatorInterface" = type { %"class.nvinfer1::IVersionedInterface" }
%"class.nvinfer1::IVersionedInterface" = type { ptr }

@_ZN8nvinfer16plugin11gLogWarningE = external global %"class.nvinfer1::plugin::LogStream", align 8
@.str = external hidden unnamed_addr constant [132 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [94 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [15 x i8], align 1
@__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE = external hidden unnamed_addr constant [13 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [44 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EA132_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 1 dereferenceable(132)) #3

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: noreturn
declare void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #6

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #7

declare ptr @__cxa_begin_catch(ptr)

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8)) #2

declare void @__cxa_end_catch()

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #8

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #9

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setClipParamEb(ptr noundef nonnull align 8 dereferenceable(108), i1 noundef zeroext) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setScoreBitsEi(ptr noundef nonnull align 8 dereferenceable(108), i32 noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin16BatchedNMSPlugin17setCaffeSemanticsEb(ptr noundef nonnull align 8 dereferenceable(108), i1 noundef zeroext) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef ptr @_ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef %1, ptr noundef %2) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"struct.nvinfer1::plugin::NMSParameters", align 4
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca %"class.std::set", align 8
  %16 = alloca %"class.std::initializer_list", align 8
  %17 = alloca [7 x %"class.std::__cxx11::basic_string"], align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.std::allocator.0", align 1
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca %"class.std::allocator.0", align 1
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca %"class.std::allocator.0", align 1
  %26 = alloca i1, align 1
  %27 = alloca %"struct.std::less", align 1
  %28 = alloca %"class.std::allocator.8", align 1
  %29 = alloca %"class.std::set", align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"struct.nvinfer1::plugin::NMSParameters", align 8
  %34 = alloca ptr, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %35 = load ptr, ptr %5, align 8
  %36 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EA132_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152) @_ZN8nvinfer16plugin11gLogWarningE, ptr noundef nonnull align 1 dereferenceable(132) @.str)
          to label %37 unwind label %80

37:                                               ; preds = %3
  %38 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152) %36, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %39 unwind label %80

39:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #12
  %40 = load ptr, ptr %7, align 8, !tbaa !5
  %41 = getelementptr inbounds %"struct.nvinfer1::PluginFieldCollection", ptr %40, i32 0, i32 1
  %42 = load ptr, ptr %41, align 8, !tbaa !9
  store ptr %42, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #12
  store i8 1, ptr %12, align 1, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #12
  store i32 16, ptr %13, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #12
  store i8 1, ptr %14, align 1, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 48, ptr %15) #12
  call void @llvm.lifetime.start.p0(i64 224, ptr %17) #12
  store i1 true, ptr %26, align 1
  store ptr %17, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %43 unwind label %84

43:                                               ; preds = %39
  %44 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %17, i64 1
  store ptr %44, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %45 unwind label %88

45:                                               ; preds = %43
  %46 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %17, i64 2
  store ptr %46, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %47 unwind label %92

47:                                               ; preds = %45
  %48 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %17, i64 3
  store ptr %48, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %49 unwind label %96

49:                                               ; preds = %47
  %50 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %17, i64 4
  store ptr %50, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %51 unwind label %100

51:                                               ; preds = %49
  %52 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %17, i64 5
  store ptr %52, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %53 unwind label %104

53:                                               ; preds = %51
  %54 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %17, i64 6
  store ptr %54, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %55 unwind label %108

55:                                               ; preds = %53
  store i1 false, ptr %26, align 1
  %56 = getelementptr inbounds %"class.std::initializer_list", ptr %16, i32 0, i32 0
  store ptr %17, ptr %56, align 8, !tbaa !15
  %57 = getelementptr inbounds %"class.std::initializer_list", ptr %16, i32 0, i32 1
  store i64 7, ptr %57, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #12
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  %58 = getelementptr inbounds { ptr, i64 }, ptr %16, i32 0, i32 0
  %59 = load ptr, ptr %58, align 8
  %60 = getelementptr inbounds { ptr, i64 }, ptr %16, i32 0, i32 1
  %61 = load i64, ptr %60, align 8
  invoke void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ESt16initializer_listIS5_ERKS7_RKS8_(ptr noundef nonnull align 8 dereferenceable(48) %15, ptr %59, i64 %61, ptr noundef nonnull align 1 dereferenceable(1) %27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %62 unwind label %112

62:                                               ; preds = %55
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #12
  %63 = getelementptr inbounds [7 x %"class.std::__cxx11::basic_string"], ptr %17, i32 0, i32 0
  %64 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %63, i64 7
  br label %65

65:                                               ; preds = %65, %62
  %66 = phi ptr [ %64, %62 ], [ %67, %65 ]
  %67 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #12
  %68 = icmp eq ptr %67, %63
  br i1 %68, label %69, label %65

69:                                               ; preds = %65
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 224, ptr %17) #12
  invoke void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(48) %29, ptr noundef nonnull align 8 dereferenceable(48) %15)
          to label %70 unwind label %140

70:                                               ; preds = %69
  %71 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin31validateRequiredAttributesExistESt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EEPKNS_21PluginFieldCollectionE(ptr noundef %29, ptr noundef %71)
          to label %72 unwind label %144

72:                                               ; preds = %70
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #12
  store i32 0, ptr %30, align 4, !tbaa !14
  br label %73

73:                                               ; preds = %387, %72
  %74 = load i32, ptr %30, align 4, !tbaa !14
  %75 = load ptr, ptr %7, align 8, !tbaa !5
  %76 = getelementptr inbounds %"struct.nvinfer1::PluginFieldCollection", ptr %75, i32 0, i32 0
  %77 = load i32, ptr %76, align 8, !tbaa !19
  %78 = icmp slt i32 %74, %77
  br i1 %78, label %148, label %79

79:                                               ; preds = %73
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %390

80:                                               ; preds = %37, %3
  %81 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %8, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %9, align 4
  br label %420

84:                                               ; preds = %39
  %85 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %8, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %9, align 4
  br label %129

88:                                               ; preds = %43
  %89 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %8, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %9, align 4
  br label %128

92:                                               ; preds = %45
  %93 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %8, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %9, align 4
  br label %127

96:                                               ; preds = %47
  %97 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %8, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %9, align 4
  br label %126

100:                                              ; preds = %49
  %101 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %8, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %9, align 4
  br label %125

104:                                              ; preds = %51
  %105 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %8, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %9, align 4
  br label %124

108:                                              ; preds = %53
  %109 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %8, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %9, align 4
  br label %123

112:                                              ; preds = %55
  %113 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %8, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %9, align 4
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #12
  %116 = getelementptr inbounds [7 x %"class.std::__cxx11::basic_string"], ptr %17, i32 0, i32 0
  %117 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %116, i64 7
  br label %118

118:                                              ; preds = %118, %112
  %119 = phi ptr [ %117, %112 ], [ %120, %118 ]
  %120 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %119, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #12
  %121 = icmp eq ptr %120, %116
  br i1 %121, label %122, label %118

122:                                              ; preds = %118
  br label %123

123:                                              ; preds = %122, %108
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #12
  br label %124

124:                                              ; preds = %123, %104
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #12
  br label %125

125:                                              ; preds = %124, %100
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #12
  br label %126

126:                                              ; preds = %125, %96
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #12
  br label %127

127:                                              ; preds = %126, %92
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #12
  br label %128

128:                                              ; preds = %127, %88
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  br label %129

129:                                              ; preds = %128, %84
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #12
  %130 = load i1, ptr %26, align 1
  br i1 %130, label %131, label %139

131:                                              ; preds = %129
  %132 = load ptr, ptr %18, align 8
  %133 = icmp eq ptr %17, %132
  br i1 %133, label %138, label %134

134:                                              ; preds = %134, %131
  %135 = phi ptr [ %132, %131 ], [ %136, %134 ]
  %136 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %135, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #12
  %137 = icmp eq ptr %136, %17
  br i1 %137, label %138, label %134

138:                                              ; preds = %134, %131
  br label %139

139:                                              ; preds = %138, %129
  call void @llvm.lifetime.end.p0(i64 224, ptr %17) #12
  br label %419

140:                                              ; preds = %69
  %141 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %142 = extractvalue { ptr, i32 } %141, 0
  store ptr %142, ptr %8, align 8
  %143 = extractvalue { ptr, i32 } %141, 1
  store i32 %143, ptr %9, align 4
  br label %418

144:                                              ; preds = %70
  %145 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %8, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %9, align 4
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #12
  br label %418

148:                                              ; preds = %73
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #12
  %149 = load ptr, ptr %11, align 8, !tbaa !5
  %150 = load i32, ptr %30, align 4, !tbaa !14
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %149, i64 %151
  %153 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %152, i32 0, i32 0
  %154 = load ptr, ptr %153, align 8, !tbaa !20
  store ptr %154, ptr %31, align 8, !tbaa !5
  %155 = load ptr, ptr %31, align 8, !tbaa !5
  %156 = call i32 @strcmp(ptr noundef %155, ptr noundef @.str.30) #13
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %169, label %158

158:                                              ; preds = %148
  %159 = load ptr, ptr %11, align 8, !tbaa !5
  %160 = load i32, ptr %30, align 4, !tbaa !14
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %159, i64 %161
  %163 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %162, i32 0, i32 1
  %164 = load ptr, ptr %163, align 8, !tbaa !23
  %165 = load i8, ptr %164, align 1, !tbaa !12, !range !24, !noundef !25
  %166 = trunc i8 %165 to i1
  %167 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 0
  %168 = zext i1 %166 to i8
  store i8 %168, ptr %167, align 4, !tbaa !26
  br label %386

169:                                              ; preds = %148
  %170 = load ptr, ptr %31, align 8, !tbaa !5
  %171 = call i32 @strcmp(ptr noundef %170, ptr noundef @.str.31) #13
  %172 = icmp ne i32 %171, 0
  br i1 %172, label %196, label %173

173:                                              ; preds = %169
  %174 = load ptr, ptr %11, align 8, !tbaa !5
  %175 = load i32, ptr %30, align 4, !tbaa !14
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %174, i64 %176
  %178 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %177, i32 0, i32 2
  %179 = load i32, ptr %178, align 8, !tbaa !29
  %180 = icmp eq i32 %179, 5
  br i1 %180, label %187, label %181

181:                                              ; preds = %173
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 703, i32 noundef 0, ptr noundef @.str.41) #14
          to label %182 unwind label %183

182:                                              ; preds = %181
  unreachable

183:                                              ; preds = %364, %300, %277, %254, %231, %208, %181
  %184 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %8, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %418

187:                                              ; preds = %173
  %188 = load ptr, ptr %11, align 8, !tbaa !5
  %189 = load i32, ptr %30, align 4, !tbaa !14
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %188, i64 %190
  %192 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %191, i32 0, i32 1
  %193 = load ptr, ptr %192, align 8, !tbaa !23
  %194 = load i32, ptr %193, align 4, !tbaa !14
  %195 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 1
  store i32 %194, ptr %195, align 4, !tbaa !30
  br label %385

196:                                              ; preds = %169
  %197 = load ptr, ptr %31, align 8, !tbaa !5
  %198 = call i32 @strcmp(ptr noundef %197, ptr noundef @.str.32) #13
  %199 = icmp ne i32 %198, 0
  br i1 %199, label %219, label %200

200:                                              ; preds = %196
  %201 = load ptr, ptr %11, align 8, !tbaa !5
  %202 = load i32, ptr %30, align 4, !tbaa !14
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %201, i64 %203
  %205 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %204, i32 0, i32 2
  %206 = load i32, ptr %205, align 8, !tbaa !29
  %207 = icmp eq i32 %206, 5
  br i1 %207, label %210, label %208

208:                                              ; preds = %200
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 708, i32 noundef 0, ptr noundef @.str.41) #14
          to label %209 unwind label %183

209:                                              ; preds = %208
  unreachable

210:                                              ; preds = %200
  %211 = load ptr, ptr %11, align 8, !tbaa !5
  %212 = load i32, ptr %30, align 4, !tbaa !14
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %211, i64 %213
  %215 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %214, i32 0, i32 1
  %216 = load ptr, ptr %215, align 8, !tbaa !23
  %217 = load i32, ptr %216, align 4, !tbaa !14
  %218 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 2
  store i32 %217, ptr %218, align 4, !tbaa !31
  br label %384

219:                                              ; preds = %196
  %220 = load ptr, ptr %31, align 8, !tbaa !5
  %221 = call i32 @strcmp(ptr noundef %220, ptr noundef @.str.33) #13
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %242, label %223

223:                                              ; preds = %219
  %224 = load ptr, ptr %11, align 8, !tbaa !5
  %225 = load i32, ptr %30, align 4, !tbaa !14
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %224, i64 %226
  %228 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %227, i32 0, i32 2
  %229 = load i32, ptr %228, align 8, !tbaa !29
  %230 = icmp eq i32 %229, 5
  br i1 %230, label %233, label %231

231:                                              ; preds = %223
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 713, i32 noundef 0, ptr noundef @.str.41) #14
          to label %232 unwind label %183

232:                                              ; preds = %231
  unreachable

233:                                              ; preds = %223
  %234 = load ptr, ptr %11, align 8, !tbaa !5
  %235 = load i32, ptr %30, align 4, !tbaa !14
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %234, i64 %236
  %238 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %237, i32 0, i32 1
  %239 = load ptr, ptr %238, align 8, !tbaa !23
  %240 = load i32, ptr %239, align 4, !tbaa !14
  %241 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 3
  store i32 %240, ptr %241, align 4, !tbaa !32
  br label %383

242:                                              ; preds = %219
  %243 = load ptr, ptr %31, align 8, !tbaa !5
  %244 = call i32 @strcmp(ptr noundef %243, ptr noundef @.str.34) #13
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %265, label %246

246:                                              ; preds = %242
  %247 = load ptr, ptr %11, align 8, !tbaa !5
  %248 = load i32, ptr %30, align 4, !tbaa !14
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %247, i64 %249
  %251 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %250, i32 0, i32 2
  %252 = load i32, ptr %251, align 8, !tbaa !29
  %253 = icmp eq i32 %252, 5
  br i1 %253, label %256, label %254

254:                                              ; preds = %246
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 718, i32 noundef 0, ptr noundef @.str.41) #14
          to label %255 unwind label %183

255:                                              ; preds = %254
  unreachable

256:                                              ; preds = %246
  %257 = load ptr, ptr %11, align 8, !tbaa !5
  %258 = load i32, ptr %30, align 4, !tbaa !14
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %257, i64 %259
  %261 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %260, i32 0, i32 1
  %262 = load ptr, ptr %261, align 8, !tbaa !23
  %263 = load i32, ptr %262, align 4, !tbaa !14
  %264 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 4
  store i32 %263, ptr %264, align 4, !tbaa !33
  br label %382

265:                                              ; preds = %242
  %266 = load ptr, ptr %31, align 8, !tbaa !5
  %267 = call i32 @strcmp(ptr noundef %266, ptr noundef @.str.35) #13
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %288, label %269

269:                                              ; preds = %265
  %270 = load ptr, ptr %11, align 8, !tbaa !5
  %271 = load i32, ptr %30, align 4, !tbaa !14
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %270, i64 %272
  %274 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %273, i32 0, i32 2
  %275 = load i32, ptr %274, align 8, !tbaa !29
  %276 = icmp eq i32 %275, 1
  br i1 %276, label %279, label %277

277:                                              ; preds = %269
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 723, i32 noundef 0, ptr noundef @.str.42) #14
          to label %278 unwind label %183

278:                                              ; preds = %277
  unreachable

279:                                              ; preds = %269
  %280 = load ptr, ptr %11, align 8, !tbaa !5
  %281 = load i32, ptr %30, align 4, !tbaa !14
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %280, i64 %282
  %284 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %283, i32 0, i32 1
  %285 = load ptr, ptr %284, align 8, !tbaa !23
  %286 = load float, ptr %285, align 4, !tbaa !34
  %287 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 5
  store float %286, ptr %287, align 4, !tbaa !35
  br label %381

288:                                              ; preds = %265
  %289 = load ptr, ptr %31, align 8, !tbaa !5
  %290 = call i32 @strcmp(ptr noundef %289, ptr noundef @.str.36) #13
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %311, label %292

292:                                              ; preds = %288
  %293 = load ptr, ptr %11, align 8, !tbaa !5
  %294 = load i32, ptr %30, align 4, !tbaa !14
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %293, i64 %295
  %297 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %296, i32 0, i32 2
  %298 = load i32, ptr %297, align 8, !tbaa !29
  %299 = icmp eq i32 %298, 1
  br i1 %299, label %302, label %300

300:                                              ; preds = %292
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 728, i32 noundef 0, ptr noundef @.str.42) #14
          to label %301 unwind label %183

301:                                              ; preds = %300
  unreachable

302:                                              ; preds = %292
  %303 = load ptr, ptr %11, align 8, !tbaa !5
  %304 = load i32, ptr %30, align 4, !tbaa !14
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %303, i64 %305
  %307 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %306, i32 0, i32 1
  %308 = load ptr, ptr %307, align 8, !tbaa !23
  %309 = load float, ptr %308, align 4, !tbaa !34
  %310 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 6
  store float %309, ptr %310, align 4, !tbaa !36
  br label %380

311:                                              ; preds = %288
  %312 = load ptr, ptr %31, align 8, !tbaa !5
  %313 = call i32 @strcmp(ptr noundef %312, ptr noundef @.str.37) #13
  %314 = icmp ne i32 %313, 0
  br i1 %314, label %326, label %315

315:                                              ; preds = %311
  %316 = load ptr, ptr %11, align 8, !tbaa !5
  %317 = load i32, ptr %30, align 4, !tbaa !14
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %316, i64 %318
  %320 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %319, i32 0, i32 1
  %321 = load ptr, ptr %320, align 8, !tbaa !23
  %322 = load i8, ptr %321, align 1, !tbaa !12, !range !24, !noundef !25
  %323 = trunc i8 %322 to i1
  %324 = getelementptr inbounds %"struct.nvinfer1::plugin::NMSParameters", ptr %10, i32 0, i32 7
  %325 = zext i1 %323 to i8
  store i8 %325, ptr %324, align 4, !tbaa !37
  br label %379

326:                                              ; preds = %311
  %327 = load ptr, ptr %31, align 8, !tbaa !5
  %328 = call i32 @strcmp(ptr noundef %327, ptr noundef @.str.38) #13
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %340, label %330

330:                                              ; preds = %326
  %331 = load ptr, ptr %11, align 8, !tbaa !5
  %332 = load i32, ptr %30, align 4, !tbaa !14
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %331, i64 %333
  %335 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %334, i32 0, i32 1
  %336 = load ptr, ptr %335, align 8, !tbaa !23
  %337 = load i8, ptr %336, align 1, !tbaa !12, !range !24, !noundef !25
  %338 = trunc i8 %337 to i1
  %339 = zext i1 %338 to i8
  store i8 %339, ptr %12, align 1, !tbaa !12
  br label %378

340:                                              ; preds = %326
  %341 = load ptr, ptr %31, align 8, !tbaa !5
  %342 = call i32 @strcmp(ptr noundef %341, ptr noundef @.str.39) #13
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %352, label %344

344:                                              ; preds = %340
  %345 = load ptr, ptr %11, align 8, !tbaa !5
  %346 = load i32, ptr %30, align 4, !tbaa !14
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %345, i64 %347
  %349 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %348, i32 0, i32 1
  %350 = load ptr, ptr %349, align 8, !tbaa !23
  %351 = load i32, ptr %350, align 4, !tbaa !14
  store i32 %351, ptr %13, align 4, !tbaa !14
  br label %377

352:                                              ; preds = %340
  %353 = load ptr, ptr %31, align 8, !tbaa !5
  %354 = call i32 @strcmp(ptr noundef %353, ptr noundef @.str.40) #13
  %355 = icmp ne i32 %354, 0
  br i1 %355, label %376, label %356

356:                                              ; preds = %352
  %357 = load ptr, ptr %11, align 8, !tbaa !5
  %358 = load i32, ptr %30, align 4, !tbaa !14
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %357, i64 %359
  %361 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %360, i32 0, i32 2
  %362 = load i32, ptr %361, align 8, !tbaa !29
  %363 = icmp eq i32 %362, 5
  br i1 %363, label %366, label %364

364:                                              ; preds = %356
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str.2, ptr noundef @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef 745, i32 noundef 0, ptr noundef @.str.41) #14
          to label %365 unwind label %183

365:                                              ; preds = %364
  unreachable

366:                                              ; preds = %356
  %367 = load ptr, ptr %11, align 8, !tbaa !5
  %368 = load i32, ptr %30, align 4, !tbaa !14
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %367, i64 %369
  %371 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %370, i32 0, i32 1
  %372 = load ptr, ptr %371, align 8, !tbaa !23
  %373 = load i8, ptr %372, align 1, !tbaa !12, !range !24, !noundef !25
  %374 = trunc i8 %373 to i1
  %375 = zext i1 %374 to i8
  store i8 %375, ptr %14, align 1, !tbaa !12
  br label %376

376:                                              ; preds = %366, %352
  br label %377

377:                                              ; preds = %376, %344
  br label %378

378:                                              ; preds = %377, %330
  br label %379

379:                                              ; preds = %378, %315
  br label %380

380:                                              ; preds = %379, %302
  br label %381

381:                                              ; preds = %380, %279
  br label %382

382:                                              ; preds = %381, %256
  br label %383

383:                                              ; preds = %382, %233
  br label %384

384:                                              ; preds = %383, %210
  br label %385

385:                                              ; preds = %384, %187
  br label %386

386:                                              ; preds = %385, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #12
  br label %387

387:                                              ; preds = %386
  %388 = load i32, ptr %30, align 4, !tbaa !14
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr %30, align 4, !tbaa !14
  br label %73, !llvm.loop !38

390:                                              ; preds = %79
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #12
  %391 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 112) #15
          to label %392 unwind label %409

392:                                              ; preds = %390
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %33, ptr align 4 %10, i64 32, i1 false), !tbaa.struct !40
  invoke void @_ZN8nvinfer16plugin16BatchedNMSPluginC1ENS0_13NMSParametersE(ptr noundef nonnull align 8 dereferenceable(108) %391, ptr noundef byval(%"struct.nvinfer1::plugin::NMSParameters") align 8 %33)
          to label %393 unwind label %413

393:                                              ; preds = %392
  store ptr %391, ptr %32, align 8, !tbaa !5
  %394 = load ptr, ptr %32, align 8, !tbaa !5
  %395 = load i8, ptr %12, align 1, !tbaa !12, !range !24, !noundef !25
  %396 = trunc i8 %395 to i1
  call void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setClipParamEb(ptr noundef nonnull align 8 dereferenceable(108) %394, i1 noundef zeroext %396) #12
  %397 = load ptr, ptr %32, align 8, !tbaa !5
  %398 = load i32, ptr %13, align 4, !tbaa !14
  call void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setScoreBitsEi(ptr noundef nonnull align 8 dereferenceable(108) %397, i32 noundef %398) #12
  %399 = load ptr, ptr %32, align 8, !tbaa !5
  %400 = load i8, ptr %14, align 1, !tbaa !12, !range !24, !noundef !25
  %401 = trunc i8 %400 to i1
  call void @_ZN8nvinfer16plugin16BatchedNMSPlugin17setCaffeSemanticsEb(ptr noundef nonnull align 8 dereferenceable(108) %399, i1 noundef zeroext %401) #12
  %402 = load ptr, ptr %32, align 8, !tbaa !5
  %403 = getelementptr inbounds %"class.nvinfer1::pluginInternal::BaseCreator", ptr %35, i32 0, i32 1
  %404 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %403) #12
  %405 = load ptr, ptr %402, align 8, !tbaa !41
  %406 = getelementptr inbounds ptr, ptr %405, i64 15
  %407 = load ptr, ptr %406, align 8
  call void %407(ptr noundef nonnull align 8 dereferenceable(108) %402, ptr noundef %404) #12
  %408 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %408, ptr %4, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #12
  br label %431

409:                                              ; preds = %390
  %410 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %8, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %9, align 4
  br label %417

413:                                              ; preds = %392
  %414 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %8, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %9, align 4
  call void @_ZdlPvm(ptr noundef %391, i64 noundef 112) #16
  br label %417

417:                                              ; preds = %413, %409
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  br label %418

418:                                              ; preds = %417, %183, %144, %140
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #12
  br label %419

419:                                              ; preds = %418, %139
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #12
  br label %420

420:                                              ; preds = %419, %80
  %421 = load i32, ptr %9, align 4
  %422 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #12
  %423 = icmp eq i32 %421, %422
  br i1 %423, label %424, label %436

424:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #12
  %425 = load ptr, ptr %8, align 8
  %426 = call ptr @__cxa_begin_catch(ptr %425) #12
  store ptr %426, ptr %34, align 8
  %427 = load ptr, ptr %34, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %427)
          to label %428 unwind label %433

428:                                              ; preds = %424
  invoke void @__cxa_end_catch()
          to label %429 unwind label %433

429:                                              ; preds = %428
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #12
  br label %430

430:                                              ; preds = %429
  store ptr null, ptr %4, align 8
  br label %431

431:                                              ; preds = %430, %393
  %432 = load ptr, ptr %4, align 8
  ret ptr %432

433:                                              ; preds = %428, %424
  %434 = landingpad { ptr, i32 }
          catch ptr null
  %435 = extractvalue { ptr, i32 } %434, 0
  call void @__clang_call_terminate(ptr %435) #17
  unreachable

436:                                              ; preds = %420
  %437 = load ptr, ptr %8, align 8
  call void @__clang_call_terminate(ptr %437) #17
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ESt16initializer_listIS5_ERKS7_RKS8_(ptr noundef nonnull align 8 dereferenceable(48), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

declare void @_ZN8nvinfer16plugin31validateRequiredAttributesExistESt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EEPKNS_21PluginFieldCollectionE(ptr noundef, ptr noundef) #10

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #11

declare void @_ZN8nvinfer16plugin16BatchedNMSPluginC1ENS0_13NMSParametersE(ptr, ptr)

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind memory(none) }
attributes #7 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(read) }
attributes #14 = { noreturn }
attributes #15 = { builtin allocsize(0) }
attributes #16 = { builtin nounwind }
attributes #17 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 8}
!10 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !11, i64 0, !6, i64 8}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!11, !11, i64 0}
!15 = !{!16, !6, i64 0}
!16 = !{!"_ZTSSt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE", !6, i64 0, !17, i64 8}
!17 = !{!"long", !7, i64 0}
!18 = !{!16, !17, i64 8}
!19 = !{!10, !11, i64 0}
!20 = !{!21, !6, i64 0}
!21 = !{!"_ZTSN8nvinfer111PluginFieldE", !6, i64 0, !6, i64 8, !22, i64 16, !11, i64 20}
!22 = !{!"_ZTSN8nvinfer115PluginFieldTypeE", !7, i64 0}
!23 = !{!21, !6, i64 8}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = !{!27, !13, i64 0}
!27 = !{!"_ZTSN8nvinfer16plugin13NMSParametersE", !13, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !28, i64 20, !28, i64 24, !13, i64 28}
!28 = !{!"float", !7, i64 0}
!29 = !{!21, !22, i64 16}
!30 = !{!27, !11, i64 4}
!31 = !{!27, !11, i64 8}
!32 = !{!27, !11, i64 12}
!33 = !{!27, !11, i64 16}
!34 = !{!28, !28, i64 0}
!35 = !{!27, !28, i64 20}
!36 = !{!27, !28, i64 24}
!37 = !{!27, !13, i64 28}
!38 = distinct !{!38, !39}
!39 = !{!"llvm.loop.mustprogress"}
!40 = !{i64 0, i64 1, !12, i64 4, i64 4, !14, i64 8, i64 4, !14, i64 12, i64 4, !14, i64 16, i64 4, !14, i64 20, i64 4, !34, i64 24, i64 4, !34, i64 28, i64 1, !12}
!41 = !{!42, !42, i64 0}
!42 = !{!"vtable pointer", !8, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.nvinfer1::plugin::LogStream" = type { %"class.std::basic_ostream.base", %"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kWARNING>::Buf", %"class.std::mutex", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kWARNING>::Buf" = type { %"class.std::__cxx11::basic_stringbuf" }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }
%"struct.std::less" = type { i8 }
%"class.std::allocator.8" = type { i8 }
%"struct.nvinfer1::plugin::NMSParameters" = type { i8, i32, i32, i32, i32, float, float, i8 }
%"class.nvinfer1::PluginField" = type { ptr, ptr, i32, i32 }

@_ZN8nvinfer16plugin11gLogWarningE = external global %"class.nvinfer1::plugin::LogStream", align 8
@.str = external hidden unnamed_addr constant [132 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [94 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [15 x i8], align 1
@__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE = external hidden unnamed_addr constant [13 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [44 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EA132_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 1 dereferenceable(132)) local_unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: noreturn
declare void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #5

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #6

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #7

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setClipParamEb(ptr noundef nonnull align 8 dereferenceable(108), i1 noundef zeroext) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setScoreBitsEi(ptr noundef nonnull align 8 dereferenceable(108), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin16BatchedNMSPlugin17setCaffeSemanticsEb(ptr noundef nonnull align 8 dereferenceable(108), i1 noundef zeroext) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef ptr @_ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr nocapture noundef readnone %1, ptr noundef %2) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::set", align 8
  %5 = alloca [7 x %"class.std::__cxx11::basic_string"], align 8
  %6 = alloca %"class.std::allocator.0", align 1
  %7 = alloca %"class.std::allocator.0", align 1
  %8 = alloca %"class.std::allocator.0", align 1
  %9 = alloca %"class.std::allocator.0", align 1
  %10 = alloca %"class.std::allocator.0", align 1
  %11 = alloca %"class.std::allocator.0", align 1
  %12 = alloca %"class.std::allocator.0", align 1
  %13 = alloca %"struct.std::less", align 1
  %14 = alloca %"class.std::allocator.8", align 1
  %15 = alloca %"class.std::set", align 8
  %16 = alloca %"struct.nvinfer1::plugin::NMSParameters", align 8
  %17 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EA132_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152) @_ZN8nvinfer16plugin11gLogWarningE, ptr noundef nonnull align 1 dereferenceable(132) @.str)
          to label %18 unwind label %50

18:                                               ; preds = %3
  %19 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE2EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152) %17, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %20 unwind label %50

20:                                               ; preds = %18
  %21 = getelementptr inbounds i8, ptr %2, i64 8
  %22 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %23 unwind label %.thread

23:                                               ; preds = %20
  %24 = getelementptr inbounds i8, ptr %5, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %25 unwind label %53

25:                                               ; preds = %23
  %26 = getelementptr inbounds i8, ptr %5, i64 64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %27 unwind label %55

27:                                               ; preds = %25
  %28 = getelementptr inbounds i8, ptr %5, i64 96
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %29 unwind label %57

29:                                               ; preds = %27
  %30 = getelementptr inbounds i8, ptr %5, i64 128
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %31 unwind label %59

31:                                               ; preds = %29
  %32 = getelementptr inbounds i8, ptr %5, i64 160
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %33 unwind label %61

33:                                               ; preds = %31
  %34 = getelementptr inbounds i8, ptr %5, i64 192
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %35 unwind label %63

35:                                               ; preds = %33
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #11
  invoke void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ESt16initializer_listIS5_ERKS7_RKS8_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr nonnull %5, i64 7, ptr noundef nonnull align 1 dereferenceable(1) %13, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %36 unwind label %.loopexit133.loopexit

36:                                               ; preds = %35
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #11
  %37 = getelementptr inbounds i8, ptr %5, i64 192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  %38 = getelementptr inbounds i8, ptr %5, i64 160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  %39 = getelementptr inbounds i8, ptr %5, i64 128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  %40 = getelementptr inbounds i8, ptr %5, i64 96
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  %41 = getelementptr inbounds i8, ptr %5, i64 64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  %42 = getelementptr inbounds i8, ptr %5, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %5) #11
  invoke void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(48) %15, ptr noundef nonnull align 8 dereferenceable(48) %4)
          to label %43 unwind label %82

43:                                               ; preds = %36
  invoke void @_ZN8nvinfer16plugin31validateRequiredAttributesExistESt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EEPKNS_21PluginFieldCollectionE(ptr noundef nonnull %15, ptr noundef nonnull %2)
          to label %44 unwind label %84

44:                                               ; preds = %43
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  %45 = load i32, ptr %2, align 8, !tbaa !11
  %46 = icmp sgt i32 %45, 0
  br i1 %46, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %44
  %wide.trip.count = zext nneg i32 %45 to i64
  br label %.lr.ph

._crit_edge.loopexit:                             ; preds = %185
  %47 = trunc nuw i8 %.1103 to i1
  %48 = trunc nuw i8 %.199 to i1
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %44
  %.sroa.8.0.lcssa = phi i32 [ undef, %44 ], [ %.sroa.8.1, %._crit_edge.loopexit ]
  %.sroa.7.0.lcssa = phi i32 [ undef, %44 ], [ %.sroa.7.1, %._crit_edge.loopexit ]
  %.sroa.6.0.lcssa = phi i32 [ undef, %44 ], [ %.sroa.6.1, %._crit_edge.loopexit ]
  %.sroa.563.0.lcssa = phi i32 [ undef, %44 ], [ %.sroa.563.1, %._crit_edge.loopexit ]
  %.sroa.062.0.lcssa = phi i8 [ undef, %44 ], [ %.sroa.062.1, %._crit_edge.loopexit ]
  %.sroa.9.0.lcssa = phi float [ undef, %44 ], [ %.sroa.9.1, %._crit_edge.loopexit ]
  %.0102.lcssa = phi i1 [ true, %44 ], [ %47, %._crit_edge.loopexit ]
  %.0100.lcssa = phi i32 [ 16, %44 ], [ %.1101, %._crit_edge.loopexit ]
  %.098.lcssa = phi i1 [ true, %44 ], [ %48, %._crit_edge.loopexit ]
  %.sroa.10.0.lcssa = phi float [ undef, %44 ], [ %.sroa.10.1, %._crit_edge.loopexit ]
  %.sroa.11.0.lcssa = phi i8 [ undef, %44 ], [ %.sroa.11.1, %._crit_edge.loopexit ]
  %49 = invoke noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #12
          to label %186 unwind label %193

50:                                               ; preds = %18, %3
  %51 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %199

.thread:                                          ; preds = %20
  %52 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  br label %.loopexit

53:                                               ; preds = %23
  %54 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %77

55:                                               ; preds = %25
  %56 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %76

57:                                               ; preds = %27
  %58 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %75

59:                                               ; preds = %29
  %60 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %74

61:                                               ; preds = %31
  %62 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %73

63:                                               ; preds = %33
  %64 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %.loopexit133

.loopexit133.loopexit:                            ; preds = %35
  %65 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #11
  %66 = getelementptr inbounds i8, ptr %5, i64 192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  %67 = getelementptr inbounds i8, ptr %5, i64 160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #11
  %68 = getelementptr inbounds i8, ptr %5, i64 128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #11
  %69 = getelementptr inbounds i8, ptr %5, i64 96
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  %70 = getelementptr inbounds i8, ptr %5, i64 64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  %71 = getelementptr inbounds i8, ptr %5, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  br label %.loopexit133

.loopexit133:                                     ; preds = %.loopexit133.loopexit, %63
  %72 = phi i1 [ false, %63 ], [ true, %.loopexit133.loopexit ]
  %.pn = phi { ptr, i32 } [ %64, %63 ], [ %65, %.loopexit133.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  br label %73

73:                                               ; preds = %.loopexit133, %61
  %.092 = phi ptr [ %34, %.loopexit133 ], [ %32, %61 ]
  %.186 = phi i1 [ %72, %.loopexit133 ], [ false, %61 ]
  %.pn.pn = phi { ptr, i32 } [ %.pn, %.loopexit133 ], [ %62, %61 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #11
  br label %74

74:                                               ; preds = %73, %59
  %.193 = phi ptr [ %.092, %73 ], [ %30, %59 ]
  %.287 = phi i1 [ %.186, %73 ], [ false, %59 ]
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %73 ], [ %60, %59 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  br label %75

75:                                               ; preds = %74, %57
  %.294 = phi ptr [ %.193, %74 ], [ %28, %57 ]
  %.388 = phi i1 [ %.287, %74 ], [ false, %57 ]
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %74 ], [ %58, %57 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #11
  br label %76

76:                                               ; preds = %75, %55
  %.395 = phi ptr [ %.294, %75 ], [ %26, %55 ]
  %.489 = phi i1 [ %.388, %75 ], [ false, %55 ]
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %75 ], [ %56, %55 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  br label %77

77:                                               ; preds = %53, %76
  %.496 = phi ptr [ %.395, %76 ], [ %24, %53 ]
  %.590 = phi i1 [ %.489, %76 ], [ false, %53 ]
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %76 ], [ %54, %53 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  %78 = icmp eq ptr %5, %.496
  %or.cond = select i1 %.590, i1 true, i1 %78
  br i1 %or.cond, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %77, %.preheader
  %79 = phi ptr [ %80, %.preheader ], [ %.496, %77 ]
  %80 = getelementptr inbounds i8, ptr %79, i64 -32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  %81 = icmp eq ptr %80, %5
  br i1 %81, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %.preheader, %.thread, %77
  %.pn.pn.pn.pn.pn.pn.pn132 = phi { ptr, i32 } [ %52, %.thread ], [ %.pn.pn.pn.pn.pn.pn, %77 ], [ %.pn.pn.pn.pn.pn.pn, %.preheader ]
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %5) #11
  br label %198

82:                                               ; preds = %36
  %83 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %197

84:                                               ; preds = %43
  %85 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  br label %197

.lr.ph:                                           ; preds = %.lr.ph.preheader, %185
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %185 ]
  %.sroa.11.0221 = phi i8 [ undef, %.lr.ph.preheader ], [ %.sroa.11.1, %185 ]
  %.sroa.10.0220 = phi float [ undef, %.lr.ph.preheader ], [ %.sroa.10.1, %185 ]
  %.098219 = phi i8 [ 1, %.lr.ph.preheader ], [ %.199, %185 ]
  %.0100218 = phi i32 [ 16, %.lr.ph.preheader ], [ %.1101, %185 ]
  %.0102217 = phi i8 [ 1, %.lr.ph.preheader ], [ %.1103, %185 ]
  %.sroa.9.0216 = phi float [ undef, %.lr.ph.preheader ], [ %.sroa.9.1, %185 ]
  %.sroa.062.0215 = phi i8 [ undef, %.lr.ph.preheader ], [ %.sroa.062.1, %185 ]
  %.sroa.563.0214 = phi i32 [ undef, %.lr.ph.preheader ], [ %.sroa.563.1, %185 ]
  %.sroa.6.0213 = phi i32 [ undef, %.lr.ph.preheader ], [ %.sroa.6.1, %185 ]
  %.sroa.7.0212 = phi i32 [ undef, %.lr.ph.preheader ], [ %.sroa.7.1, %185 ]
  %.sroa.8.0211 = phi i32 [ undef, %.lr.ph.preheader ], [ %.sroa.8.1, %185 ]
  %86 = getelementptr inbounds %"class.nvinfer1::PluginField", ptr %22, i64 %indvars.iv
  %87 = load ptr, ptr %86, align 8, !tbaa !12
  %88 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.30) #13
  %.not = icmp eq i32 %88, 0
  br i1 %.not, label %89, label %93

89:                                               ; preds = %.lr.ph
  %90 = getelementptr inbounds i8, ptr %86, i64 8
  %91 = load ptr, ptr %90, align 8, !tbaa !15
  %92 = load i8, ptr %91, align 1, !tbaa !16, !range !18, !noundef !19
  br label %185

93:                                               ; preds = %.lr.ph
  %94 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.31) #13
  %.not114 = icmp eq i32 %94, 0
  br i1 %.not114, label %95, label %105

95:                                               ; preds = %93
  %96 = getelementptr inbounds i8, ptr %86, i64 16
  %97 = load i32, ptr %96, align 8, !tbaa !20
  %98 = icmp eq i32 %97, 5
  br i1 %98, label %101, label %.invoke

99:                                               ; preds = %.invoke
  %100 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %197

101:                                              ; preds = %95
  %102 = getelementptr inbounds i8, ptr %86, i64 8
  %103 = load ptr, ptr %102, align 8, !tbaa !15
  %104 = load i32, ptr %103, align 4, !tbaa !21
  br label %185

105:                                              ; preds = %93
  %106 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.32) #13
  %.not115 = icmp eq i32 %106, 0
  br i1 %.not115, label %107, label %115

107:                                              ; preds = %105
  %108 = getelementptr inbounds i8, ptr %86, i64 16
  %109 = load i32, ptr %108, align 8, !tbaa !20
  %110 = icmp eq i32 %109, 5
  br i1 %110, label %111, label %.invoke

111:                                              ; preds = %107
  %112 = getelementptr inbounds i8, ptr %86, i64 8
  %113 = load ptr, ptr %112, align 8, !tbaa !15
  %114 = load i32, ptr %113, align 4, !tbaa !21
  br label %185

115:                                              ; preds = %105
  %116 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.33) #13
  %.not116 = icmp eq i32 %116, 0
  br i1 %.not116, label %117, label %125

117:                                              ; preds = %115
  %118 = getelementptr inbounds i8, ptr %86, i64 16
  %119 = load i32, ptr %118, align 8, !tbaa !20
  %120 = icmp eq i32 %119, 5
  br i1 %120, label %121, label %.invoke

121:                                              ; preds = %117
  %122 = getelementptr inbounds i8, ptr %86, i64 8
  %123 = load ptr, ptr %122, align 8, !tbaa !15
  %124 = load i32, ptr %123, align 4, !tbaa !21
  br label %185

125:                                              ; preds = %115
  %126 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.34) #13
  %.not117 = icmp eq i32 %126, 0
  br i1 %.not117, label %127, label %135

127:                                              ; preds = %125
  %128 = getelementptr inbounds i8, ptr %86, i64 16
  %129 = load i32, ptr %128, align 8, !tbaa !20
  %130 = icmp eq i32 %129, 5
  br i1 %130, label %131, label %.invoke

131:                                              ; preds = %127
  %132 = getelementptr inbounds i8, ptr %86, i64 8
  %133 = load ptr, ptr %132, align 8, !tbaa !15
  %134 = load i32, ptr %133, align 4, !tbaa !21
  br label %185

135:                                              ; preds = %125
  %136 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.35) #13
  %.not118 = icmp eq i32 %136, 0
  br i1 %.not118, label %137, label %145

137:                                              ; preds = %135
  %138 = getelementptr inbounds i8, ptr %86, i64 16
  %139 = load i32, ptr %138, align 8, !tbaa !20
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %141, label %.invoke

141:                                              ; preds = %137
  %142 = getelementptr inbounds i8, ptr %86, i64 8
  %143 = load ptr, ptr %142, align 8, !tbaa !15
  %144 = load float, ptr %143, align 4, !tbaa !22
  br label %185

145:                                              ; preds = %135
  %146 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.36) #13
  %.not119 = icmp eq i32 %146, 0
  br i1 %.not119, label %147, label %155

147:                                              ; preds = %145
  %148 = getelementptr inbounds i8, ptr %86, i64 16
  %149 = load i32, ptr %148, align 8, !tbaa !20
  %150 = icmp eq i32 %149, 1
  br i1 %150, label %151, label %.invoke

151:                                              ; preds = %147
  %152 = getelementptr inbounds i8, ptr %86, i64 8
  %153 = load ptr, ptr %152, align 8, !tbaa !15
  %154 = load float, ptr %153, align 4, !tbaa !22
  br label %185

155:                                              ; preds = %145
  %156 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.37) #13
  %.not120 = icmp eq i32 %156, 0
  br i1 %.not120, label %157, label %161

157:                                              ; preds = %155
  %158 = getelementptr inbounds i8, ptr %86, i64 8
  %159 = load ptr, ptr %158, align 8, !tbaa !15
  %160 = load i8, ptr %159, align 1, !tbaa !16, !range !18, !noundef !19
  br label %185

161:                                              ; preds = %155
  %162 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.38) #13
  %.not121 = icmp eq i32 %162, 0
  br i1 %.not121, label %163, label %167

163:                                              ; preds = %161
  %164 = getelementptr inbounds i8, ptr %86, i64 8
  %165 = load ptr, ptr %164, align 8, !tbaa !15
  %166 = load i8, ptr %165, align 1, !tbaa !16, !range !18, !noundef !19
  br label %185

167:                                              ; preds = %161
  %168 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.39) #13
  %.not122 = icmp eq i32 %168, 0
  br i1 %.not122, label %169, label %173

169:                                              ; preds = %167
  %170 = getelementptr inbounds i8, ptr %86, i64 8
  %171 = load ptr, ptr %170, align 8, !tbaa !15
  %172 = load i32, ptr %171, align 4, !tbaa !21
  br label %185

173:                                              ; preds = %167
  %174 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %87, ptr noundef nonnull dereferenceable(1) @.str.40) #13
  %.not123 = icmp eq i32 %174, 0
  br i1 %.not123, label %175, label %185

175:                                              ; preds = %173
  %176 = getelementptr inbounds i8, ptr %86, i64 16
  %177 = load i32, ptr %176, align 8, !tbaa !20
  %178 = icmp eq i32 %177, 5
  br i1 %178, label %181, label %.invoke

.invoke:                                          ; preds = %95, %175, %147, %137, %127, %117, %107
  %179 = phi i32 [ 708, %107 ], [ 713, %117 ], [ 718, %127 ], [ 723, %137 ], [ 728, %147 ], [ 745, %175 ], [ 703, %95 ]
  %180 = phi ptr [ @.str.41, %107 ], [ @.str.41, %117 ], [ @.str.41, %127 ], [ @.str.42, %137 ], [ @.str.42, %147 ], [ @.str.41, %175 ], [ @.str.41, %95 ]
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef nonnull @.str.2, ptr noundef nonnull @__func__._ZN8nvinfer16plugin23BatchedNMSPluginCreator12createPluginEPKcPKNS_21PluginFieldCollectionE, i32 noundef %179, i32 noundef 0, ptr noundef nonnull %180) #14
          to label %.cont unwind label %99

.cont:                                            ; preds = %.invoke
  unreachable

181:                                              ; preds = %175
  %182 = getelementptr inbounds i8, ptr %86, i64 8
  %183 = load ptr, ptr %182, align 8, !tbaa !15
  %184 = load i8, ptr %183, align 1, !tbaa !16, !range !18, !noundef !19
  br label %185

185:                                              ; preds = %101, %121, %141, %157, %169, %181, %173, %163, %151, %131, %111, %89
  %.sroa.8.1 = phi i32 [ %.sroa.8.0211, %173 ], [ %.sroa.8.0211, %181 ], [ %.sroa.8.0211, %169 ], [ %.sroa.8.0211, %163 ], [ %.sroa.8.0211, %157 ], [ %.sroa.8.0211, %151 ], [ %.sroa.8.0211, %141 ], [ %134, %131 ], [ %.sroa.8.0211, %121 ], [ %.sroa.8.0211, %111 ], [ %.sroa.8.0211, %101 ], [ %.sroa.8.0211, %89 ]
  %.sroa.7.1 = phi i32 [ %.sroa.7.0212, %173 ], [ %.sroa.7.0212, %181 ], [ %.sroa.7.0212, %169 ], [ %.sroa.7.0212, %163 ], [ %.sroa.7.0212, %157 ], [ %.sroa.7.0212, %151 ], [ %.sroa.7.0212, %141 ], [ %.sroa.7.0212, %131 ], [ %124, %121 ], [ %.sroa.7.0212, %111 ], [ %.sroa.7.0212, %101 ], [ %.sroa.7.0212, %89 ]
  %.sroa.6.1 = phi i32 [ %.sroa.6.0213, %173 ], [ %.sroa.6.0213, %181 ], [ %.sroa.6.0213, %169 ], [ %.sroa.6.0213, %163 ], [ %.sroa.6.0213, %157 ], [ %.sroa.6.0213, %151 ], [ %.sroa.6.0213, %141 ], [ %.sroa.6.0213, %131 ], [ %.sroa.6.0213, %121 ], [ %114, %111 ], [ %.sroa.6.0213, %101 ], [ %.sroa.6.0213, %89 ]
  %.sroa.563.1 = phi i32 [ %.sroa.563.0214, %173 ], [ %.sroa.563.0214, %181 ], [ %.sroa.563.0214, %169 ], [ %.sroa.563.0214, %163 ], [ %.sroa.563.0214, %157 ], [ %.sroa.563.0214, %151 ], [ %.sroa.563.0214, %141 ], [ %.sroa.563.0214, %131 ], [ %.sroa.563.0214, %121 ], [ %.sroa.563.0214, %111 ], [ %104, %101 ], [ %.sroa.563.0214, %89 ]
  %.sroa.062.1 = phi i8 [ %.sroa.062.0215, %173 ], [ %.sroa.062.0215, %181 ], [ %.sroa.062.0215, %169 ], [ %.sroa.062.0215, %163 ], [ %.sroa.062.0215, %157 ], [ %.sroa.062.0215, %151 ], [ %.sroa.062.0215, %141 ], [ %.sroa.062.0215, %131 ], [ %.sroa.062.0215, %121 ], [ %.sroa.062.0215, %111 ], [ %.sroa.062.0215, %101 ], [ %92, %89 ]
  %.sroa.9.1 = phi float [ %.sroa.9.0216, %173 ], [ %.sroa.9.0216, %181 ], [ %.sroa.9.0216, %169 ], [ %.sroa.9.0216, %163 ], [ %.sroa.9.0216, %157 ], [ %.sroa.9.0216, %151 ], [ %144, %141 ], [ %.sroa.9.0216, %131 ], [ %.sroa.9.0216, %121 ], [ %.sroa.9.0216, %111 ], [ %.sroa.9.0216, %101 ], [ %.sroa.9.0216, %89 ]
  %.1103 = phi i8 [ %.0102217, %173 ], [ %.0102217, %181 ], [ %.0102217, %169 ], [ %166, %163 ], [ %.0102217, %157 ], [ %.0102217, %151 ], [ %.0102217, %141 ], [ %.0102217, %131 ], [ %.0102217, %121 ], [ %.0102217, %111 ], [ %.0102217, %101 ], [ %.0102217, %89 ]
  %.1101 = phi i32 [ %.0100218, %173 ], [ %.0100218, %181 ], [ %172, %169 ], [ %.0100218, %163 ], [ %.0100218, %157 ], [ %.0100218, %151 ], [ %.0100218, %141 ], [ %.0100218, %131 ], [ %.0100218, %121 ], [ %.0100218, %111 ], [ %.0100218, %101 ], [ %.0100218, %89 ]
  %.199 = phi i8 [ %.098219, %173 ], [ %184, %181 ], [ %.098219, %169 ], [ %.098219, %163 ], [ %.098219, %157 ], [ %.098219, %151 ], [ %.098219, %141 ], [ %.098219, %131 ], [ %.098219, %121 ], [ %.098219, %111 ], [ %.098219, %101 ], [ %.098219, %89 ]
  %.sroa.10.1 = phi float [ %.sroa.10.0220, %173 ], [ %.sroa.10.0220, %181 ], [ %.sroa.10.0220, %169 ], [ %.sroa.10.0220, %163 ], [ %.sroa.10.0220, %157 ], [ %154, %151 ], [ %.sroa.10.0220, %141 ], [ %.sroa.10.0220, %131 ], [ %.sroa.10.0220, %121 ], [ %.sroa.10.0220, %111 ], [ %.sroa.10.0220, %101 ], [ %.sroa.10.0220, %89 ]
  %.sroa.11.1 = phi i8 [ %.sroa.11.0221, %173 ], [ %.sroa.11.0221, %181 ], [ %.sroa.11.0221, %169 ], [ %.sroa.11.0221, %163 ], [ %160, %157 ], [ %.sroa.11.0221, %151 ], [ %.sroa.11.0221, %141 ], [ %.sroa.11.0221, %131 ], [ %.sroa.11.0221, %121 ], [ %.sroa.11.0221, %111 ], [ %.sroa.11.0221, %101 ], [ %.sroa.11.0221, %89 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge.loopexit, label %.lr.ph, !llvm.loop !24

186:                                              ; preds = %._crit_edge
  store i8 %.sroa.062.0.lcssa, ptr %16, align 8, !tbaa !16
  %.sroa.563.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 4
  store i32 %.sroa.563.0.lcssa, ptr %.sroa.563.0..sroa_idx, align 4, !tbaa !21
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 8
  store i32 %.sroa.6.0.lcssa, ptr %.sroa.6.0..sroa_idx, align 8, !tbaa !21
  %.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 12
  store i32 %.sroa.7.0.lcssa, ptr %.sroa.7.0..sroa_idx, align 4, !tbaa !21
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 16
  store i32 %.sroa.8.0.lcssa, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !21
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 20
  store float %.sroa.9.0.lcssa, ptr %.sroa.9.0..sroa_idx, align 4, !tbaa !22
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 24
  store float %.sroa.10.0.lcssa, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !22
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 28
  store i8 %.sroa.11.0.lcssa, ptr %.sroa.11.0..sroa_idx, align 4, !tbaa !16
  invoke void @_ZN8nvinfer16plugin16BatchedNMSPluginC1ENS0_13NMSParametersE(ptr noundef nonnull align 8 dereferenceable(108) %49, ptr noundef nonnull byval(%"struct.nvinfer1::plugin::NMSParameters") align 8 %16)
          to label %187 unwind label %195

187:                                              ; preds = %186
  call void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setClipParamEb(ptr noundef nonnull align 8 dereferenceable(108) %49, i1 noundef zeroext %.0102.lcssa) #11
  call void @_ZN8nvinfer16plugin16BatchedNMSPlugin12setScoreBitsEi(ptr noundef nonnull align 8 dereferenceable(108) %49, i32 noundef %.0100.lcssa) #11
  call void @_ZN8nvinfer16plugin16BatchedNMSPlugin17setCaffeSemanticsEb(ptr noundef nonnull align 8 dereferenceable(108) %49, i1 noundef zeroext %.098.lcssa) #11
  %188 = getelementptr inbounds i8, ptr %0, i64 8
  %189 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %188) #11
  %190 = load ptr, ptr %49, align 8, !tbaa !26
  %191 = getelementptr inbounds i8, ptr %190, i64 120
  %192 = load ptr, ptr %191, align 8
  call void %192(ptr noundef nonnull align 8 dereferenceable(108) %49, ptr noundef %189) #11
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #11
  br label %205

193:                                              ; preds = %._crit_edge
  %194 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %197

195:                                              ; preds = %186
  %196 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZdlPvm(ptr noundef nonnull %49, i64 noundef 112) #15
  br label %197

197:                                              ; preds = %193, %195, %99, %84, %82
  %.pn124 = phi { ptr, i32 } [ %100, %99 ], [ %85, %84 ], [ %83, %82 ], [ %196, %195 ], [ %194, %193 ]
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #11
  br label %198

198:                                              ; preds = %197, %.loopexit
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %197 ], [ %.pn.pn.pn.pn.pn.pn.pn132, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #11
  br label %199

199:                                              ; preds = %198, %50
  %.pn124.pn.pn = phi { ptr, i32 } [ %.pn124.pn, %198 ], [ %51, %50 ]
  %.10 = extractvalue { ptr, i32 } %.pn124.pn.pn, 0
  %.1083 = extractvalue { ptr, i32 } %.pn124.pn.pn, 1
  %200 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #11
  %201 = icmp eq i32 %.1083, %200
  br i1 %201, label %202, label %209

202:                                              ; preds = %199
  %203 = call ptr @__cxa_begin_catch(ptr %.10) #11
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %203)
          to label %204 unwind label %206

204:                                              ; preds = %202
  invoke void @__cxa_end_catch()
          to label %205 unwind label %206

205:                                              ; preds = %204, %187
  %.0 = phi ptr [ %49, %187 ], [ null, %204 ]
  ret ptr %.0

206:                                              ; preds = %204, %202
  %207 = landingpad { ptr, i32 }
          catch ptr null
  %208 = extractvalue { ptr, i32 } %207, 0
  call void @__clang_call_terminate(ptr %208) #16
  unreachable

209:                                              ; preds = %199
  call void @__clang_call_terminate(ptr %.10) #16
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ESt16initializer_listIS5_ERKS7_RKS8_(ptr noundef nonnull align 8 dereferenceable(48), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare void @_ZN8nvinfer16plugin31validateRequiredAttributesExistESt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EEPKNS_21PluginFieldCollectionE(ptr noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #10

declare void @_ZN8nvinfer16plugin16BatchedNMSPluginC1ENS0_13NMSParametersE(ptr, ptr) local_unnamed_addr

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nofree nosync nounwind memory(none) }
attributes #6 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { nounwind willreturn memory(read) }
attributes #14 = { noreturn }
attributes #15 = { builtin nounwind }
attributes #16 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 8}
!6 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !7, i64 0, !10, i64 8}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!6, !7, i64 0}
!12 = !{!13, !10, i64 0}
!13 = !{!"_ZTSN8nvinfer111PluginFieldE", !10, i64 0, !10, i64 8, !14, i64 16, !7, i64 20}
!14 = !{!"_ZTSN8nvinfer115PluginFieldTypeE", !8, i64 0}
!15 = !{!13, !10, i64 8}
!16 = !{!17, !17, i64 0}
!17 = !{!"bool", !8, i64 0}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = !{!13, !14, i64 16}
!21 = !{!7, !7, i64 0}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !8, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = !{!27, !27, i64 0}
!27 = !{!"vtable pointer", !9, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass