; LLVM IR from NVIDIA/TensorRT :: plugin/decodeBbox3DPlugin (decodeBbox3D)

; 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"

%"struct.nvinfer1::PluginTensorDesc" = type { %"class.nvinfer1::Dims64", i32, i32, float }
%"class.nvinfer1::Dims64" = type { i32, [8 x i64] }
%"class.nvinfer1::plugin::DecodeBbox3DPlugin" = type <{ %"class.nvinfer1::IPluginV2DynamicExt", %"class.std::__cxx11::basic_string", float, float, float, float, float, float, i32, float, float, i32, %"class.std::vector.3", %"class.std::vector.3", float, i32, i32, [4 x i8] }>
%"class.nvinfer1::IPluginV2DynamicExt" = type { %"class.nvinfer1::IPluginV2Ext" }
%"class.nvinfer1::IPluginV2Ext" = type { %"class.nvinfer1::IPluginV2" }
%"class.nvinfer1::IPluginV2" = 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::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [92 x i8], align 1
@_ZTISt9exception = external constant ptr
@__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st = external hidden unnamed_addr constant [8 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [88 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

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

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

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

declare ptr @__cxa_begin_catch(ptr)

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

declare void @__cxa_end_catch()

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i64, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i64, align 8
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  %35 = load ptr, ptr %9, align 8
  %36 = load ptr, ptr %10, align 8, !tbaa !5
  %37 = icmp ne ptr %36, null
  br i1 %37, label %38, label %47

38:                                               ; preds = %7
  %39 = load ptr, ptr %12, align 8, !tbaa !5
  %40 = icmp ne ptr %39, null
  br i1 %40, label %41, label %47

41:                                               ; preds = %38
  %42 = load ptr, ptr %13, align 8, !tbaa !5
  %43 = icmp ne ptr %42, null
  br i1 %43, label %44, label %47

44:                                               ; preds = %41
  %45 = load ptr, ptr %14, align 8, !tbaa !5
  %46 = icmp ne ptr %45, null
  br i1 %46, label %53, label %47

47:                                               ; preds = %44, %41, %38, %7
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 240, i32 noundef 0, ptr noundef @.str.13) #7
          to label %48 unwind label %49

48:                                               ; preds = %47
  unreachable

49:                                               ; preds = %47
  %50 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %51 = extractvalue { ptr, i32 } %50, 0
  store ptr %51, ptr %16, align 8
  %52 = extractvalue { ptr, i32 } %50, 1
  store i32 %52, ptr %17, align 4
  br label %216

53:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %54 = load ptr, ptr %10, align 8, !tbaa !5
  %55 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %54, i64 0
  %56 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %55, i32 0, i32 0
  %57 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %56, i32 0, i32 1
  %58 = getelementptr inbounds [8 x i64], ptr %57, i64 0, i64 0
  %59 = load i64, ptr %58, align 8, !tbaa !9
  %60 = trunc i64 %59 to i32
  store i32 %60, ptr %18, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %61 = load ptr, ptr %12, align 8, !tbaa !5
  %62 = getelementptr inbounds ptr, ptr %61, i64 0
  %63 = load ptr, ptr %62, align 8, !tbaa !5
  store ptr %63, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %64 = load ptr, ptr %12, align 8, !tbaa !5
  %65 = getelementptr inbounds ptr, ptr %64, i64 1
  %66 = load ptr, ptr %65, align 8, !tbaa !5
  store ptr %66, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %67 = load ptr, ptr %12, align 8, !tbaa !5
  %68 = getelementptr inbounds ptr, ptr %67, i64 2
  %69 = load ptr, ptr %68, align 8, !tbaa !5
  store ptr %69, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %70 = load ptr, ptr %13, align 8, !tbaa !5
  %71 = getelementptr inbounds ptr, ptr %70, i64 0
  %72 = load ptr, ptr %71, align 8, !tbaa !5
  store ptr %72, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %73 = load ptr, ptr %13, align 8, !tbaa !5
  %74 = getelementptr inbounds ptr, ptr %73, i64 1
  %75 = load ptr, ptr %74, align 8, !tbaa !5
  store ptr %75, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %76 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %76, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %77 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 11
  %78 = load i32, ptr %77, align 4, !tbaa !13
  %79 = mul nsw i32 %78, 2
  %80 = mul nsw i32 %79, 4
  %81 = sext i32 %80 to i64
  %82 = mul i64 %81, 4
  store i64 %82, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %83 = load ptr, ptr %24, align 8, !tbaa !5
  %84 = load i64, ptr %25, align 8, !tbaa !9
  %85 = invoke noundef ptr @_ZN8nvinfer16plugin16nextWorkspacePtrEPam(ptr noundef %83, i64 noundef %84)
          to label %86 unwind label %107

86:                                               ; preds = %53
  store ptr %85, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %87 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 11
  %88 = load i32, ptr %87, align 4, !tbaa !13
  %89 = sext i32 %88 to i64
  %90 = mul i64 %89, 4
  store i64 %90, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %91 = load ptr, ptr %24, align 8, !tbaa !5
  %92 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 13
  %93 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef 0) #8
  %94 = load i64, ptr %25, align 8, !tbaa !9
  %95 = load ptr, ptr %15, align 8, !tbaa !5
  %96 = invoke i32 @cudaMemcpyAsync(ptr noundef %91, ptr noundef %93, i64 noundef %94, i32 noundef 1, ptr noundef %95)
          to label %97 unwind label %111

97:                                               ; preds = %86
  store i32 %96, ptr %28, align 4, !tbaa !25
  %98 = load i32, ptr %28, align 4, !tbaa !25
  %99 = icmp ne i32 %98, 0
  br i1 %99, label %100, label %119

100:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %101 = load i32, ptr %28, align 4, !tbaa !25
  %102 = invoke ptr @cudaGetErrorString(i32 noundef %101)
          to label %103 unwind label %115

103:                                              ; preds = %100
  store ptr %102, ptr %29, align 8, !tbaa !5
  %104 = load i32, ptr %28, align 4, !tbaa !25
  %105 = load ptr, ptr %29, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 259, i32 noundef %104, ptr noundef %105) #7
          to label %106 unwind label %115

106:                                              ; preds = %103
  unreachable

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

111:                                              ; preds = %86
  %112 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %16, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %17, align 4
  br label %136

115:                                              ; preds = %103, %100
  %116 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %16, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %136

119:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %120 = load ptr, ptr %26, align 8, !tbaa !5
  %121 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 12
  %122 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef 0) #8
  %123 = load i64, ptr %27, align 8, !tbaa !9
  %124 = load ptr, ptr %15, align 8, !tbaa !5
  %125 = invoke i32 @cudaMemcpyAsync(ptr noundef %120, ptr noundef %122, i64 noundef %123, i32 noundef 1, ptr noundef %124)
          to label %126 unwind label %137

126:                                              ; preds = %119
  store i32 %125, ptr %30, align 4, !tbaa !25
  %127 = load i32, ptr %30, align 4, !tbaa !25
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %129, label %145

129:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %130 = load i32, ptr %30, align 4, !tbaa !25
  %131 = invoke ptr @cudaGetErrorString(i32 noundef %130)
          to label %132 unwind label %141

132:                                              ; preds = %129
  store ptr %131, ptr %31, align 8, !tbaa !5
  %133 = load i32, ptr %30, align 4, !tbaa !25
  %134 = load ptr, ptr %31, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 261, i32 noundef %133, ptr noundef %134) #7
          to label %135 unwind label %141

135:                                              ; preds = %132
  unreachable

136:                                              ; preds = %115, %111
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %214

137:                                              ; preds = %119
  %138 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %16, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %17, align 4
  br label %162

141:                                              ; preds = %132, %129
  %142 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %16, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %162

145:                                              ; preds = %126
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %146 = load ptr, ptr %23, align 8, !tbaa !5
  %147 = load i32, ptr %18, align 4, !tbaa !11
  %148 = sext i32 %147 to i64
  %149 = mul i64 %148, 4
  %150 = load ptr, ptr %15, align 8, !tbaa !5
  %151 = invoke i32 @cudaMemsetAsync(ptr noundef %146, i32 noundef 0, i64 noundef %149, ptr noundef %150)
          to label %152 unwind label %163

152:                                              ; preds = %145
  store i32 %151, ptr %32, align 4, !tbaa !25
  %153 = load i32, ptr %32, align 4, !tbaa !25
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %171

155:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %156 = load i32, ptr %32, align 4, !tbaa !25
  %157 = invoke ptr @cudaGetErrorString(i32 noundef %156)
          to label %158 unwind label %167

158:                                              ; preds = %155
  store ptr %157, ptr %33, align 8, !tbaa !5
  %159 = load i32, ptr %32, align 4, !tbaa !25
  %160 = load ptr, ptr %33, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 263, i32 noundef %159, ptr noundef %160) #7
          to label %161 unwind label %167

161:                                              ; preds = %158
  unreachable

162:                                              ; preds = %141, %137
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %214

163:                                              ; preds = %145
  %164 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %16, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %17, align 4
  br label %209

167:                                              ; preds = %158, %155
  %168 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %16, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %209

171:                                              ; preds = %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  %172 = load i32, ptr %18, align 4, !tbaa !11
  %173 = load ptr, ptr %19, align 8, !tbaa !5
  %174 = load ptr, ptr %20, align 8, !tbaa !5
  %175 = load ptr, ptr %21, align 8, !tbaa !5
  %176 = load ptr, ptr %24, align 8, !tbaa !5
  %177 = load ptr, ptr %26, align 8, !tbaa !5
  %178 = load ptr, ptr %22, align 8, !tbaa !5
  %179 = load ptr, ptr %23, align 8, !tbaa !5
  %180 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 2
  %181 = load float, ptr %180, align 8, !tbaa !27
  %182 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 3
  %183 = load float, ptr %182, align 4, !tbaa !28
  %184 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 4
  %185 = load float, ptr %184, align 8, !tbaa !29
  %186 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 5
  %187 = load float, ptr %186, align 4, !tbaa !30
  %188 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 16
  %189 = load i32, ptr %188, align 8, !tbaa !31
  %190 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 15
  %191 = load i32, ptr %190, align 4, !tbaa !32
  %192 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 11
  %193 = load i32, ptr %192, align 4, !tbaa !13
  %194 = mul nsw i32 %193, 2
  %195 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 11
  %196 = load i32, ptr %195, align 4, !tbaa !13
  %197 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 14
  %198 = load float, ptr %197, align 8, !tbaa !33
  %199 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 9
  %200 = load float, ptr %199, align 4, !tbaa !34
  %201 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 10
  %202 = load float, ptr %201, align 8, !tbaa !35
  %203 = getelementptr inbounds %"class.nvinfer1::plugin::DecodeBbox3DPlugin", ptr %35, i32 0, i32 8
  %204 = load i32, ptr %203, align 8, !tbaa !36
  %205 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin18decodeBbox3DLaunchEiPKfS2_S2_PfS3_S3_PiffffiiiiifffiP11CUstream_st(i32 noundef %172, ptr noundef %173, ptr noundef %174, ptr noundef %175, ptr noundef %176, ptr noundef %177, ptr noundef %178, ptr noundef %179, float noundef %181, float noundef %183, float noundef %185, float noundef %187, i32 noundef %189, i32 noundef %191, i32 noundef %194, i32 noundef %196, i32 noundef 7, float noundef %198, float noundef %200, float noundef %202, i32 noundef %204, ptr noundef %205)
          to label %206 unwind label %210

206:                                              ; preds = %171
  %207 = invoke i32 @cudaPeekAtLastError()
          to label %208 unwind label %210

208:                                              ; preds = %206
  store i32 %207, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %227

209:                                              ; preds = %167, %163
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %214

210:                                              ; preds = %206, %171
  %211 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %16, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %17, align 4
  br label %214

214:                                              ; preds = %210, %209, %162, %136
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %215

215:                                              ; preds = %214, %107
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %216

216:                                              ; preds = %215, %49
  %217 = load i32, ptr %17, align 4
  %218 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #8
  %219 = icmp eq i32 %217, %218
  br i1 %219, label %220, label %232

220:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %221 = load ptr, ptr %16, align 8
  %222 = call ptr @__cxa_begin_catch(ptr %221) #8
  store ptr %222, ptr %34, align 8
  %223 = load ptr, ptr %34, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %223)
          to label %224 unwind label %229

224:                                              ; preds = %220
  invoke void @__cxa_end_catch()
          to label %225 unwind label %229

225:                                              ; preds = %224
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %226

226:                                              ; preds = %225
  store i32 1, ptr %8, align 4
  br label %227

227:                                              ; preds = %226, %208
  %228 = load i32, ptr %8, align 4
  ret i32 %228

229:                                              ; preds = %224, %220
  %230 = landingpad { ptr, i32 }
          catch ptr null
  %231 = extractvalue { ptr, i32 } %230, 0
  call void @__clang_call_terminate(ptr %231) #9
  unreachable

232:                                              ; preds = %216
  %233 = load ptr, ptr %16, align 8
  call void @__clang_call_terminate(ptr %233) #9
  unreachable
}

declare noundef ptr @_ZN8nvinfer16plugin16nextWorkspacePtrEPam(ptr noundef, i64 noundef) #6

declare i32 @cudaMemcpyAsync(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef) #6

declare ptr @cudaGetErrorString(i32 noundef) #6

; Function Attrs: noreturn
declare void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #0

declare i32 @cudaMemsetAsync(ptr noundef, i32 noundef, i64 noundef, ptr noundef) #6

declare void @_ZN8nvinfer16plugin18decodeBbox3DLaunchEiPKfS2_S2_PfS3_S3_PiffffiiiiifffiP11CUstream_st(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef, float noundef, float noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, float noundef, i32 noundef, ptr noundef) #6

declare i32 @cudaPeekAtLastError() #6

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { nounwind memory(none) }
attributes #4 = { 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 #5 = { 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 #6 = { "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 = { noreturn }
attributes #8 = { nounwind }
attributes #9 = { 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, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !12, i64 76}
!14 = !{!"_ZTSN8nvinfer16plugin18DecodeBbox3DPluginE", !15, i64 0, !18, i64 8, !20, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !20, i64 60, !12, i64 64, !20, i64 68, !20, i64 72, !12, i64 76, !21, i64 80, !21, i64 104, !20, i64 128, !12, i64 132, !12, i64 136}
!15 = !{!"_ZTSN8nvinfer119IPluginV2DynamicExtE", !16, i64 0}
!16 = !{!"_ZTSN8nvinfer112IPluginV2ExtE", !17, i64 0}
!17 = !{!"_ZTSN8nvinfer19IPluginV2E"}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !19, i64 0, !10, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!20 = !{!"float", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIfSaIfEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!26, !26, i64 0}
!26 = !{!"_ZTS9cudaError", !7, i64 0}
!27 = !{!14, !20, i64 40}
!28 = !{!14, !20, i64 44}
!29 = !{!14, !20, i64 48}
!30 = !{!14, !20, i64 52}
!31 = !{!14, !12, i64 136}
!32 = !{!14, !12, i64 132}
!33 = !{!14, !20, i64 128}
!34 = !{!14, !20, i64 68}
!35 = !{!14, !20, i64 72}
!36 = !{!14, !12, i64 64}


; 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"

@.str = external hidden unnamed_addr constant [92 x i8], align 1
@_ZTISt9exception = external constant ptr
@__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st = external hidden unnamed_addr constant [8 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [88 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

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

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

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 #4

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef readonly %1, ptr nocapture noundef readnone %2, ptr noundef readonly %3, ptr noundef readonly %4, ptr noundef %5, ptr noundef %6) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %8 = insertelement <4 x ptr> poison, ptr %1, i64 0
  %9 = insertelement <4 x ptr> %8, ptr %3, i64 1
  %10 = insertelement <4 x ptr> %9, ptr %4, i64 2
  %11 = insertelement <4 x ptr> %10, ptr %5, i64 3
  %12 = icmp eq <4 x ptr> %11, zeroinitializer
  %13 = bitcast <4 x i1> %12 to i4
  %14 = icmp eq i4 %13, 0
  br i1 %14, label %19, label %15

15:                                               ; preds = %7
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 240, i32 noundef 0, ptr noundef nonnull @.str.13) #6
          to label %16 unwind label %17

16:                                               ; preds = %15
  unreachable

17:                                               ; preds = %15
  %18 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

19:                                               ; preds = %7
  %20 = getelementptr inbounds i8, ptr %1, i64 8
  %21 = load i64, ptr %20, align 8, !tbaa !5
  %22 = trunc i64 %21 to i32
  %23 = load ptr, ptr %3, align 8, !tbaa !9
  %24 = getelementptr inbounds i8, ptr %3, i64 8
  %25 = load ptr, ptr %24, align 8, !tbaa !9
  %26 = getelementptr inbounds i8, ptr %3, i64 16
  %27 = load ptr, ptr %26, align 8, !tbaa !9
  %28 = load ptr, ptr %4, align 8, !tbaa !9
  %29 = getelementptr inbounds i8, ptr %4, i64 8
  %30 = load ptr, ptr %29, align 8, !tbaa !9
  %31 = getelementptr inbounds i8, ptr %0, i64 76
  %32 = load i32, ptr %31, align 4, !tbaa !11
  %33 = shl nsw i32 %32, 3
  %34 = sext i32 %33 to i64
  %35 = shl nsw i64 %34, 2
  %36 = invoke noundef ptr @_ZN8nvinfer16plugin16nextWorkspacePtrEPam(ptr noundef nonnull %5, i64 noundef %35)
          to label %37 unwind label %49

37:                                               ; preds = %19
  %38 = load i32, ptr %31, align 4, !tbaa !11
  %39 = sext i32 %38 to i64
  %40 = shl nsw i64 %39, 2
  %41 = getelementptr inbounds i8, ptr %0, i64 104
  %42 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef 0) #7
  %43 = invoke i32 @cudaMemcpyAsync(ptr noundef nonnull %5, ptr noundef nonnull %42, i64 noundef %35, i32 noundef 1, ptr noundef %6)
          to label %44 unwind label %51

44:                                               ; preds = %37
  %.not = icmp eq i32 %43, 0
  br i1 %.not, label %55, label %45

45:                                               ; preds = %44
  %46 = invoke ptr @cudaGetErrorString(i32 noundef %43)
          to label %47 unwind label %53

47:                                               ; preds = %45
  invoke void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 259, i32 noundef %43, ptr noundef %46) #6
          to label %48 unwind label %53

48:                                               ; preds = %47
  unreachable

49:                                               ; preds = %19
  %50 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

51:                                               ; preds = %37
  %52 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

53:                                               ; preds = %47, %45
  %54 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

55:                                               ; preds = %44
  %56 = getelementptr inbounds i8, ptr %0, i64 80
  %57 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef 0) #7
  %58 = invoke i32 @cudaMemcpyAsync(ptr noundef %36, ptr noundef nonnull %57, i64 noundef %40, i32 noundef 1, ptr noundef %6)
          to label %59 unwind label %64

59:                                               ; preds = %55
  %.not67 = icmp eq i32 %58, 0
  br i1 %.not67, label %68, label %60

60:                                               ; preds = %59
  %61 = invoke ptr @cudaGetErrorString(i32 noundef %58)
          to label %62 unwind label %66

62:                                               ; preds = %60
  invoke void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 261, i32 noundef %58, ptr noundef %61) #6
          to label %63 unwind label %66

63:                                               ; preds = %62
  unreachable

64:                                               ; preds = %55
  %65 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

66:                                               ; preds = %62, %60
  %67 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

68:                                               ; preds = %59
  %sext = shl i64 %21, 32
  %69 = ashr exact i64 %sext, 30
  %70 = invoke i32 @cudaMemsetAsync(ptr noundef %30, i32 noundef 0, i64 noundef %69, ptr noundef %6)
          to label %71 unwind label %76

71:                                               ; preds = %68
  %.not68 = icmp eq i32 %70, 0
  br i1 %.not68, label %80, label %72

72:                                               ; preds = %71
  %73 = invoke ptr @cudaGetErrorString(i32 noundef %70)
          to label %74 unwind label %78

74:                                               ; preds = %72
  invoke void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin18DecodeBbox3DPlugin7enqueueEPKNS_16PluginTensorDescES4_PKPKvPKPvS9_P11CUstream_st, i32 noundef 263, i32 noundef %70, ptr noundef %73) #6
          to label %75 unwind label %78

75:                                               ; preds = %74
  unreachable

76:                                               ; preds = %68
  %77 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

78:                                               ; preds = %74, %72
  %79 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

80:                                               ; preds = %71
  %81 = getelementptr inbounds i8, ptr %0, i64 40
  %82 = load float, ptr %81, align 8, !tbaa !24
  %83 = getelementptr inbounds i8, ptr %0, i64 44
  %84 = load float, ptr %83, align 4, !tbaa !25
  %85 = getelementptr inbounds i8, ptr %0, i64 48
  %86 = load float, ptr %85, align 8, !tbaa !26
  %87 = getelementptr inbounds i8, ptr %0, i64 52
  %88 = load float, ptr %87, align 4, !tbaa !27
  %89 = getelementptr inbounds i8, ptr %0, i64 136
  %90 = load i32, ptr %89, align 8, !tbaa !28
  %91 = getelementptr inbounds i8, ptr %0, i64 132
  %92 = load i32, ptr %91, align 4, !tbaa !29
  %93 = load i32, ptr %31, align 4, !tbaa !11
  %94 = shl nsw i32 %93, 1
  %95 = getelementptr inbounds i8, ptr %0, i64 128
  %96 = load float, ptr %95, align 8, !tbaa !30
  %97 = getelementptr inbounds i8, ptr %0, i64 68
  %98 = load float, ptr %97, align 4, !tbaa !31
  %99 = getelementptr inbounds i8, ptr %0, i64 72
  %100 = load float, ptr %99, align 8, !tbaa !32
  %101 = getelementptr inbounds i8, ptr %0, i64 64
  %102 = load i32, ptr %101, align 8, !tbaa !33
  invoke void @_ZN8nvinfer16plugin18decodeBbox3DLaunchEiPKfS2_S2_PfS3_S3_PiffffiiiiifffiP11CUstream_st(i32 noundef %22, ptr noundef %23, ptr noundef %25, ptr noundef %27, ptr noundef nonnull %5, ptr noundef %36, ptr noundef %28, ptr noundef %30, float noundef %82, float noundef %84, float noundef %86, float noundef %88, i32 noundef %90, i32 noundef %92, i32 noundef %94, i32 noundef %93, i32 noundef 7, float noundef %96, float noundef %98, float noundef %100, i32 noundef %102, ptr noundef %6)
          to label %103 unwind label %105

103:                                              ; preds = %80
  %104 = invoke i32 @cudaPeekAtLastError()
          to label %113 unwind label %105

105:                                              ; preds = %103, %80
  %106 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %107

107:                                              ; preds = %49, %76, %78, %64, %66, %51, %53, %105, %17
  %.pn72.pn.pn.pn = phi { ptr, i32 } [ %18, %17 ], [ %50, %49 ], [ %106, %105 ], [ %54, %53 ], [ %52, %51 ], [ %67, %66 ], [ %65, %64 ], [ %79, %78 ], [ %77, %76 ]
  %.5 = extractvalue { ptr, i32 } %.pn72.pn.pn.pn, 0
  %.559 = extractvalue { ptr, i32 } %.pn72.pn.pn.pn, 1
  %108 = tail call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #7
  %109 = icmp eq i32 %.559, %108
  br i1 %109, label %110, label %117

110:                                              ; preds = %107
  %111 = tail call ptr @__cxa_begin_catch(ptr %.5) #7
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %112 unwind label %114

112:                                              ; preds = %110
  invoke void @__cxa_end_catch()
          to label %113 unwind label %114

113:                                              ; preds = %112, %103
  %.0 = phi i32 [ %104, %103 ], [ 1, %112 ]
  ret i32 %.0

114:                                              ; preds = %112, %110
  %115 = landingpad { ptr, i32 }
          catch ptr null
  %116 = extractvalue { ptr, i32 } %115, 0
  tail call void @__clang_call_terminate(ptr %116) #8
  unreachable

117:                                              ; preds = %107
  tail call void @__clang_call_terminate(ptr %.5) #8
  unreachable
}

declare noundef ptr @_ZN8nvinfer16plugin16nextWorkspacePtrEPam(ptr noundef, i64 noundef) local_unnamed_addr #5

declare i32 @cudaMemcpyAsync(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

declare ptr @cudaGetErrorString(i32 noundef) local_unnamed_addr #5

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

declare i32 @cudaMemsetAsync(ptr noundef, i32 noundef, i64 noundef, ptr noundef) local_unnamed_addr #5

declare void @_ZN8nvinfer16plugin18decodeBbox3DLaunchEiPKfS2_S2_PfS3_S3_PiffffiiiiifffiP11CUstream_st(i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef, float noundef, float noundef, float noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, float noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

declare i32 @cudaPeekAtLastError() local_unnamed_addr #5

attributes #0 = { 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 #1 = { 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 #2 = { nofree nosync nounwind memory(none) }
attributes #3 = { 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 #4 = { 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 #5 = { "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 = { noreturn }
attributes #7 = { nounwind }
attributes #8 = { 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !19, i64 76}
!12 = !{!"_ZTSN8nvinfer16plugin18DecodeBbox3DPluginE", !13, i64 0, !16, i64 8, !18, i64 40, !18, i64 44, !18, i64 48, !18, i64 52, !18, i64 56, !18, i64 60, !19, i64 64, !18, i64 68, !18, i64 72, !19, i64 76, !20, i64 80, !20, i64 104, !18, i64 128, !19, i64 132, !19, i64 136}
!13 = !{!"_ZTSN8nvinfer119IPluginV2DynamicExtE", !14, i64 0}
!14 = !{!"_ZTSN8nvinfer112IPluginV2ExtE", !15, i64 0}
!15 = !{!"_ZTSN8nvinfer19IPluginV2E"}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !17, i64 0, !6, i64 8, !7, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!18 = !{!"float", !7, i64 0}
!19 = !{!"int", !7, i64 0}
!20 = !{!"_ZTSSt6vectorIfSaIfEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!24 = !{!12, !18, i64 40}
!25 = !{!12, !18, i64 44}
!26 = !{!12, !18, i64 48}
!27 = !{!12, !18, i64 52}
!28 = !{!12, !19, i64 136}
!29 = !{!12, !19, i64 132}
!30 = !{!12, !18, i64 128}
!31 = !{!12, !18, i64 68}
!32 = !{!12, !18, i64 72}
!33 = !{!12, !19, i64 64}


; Effective O3 passes: EarlyCSEPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass