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

; 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::bert::EmbLayerNormPluginDynamic" = type { %"class.nvinfer1::v_1_0::IPluginV3", %"class.nvinfer1::v_1_0::IPluginV3OneCore", %"class.nvinfer1::v_1_0::IPluginV3OneBuild", %"class.nvinfer1::v_1_0::IPluginV3OneRuntime", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::unique_ptr", %"class.std::unique_ptr", %"class.std::unique_ptr.5", %"class.std::unique_ptr.5", %"class.std::unique_ptr.5", i64, i64, i64, i64, i64, %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", i32, i32, i32, i32, i32, %"class.std::vector", %"struct.nvinfer1::PluginFieldCollection" }
%"class.nvinfer1::v_1_0::IPluginV3" = type { %"class.nvinfer1::IVersionedInterface" }
%"class.nvinfer1::IVersionedInterface" = type { ptr }
%"class.nvinfer1::v_1_0::IPluginV3OneCore" = type { %"class.nvinfer1::v_1_0::IPluginCapability" }
%"class.nvinfer1::v_1_0::IPluginCapability" = type { %"class.nvinfer1::IVersionedInterface" }
%"class.nvinfer1::v_1_0::IPluginV3OneBuild" = type { %"class.nvinfer1::v_1_0::IPluginCapability" }
%"class.nvinfer1::v_1_0::IPluginV3OneRuntime" = type { %"class.nvinfer1::v_1_0::IPluginCapability" }
%"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::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.4" }
%"struct.std::_Head_base.4" = type { ptr }
%"class.std::unique_ptr.5" = type { %"struct.std::__uniq_ptr_data.6" }
%"struct.std::__uniq_ptr_data.6" = type { %"class.std::__uniq_ptr_impl.7" }
%"class.std::__uniq_ptr_impl.7" = type { %"class.std::tuple.8" }
%"class.std::tuple.8" = type { %"struct.std::_Tuple_impl.9" }
%"struct.std::_Tuple_impl.9" = type { %"struct.std::_Head_base.12" }
%"struct.std::_Head_base.12" = type { ptr }
%"struct.nvinfer1::plugin::bert::WeightsWithOwnership" = type { %"class.nvinfer1::Weights" }
%"class.nvinfer1::Weights" = type { i32, ptr, i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<nvinfer1::PluginField, std::allocator<nvinfer1::PluginField>>::_Vector_impl" }
%"struct.std::_Vector_base<nvinfer1::PluginField, std::allocator<nvinfer1::PluginField>>::_Vector_impl" = type { %"struct.std::_Vector_base<nvinfer1::PluginField, std::allocator<nvinfer1::PluginField>>::_Vector_impl_data" }
%"struct.std::_Vector_base<nvinfer1::PluginField, std::allocator<nvinfer1::PluginField>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.nvinfer1::PluginFieldCollection" = type { i32, ptr }

@_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE = external dso_local unnamed_addr constant { [21 x ptr], [9 x ptr], [17 x ptr], [11 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [98 x i8], align 1
@__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b = external hidden unnamed_addr constant [26 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %2, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, i1 noundef zeroext %9) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store i32 %2, ptr %13, align 4, !tbaa !9
  store i32 %3, ptr %14, align 4, !tbaa !9
  store ptr %4, ptr %15, align 8, !tbaa !5
  store ptr %5, ptr %16, align 8, !tbaa !5
  store ptr %6, ptr %17, align 8, !tbaa !5
  store ptr %7, ptr %18, align 8, !tbaa !5
  store ptr %8, ptr %19, align 8, !tbaa !5
  %23 = zext i1 %9 to i8
  store i8 %23, ptr %20, align 1, !tbaa !11
  %24 = load ptr, ptr %11, align 8
  call void @_ZN8nvinfer15v_1_09IPluginV3C2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  %25 = getelementptr inbounds i8, ptr %24, i64 8
  call void @_ZN8nvinfer15v_1_016IPluginV3OneCoreC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #5
  %26 = getelementptr inbounds i8, ptr %24, i64 16
  call void @_ZN8nvinfer15v_1_017IPluginV3OneBuildC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #5
  %27 = getelementptr inbounds i8, ptr %24, i64 24
  call void @_ZN8nvinfer15v_1_019IPluginV3OneRuntimeC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #5
  store ptr getelementptr inbounds inrange(-16, 152) ({ [21 x ptr], [9 x ptr], [17 x ptr], [11 x ptr] }, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i32 0, i32 0, i32 2), ptr %24, align 8, !tbaa !13
  %28 = getelementptr inbounds i8, ptr %24, i64 8
  store ptr getelementptr inbounds inrange(-16, 56) ({ [21 x ptr], [9 x ptr], [17 x ptr], [11 x ptr] }, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i32 0, i32 1, i32 2), ptr %28, align 8, !tbaa !13
  %29 = getelementptr inbounds i8, ptr %24, i64 16
  store ptr getelementptr inbounds inrange(-16, 120) ({ [21 x ptr], [9 x ptr], [17 x ptr], [11 x ptr] }, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i32 0, i32 2, i32 2), ptr %29, align 8, !tbaa !13
  %30 = getelementptr inbounds i8, ptr %24, i64 24
  store ptr getelementptr inbounds inrange(-16, 72) ({ [21 x ptr], [9 x ptr], [17 x ptr], [11 x ptr] }, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i32 0, i32 3, i32 2), ptr %30, align 8, !tbaa !13
  %31 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 4
  %32 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %33 unwind label %69

33:                                               ; preds = %10
  %34 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  %35 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 6
  call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #5
  %36 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 7
  call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #5
  %37 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 8
  call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  %38 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 9
  call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #5
  %39 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 10
  call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #5
  %40 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %41 = load ptr, ptr %15, align 8, !tbaa !5
  %42 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %41, i32 0, i32 2
  %43 = load i64, ptr %42, align 8, !tbaa !15
  store i64 %43, ptr %40, align 8, !tbaa !18
  %44 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 16
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44)
          to label %45 unwind label %73

45:                                               ; preds = %33
  %46 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 17
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46)
          to label %47 unwind label %77

47:                                               ; preds = %45
  %48 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 18
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %49 unwind label %81

49:                                               ; preds = %47
  %50 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 19
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %51 unwind label %85

51:                                               ; preds = %49
  %52 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 20
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52)
          to label %53 unwind label %89

53:                                               ; preds = %51
  %54 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %55 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %55, ptr %54, align 8, !tbaa !47
  %56 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 24
  %57 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %57, ptr %56, align 4, !tbaa !48
  %58 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 26
  call void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #5
  %59 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 27
  call void @_ZN8nvinfer121PluginFieldCollectionC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #5
  %60 = load ptr, ptr %15, align 8, !tbaa !5
  %61 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %60, i32 0, i32 2
  %62 = load i64, ptr %61, align 8, !tbaa !15
  %63 = load ptr, ptr %16, align 8, !tbaa !5
  %64 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %63, i32 0, i32 2
  %65 = load i64, ptr %64, align 8, !tbaa !15
  %66 = icmp eq i64 %62, %65
  br i1 %66, label %97, label %67

67:                                               ; preds = %53
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b, i32 noundef 54, i32 noundef 0, ptr noundef @.str.3) #6
          to label %68 unwind label %93

68:                                               ; preds = %67
  unreachable

69:                                               ; preds = %10
  %70 = landingpad { ptr, i32 }
          cleanup
  %71 = extractvalue { ptr, i32 } %70, 0
  store ptr %71, ptr %21, align 8
  %72 = extractvalue { ptr, i32 } %70, 1
  store i32 %72, ptr %22, align 4
  br label %232

73:                                               ; preds = %33
  %74 = landingpad { ptr, i32 }
          cleanup
  %75 = extractvalue { ptr, i32 } %74, 0
  store ptr %75, ptr %21, align 8
  %76 = extractvalue { ptr, i32 } %74, 1
  store i32 %76, ptr %22, align 4
  br label %231

77:                                               ; preds = %45
  %78 = landingpad { ptr, i32 }
          cleanup
  %79 = extractvalue { ptr, i32 } %78, 0
  store ptr %79, ptr %21, align 8
  %80 = extractvalue { ptr, i32 } %78, 1
  store i32 %80, ptr %22, align 4
  br label %230

81:                                               ; preds = %47
  %82 = landingpad { ptr, i32 }
          cleanup
  %83 = extractvalue { ptr, i32 } %82, 0
  store ptr %83, ptr %21, align 8
  %84 = extractvalue { ptr, i32 } %82, 1
  store i32 %84, ptr %22, align 4
  br label %229

85:                                               ; preds = %49
  %86 = landingpad { ptr, i32 }
          cleanup
  %87 = extractvalue { ptr, i32 } %86, 0
  store ptr %87, ptr %21, align 8
  %88 = extractvalue { ptr, i32 } %86, 1
  store i32 %88, ptr %22, align 4
  br label %228

89:                                               ; preds = %51
  %90 = landingpad { ptr, i32 }
          cleanup
  %91 = extractvalue { ptr, i32 } %90, 0
  store ptr %91, ptr %21, align 8
  %92 = extractvalue { ptr, i32 } %90, 1
  store i32 %92, ptr %22, align 4
  br label %227

93:                                               ; preds = %224, %218, %216, %210, %208, %202, %195, %188, %183, %178, %173, %170, %156, %133, %131, %121, %111, %101, %67
  %94 = landingpad { ptr, i32 }
          cleanup
  %95 = extractvalue { ptr, i32 } %94, 0
  store ptr %95, ptr %21, align 8
  %96 = extractvalue { ptr, i32 } %94, 1
  store i32 %96, ptr %22, align 4
  call void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #5
  call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #5
  br label %227

97:                                               ; preds = %53
  %98 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %99 = load i64, ptr %98, align 8, !tbaa !18
  %100 = icmp ugt i64 %99, 0
  br i1 %100, label %103, label %101

101:                                              ; preds = %97
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b, i32 noundef 55, i32 noundef 0, ptr noundef @.str.4) #6
          to label %102 unwind label %93

102:                                              ; preds = %101
  unreachable

103:                                              ; preds = %97
  %104 = load ptr, ptr %17, align 8, !tbaa !5
  %105 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %104, i32 0, i32 2
  %106 = load i64, ptr %105, align 8, !tbaa !15
  %107 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %108 = load i64, ptr %107, align 8, !tbaa !18
  %109 = urem i64 %106, %108
  %110 = icmp eq i64 %109, 0
  br i1 %110, label %113, label %111

111:                                              ; preds = %103
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b, i32 noundef 56, i32 noundef 0, ptr noundef @.str.5) #6
          to label %112 unwind label %93

112:                                              ; preds = %111
  unreachable

113:                                              ; preds = %103
  %114 = load ptr, ptr %18, align 8, !tbaa !5
  %115 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %114, i32 0, i32 2
  %116 = load i64, ptr %115, align 8, !tbaa !15
  %117 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %118 = load i64, ptr %117, align 8, !tbaa !18
  %119 = urem i64 %116, %118
  %120 = icmp eq i64 %119, 0
  br i1 %120, label %123, label %121

121:                                              ; preds = %113
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b, i32 noundef 57, i32 noundef 0, ptr noundef @.str.6) #6
          to label %122 unwind label %93

122:                                              ; preds = %121
  unreachable

123:                                              ; preds = %113
  %124 = load ptr, ptr %19, align 8, !tbaa !5
  %125 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %124, i32 0, i32 2
  %126 = load i64, ptr %125, align 8, !tbaa !15
  %127 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %128 = load i64, ptr %127, align 8, !tbaa !18
  %129 = urem i64 %126, %128
  %130 = icmp eq i64 %129, 0
  br i1 %130, label %133, label %131

131:                                              ; preds = %123
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b, i32 noundef 58, i32 noundef 0, ptr noundef @.str.7) #6
          to label %132 unwind label %93

132:                                              ; preds = %131
  unreachable

133:                                              ; preds = %123
  %134 = load ptr, ptr %17, align 8, !tbaa !5
  %135 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %134, i32 0, i32 2
  %136 = load i64, ptr %135, align 8, !tbaa !15
  %137 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %138 = load i64, ptr %137, align 8, !tbaa !18
  %139 = udiv i64 %136, %138
  %140 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 13
  store i64 %139, ptr %140, align 8, !tbaa !49
  %141 = load ptr, ptr %18, align 8, !tbaa !5
  %142 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %141, i32 0, i32 2
  %143 = load i64, ptr %142, align 8, !tbaa !15
  %144 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %145 = load i64, ptr %144, align 8, !tbaa !18
  %146 = udiv i64 %143, %145
  %147 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 14
  store i64 %146, ptr %147, align 8, !tbaa !50
  %148 = load ptr, ptr %19, align 8, !tbaa !5
  %149 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %148, i32 0, i32 2
  %150 = load i64, ptr %149, align 8, !tbaa !15
  %151 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 11
  %152 = load i64, ptr %151, align 8, !tbaa !18
  %153 = udiv i64 %150, %152
  %154 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 15
  store i64 %153, ptr %154, align 8, !tbaa !51
  %155 = invoke noundef i32 @_ZN8nvinfer16plugin12getSMVersionEv()
          to label %156 unwind label %93

156:                                              ; preds = %133
  %157 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 25
  store i32 %155, ptr %157, align 8, !tbaa !52
  %158 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %159 = load i32, ptr %158, align 8, !tbaa !47
  %160 = icmp eq i32 %159, 1
  %161 = zext i1 %160 to i64
  %162 = select i1 %160, i32 1, i32 0
  %163 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 22
  store i32 %162, ptr %163, align 4, !tbaa !53
  %164 = load i8, ptr %20, align 1, !tbaa !11, !range !54, !noundef !55
  %165 = trunc i8 %164 to i1
  %166 = zext i1 %165 to i32
  %167 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 23
  store i32 %166, ptr %167, align 8, !tbaa !56
  %168 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 16
  %169 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %168, ptr noundef nonnull align 8 dereferenceable(24) %169, i32 noundef 0)
          to label %170 unwind label %93

170:                                              ; preds = %156
  %171 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 17
  %172 = load ptr, ptr %16, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %171, ptr noundef nonnull align 8 dereferenceable(24) %172, i32 noundef 0)
          to label %173 unwind label %93

173:                                              ; preds = %170
  %174 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 18
  %175 = load ptr, ptr %17, align 8, !tbaa !5
  %176 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %177 = load i32, ptr %176, align 8, !tbaa !47
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %174, ptr noundef nonnull align 8 dereferenceable(24) %175, i32 noundef %177)
          to label %178 unwind label %93

178:                                              ; preds = %173
  %179 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 19
  %180 = load ptr, ptr %19, align 8, !tbaa !5
  %181 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %182 = load i32, ptr %181, align 8, !tbaa !47
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %179, ptr noundef nonnull align 8 dereferenceable(24) %180, i32 noundef %182)
          to label %183 unwind label %93

183:                                              ; preds = %178
  %184 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 20
  %185 = load ptr, ptr %18, align 8, !tbaa !5
  %186 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %187 = load i32, ptr %186, align 8, !tbaa !47
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %184, ptr noundef nonnull align 8 dereferenceable(24) %185, i32 noundef %187)
          to label %188 unwind label %93

188:                                              ; preds = %183
  %189 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 17
  %190 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 17
  %191 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %190, i32 0, i32 2
  %192 = load i64, ptr %191, align 8, !tbaa !15
  %193 = mul i64 4, %192
  %194 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 6
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIfEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef %193, ptr noundef nonnull align 8 dereferenceable(8) %194)
          to label %195 unwind label %93

195:                                              ; preds = %188
  %196 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 16
  %197 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 16
  %198 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %197, i32 0, i32 2
  %199 = load i64, ptr %198, align 8, !tbaa !15
  %200 = mul i64 4, %199
  %201 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 7
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIfEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %196, i64 noundef %200, ptr noundef nonnull align 8 dereferenceable(8) %201)
          to label %202 unwind label %93

202:                                              ; preds = %195
  %203 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 18
  %204 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 18
  %205 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %206 = load i32, ptr %205, align 8, !tbaa !47
  %207 = invoke noundef i64 @_ZN8nvinfer16plugin4bert14getWeightsSizeERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %204, i32 noundef %206)
          to label %208 unwind label %93

208:                                              ; preds = %202
  %209 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 8
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %203, i64 noundef %207, ptr noundef nonnull align 8 dereferenceable(8) %209)
          to label %210 unwind label %93

210:                                              ; preds = %208
  %211 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 20
  %212 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 20
  %213 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %214 = load i32, ptr %213, align 8, !tbaa !47
  %215 = invoke noundef i64 @_ZN8nvinfer16plugin4bert14getWeightsSizeERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef %214)
          to label %216 unwind label %93

216:                                              ; preds = %210
  %217 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 10
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %211, i64 noundef %215, ptr noundef nonnull align 8 dereferenceable(8) %217)
          to label %218 unwind label %93

218:                                              ; preds = %216
  %219 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 19
  %220 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 19
  %221 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 21
  %222 = load i32, ptr %221, align 8, !tbaa !47
  %223 = invoke noundef i64 @_ZN8nvinfer16plugin4bert14getWeightsSizeERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %220, i32 noundef %222)
          to label %224 unwind label %93

224:                                              ; preds = %218
  %225 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %24, i32 0, i32 9
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef %223, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %226 unwind label %93

226:                                              ; preds = %224
  ret void

227:                                              ; preds = %93, %89
  call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #5
  br label %228

228:                                              ; preds = %227, %85
  call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  br label %229

229:                                              ; preds = %228, %81
  call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #5
  br label %230

230:                                              ; preds = %229, %77
  call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #5
  br label %231

231:                                              ; preds = %230, %73
  call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #5
  call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #5
  call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #5
  call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #5
  br label %232

232:                                              ; preds = %231, %69
  %233 = getelementptr inbounds i8, ptr %24, i64 24
  call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %233) #5
  %234 = getelementptr inbounds i8, ptr %24, i64 16
  call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #5
  %235 = getelementptr inbounds i8, ptr %24, i64 8
  call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #5
  call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br label %236

236:                                              ; preds = %232
  %237 = load ptr, ptr %21, align 8
  %238 = load i32, ptr %22, align 4
  %239 = insertvalue { ptr, i32 } poison, ptr %237, 0
  %240 = insertvalue { ptr, i32 } %239, i32 %238, 1
  resume { ptr, i32 } %240
}

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN8nvinfer16plugin12getSMVersionEv() #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert12copyToDeviceIfEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

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

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

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

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

attributes #0 = { 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 #1 = { 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 = { inlinehint 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 = { 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 = { 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 = { nounwind }
attributes #6 = { noreturn }

!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 = !{!"_ZTSN8nvinfer18DataTypeE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !17, i64 16}
!16 = !{!"_ZTSN8nvinfer17WeightsE", !10, i64 0, !6, i64 8, !17, i64 16}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !17, i64 136}
!19 = !{!"_ZTSN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE", !20, i64 0, !22, i64 8, !24, i64 16, !25, i64 24, !26, i64 32, !26, i64 64, !28, i64 96, !28, i64 104, !34, i64 112, !34, i64 120, !34, i64 128, !17, i64 136, !17, i64 144, !17, i64 152, !17, i64 160, !17, i64 168, !40, i64 176, !40, i64 200, !40, i64 224, !40, i64 248, !40, i64 272, !10, i64 296, !41, i64 300, !41, i64 304, !10, i64 308, !41, i64 312, !42, i64 320, !46, i64 344}
!20 = !{!"_ZTSN8nvinfer15v_1_09IPluginV3E", !21, i64 0}
!21 = !{!"_ZTSN8nvinfer119IVersionedInterfaceE"}
!22 = !{!"_ZTSN8nvinfer15v_1_016IPluginV3OneCoreE", !23, i64 0}
!23 = !{!"_ZTSN8nvinfer15v_1_017IPluginCapabilityE", !21, i64 0}
!24 = !{!"_ZTSN8nvinfer15v_1_017IPluginV3OneBuildE", !23, i64 0}
!25 = !{!"_ZTSN8nvinfer15v_1_019IPluginV3OneRuntimeE", !23, i64 0}
!26 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !27, i64 0, !17, i64 8, !7, i64 16}
!27 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!28 = !{!"_ZTSSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !29, i64 0}
!29 = !{!"_ZTSSt15__uniq_ptr_dataIfN8nvinfer114pluginInternal11CudaDeleterIfEELb1ELb1EE", !30, i64 0}
!30 = !{!"_ZTSSt15__uniq_ptr_implIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !31, i64 0}
!31 = !{!"_ZTSSt5tupleIJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !32, i64 0}
!32 = !{!"_ZTSSt11_Tuple_implILm0EJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !33, i64 0}
!33 = !{!"_ZTSSt10_Head_baseILm0EPfLb0EE", !6, i64 0}
!34 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !35, i64 0}
!35 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !36, i64 0}
!36 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !37, i64 0}
!37 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !38, i64 0}
!38 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !39, i64 0}
!39 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !6, i64 0}
!40 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !16, i64 0}
!41 = !{!"int", !7, i64 0}
!42 = !{!"_ZTSSt6vectorIN8nvinfer111PluginFieldESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!46 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !41, i64 0, !6, i64 8}
!47 = !{!19, !10, i64 296}
!48 = !{!19, !10, i64 308}
!49 = !{!19, !17, i64 152}
!50 = !{!19, !17, i64 160}
!51 = !{!19, !17, i64 168}
!52 = !{!19, !41, i64 312}
!53 = !{!19, !41, i64 300}
!54 = !{i8 0, i8 2}
!55 = !{}
!56 = !{!19, !41, i64 304}


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

@_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE = external dso_local unnamed_addr constant { [21 x ptr], [9 x ptr], [17 x ptr], [11 x ptr] }, align 8
@.str = external hidden unnamed_addr constant [98 x i8], align 1
@__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b = external hidden unnamed_addr constant [26 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %2, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, i1 noundef zeroext %9) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  tail call void @_ZN8nvinfer15v_1_09IPluginV3C2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #5
  %11 = getelementptr inbounds i8, ptr %0, i64 8
  tail call void @_ZN8nvinfer15v_1_016IPluginV3OneCoreC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  %12 = getelementptr inbounds i8, ptr %0, i64 16
  tail call void @_ZN8nvinfer15v_1_017IPluginV3OneBuildC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  %13 = getelementptr inbounds i8, ptr %0, i64 24
  tail call void @_ZN8nvinfer15v_1_019IPluginV3OneRuntimeC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  store ptr getelementptr inbounds inrange(-16, 152) (i8, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i64 16), ptr %0, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 56) (i8, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i64 184), ptr %11, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 120) (i8, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i64 256), ptr %12, align 8, !tbaa !5
  store ptr getelementptr inbounds inrange(-16, 72) (i8, ptr @_ZTVN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE, i64 392), ptr %13, align 8, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %0, i64 32
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %15 unwind label %38

15:                                               ; preds = %10
  %16 = getelementptr inbounds i8, ptr %0, i64 64
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  %17 = getelementptr inbounds i8, ptr %0, i64 96
  tail call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %18 = getelementptr inbounds i8, ptr %0, i64 104
  tail call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  %19 = getelementptr inbounds i8, ptr %0, i64 112
  tail call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #5
  %20 = getelementptr inbounds i8, ptr %0, i64 120
  tail call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  %21 = getelementptr inbounds i8, ptr %0, i64 128
  tail call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  %22 = getelementptr inbounds i8, ptr %0, i64 136
  %23 = getelementptr inbounds i8, ptr %4, i64 16
  %24 = load i64, ptr %23, align 8, !tbaa !8
  store i64 %24, ptr %22, align 8, !tbaa !14
  %25 = getelementptr inbounds i8, ptr %0, i64 176
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25)
  %26 = getelementptr inbounds i8, ptr %0, i64 200
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26)
  %27 = getelementptr inbounds i8, ptr %0, i64 224
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27)
  %28 = getelementptr inbounds i8, ptr %0, i64 248
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28)
  %29 = getelementptr inbounds i8, ptr %0, i64 272
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29)
  %30 = getelementptr inbounds i8, ptr %0, i64 296
  store i32 %2, ptr %30, align 8, !tbaa !43
  %31 = getelementptr inbounds i8, ptr %0, i64 308
  store i32 %3, ptr %31, align 4, !tbaa !44
  %32 = getelementptr inbounds i8, ptr %0, i64 320
  tail call void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #5
  %33 = getelementptr inbounds i8, ptr %0, i64 344
  tail call void @_ZN8nvinfer121PluginFieldCollectionC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #5
  %34 = load i64, ptr %23, align 8, !tbaa !8
  %35 = getelementptr inbounds i8, ptr %5, i64 16
  %36 = load i64, ptr %35, align 8, !tbaa !8
  %37 = icmp eq i64 %34, %36
  br i1 %37, label %42, label %.invoke

38:                                               ; preds = %10
  %39 = landingpad { ptr, i32 }
          cleanup
  br label %102

40:                                               ; preds = %.invoke, %98, %95, %92, %88, %84, %82, %80, %78, %77, %69, %64
  %41 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #5
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #5
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #5
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #5
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #5
  tail call void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #5
  tail call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  tail call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  tail call void @_ZNSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #5
  tail call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  tail call void @_ZNSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %102

42:                                               ; preds = %15
  %43 = load i64, ptr %22, align 8, !tbaa !14
  %.not = icmp eq i64 %43, 0
  br i1 %.not, label %.invoke, label %44

44:                                               ; preds = %42
  %45 = getelementptr inbounds i8, ptr %6, i64 16
  %46 = load i64, ptr %45, align 8, !tbaa !8
  %47 = urem i64 %46, %43
  %48 = udiv i64 %46, %43
  %49 = icmp eq i64 %47, 0
  br i1 %49, label %50, label %.invoke

50:                                               ; preds = %44
  %51 = getelementptr inbounds i8, ptr %7, i64 16
  %52 = load i64, ptr %51, align 8, !tbaa !8
  %53 = urem i64 %52, %43
  %54 = udiv i64 %52, %43
  %55 = icmp eq i64 %53, 0
  br i1 %55, label %56, label %.invoke

56:                                               ; preds = %50
  %57 = getelementptr inbounds i8, ptr %8, i64 16
  %58 = load i64, ptr %57, align 8, !tbaa !8
  %59 = urem i64 %58, %43
  %60 = udiv i64 %58, %43
  %61 = icmp eq i64 %59, 0
  br i1 %61, label %64, label %.invoke

.invoke:                                          ; preds = %15, %56, %50, %44, %42
  %62 = phi i32 [ 55, %42 ], [ 56, %44 ], [ 57, %50 ], [ 58, %56 ], [ 54, %15 ]
  %63 = phi ptr [ @.str.4, %42 ], [ @.str.5, %44 ], [ @.str.6, %50 ], [ @.str.7, %56 ], [ @.str.3, %15 ]
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_8DataTypeESB_RKNS_7WeightsESE_SE_SE_SE_b, i32 noundef %62, i32 noundef 0, ptr noundef nonnull %63) #6
          to label %.cont unwind label %40

.cont:                                            ; preds = %.invoke
  unreachable

64:                                               ; preds = %56
  %65 = getelementptr inbounds i8, ptr %0, i64 152
  store i64 %48, ptr %65, align 8, !tbaa !45
  %66 = getelementptr inbounds i8, ptr %0, i64 160
  store i64 %54, ptr %66, align 8, !tbaa !46
  %67 = getelementptr inbounds i8, ptr %0, i64 168
  store i64 %60, ptr %67, align 8, !tbaa !47
  %68 = invoke noundef i32 @_ZN8nvinfer16plugin12getSMVersionEv()
          to label %69 unwind label %40

69:                                               ; preds = %64
  %70 = getelementptr inbounds i8, ptr %0, i64 312
  store i32 %68, ptr %70, align 8, !tbaa !48
  %71 = load i32, ptr %30, align 8, !tbaa !43
  %72 = icmp eq i32 %71, 1
  %73 = zext i1 %72 to i32
  %74 = getelementptr inbounds i8, ptr %0, i64 300
  store i32 %73, ptr %74, align 4, !tbaa !49
  %75 = zext i1 %9 to i32
  %76 = getelementptr inbounds i8, ptr %0, i64 304
  store i32 %75, ptr %76, align 8, !tbaa !50
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef 0)
          to label %77 unwind label %40

77:                                               ; preds = %69
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %5, i32 noundef 0)
          to label %78 unwind label %40

78:                                               ; preds = %77
  %79 = load i32, ptr %30, align 8, !tbaa !43
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %6, i32 noundef %79)
          to label %80 unwind label %40

80:                                               ; preds = %78
  %81 = load i32, ptr %30, align 8, !tbaa !43
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef %81)
          to label %82 unwind label %40

82:                                               ; preds = %80
  %83 = load i32, ptr %30, align 8, !tbaa !43
  invoke void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %83)
          to label %84 unwind label %40

84:                                               ; preds = %82
  %85 = getelementptr inbounds i8, ptr %0, i64 216
  %86 = load i64, ptr %85, align 8, !tbaa !8
  %87 = shl i64 %86, 2
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIfEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %87, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %88 unwind label %40

88:                                               ; preds = %84
  %89 = getelementptr inbounds i8, ptr %0, i64 192
  %90 = load i64, ptr %89, align 8, !tbaa !8
  %91 = shl i64 %90, 2
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIfEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %91, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %92 unwind label %40

92:                                               ; preds = %88
  %93 = load i32, ptr %30, align 8, !tbaa !43
  %94 = tail call noundef i64 @_ZN8nvinfer16plugin4bert14getWeightsSizeERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %27, i32 noundef %93)
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %94, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %95 unwind label %40

95:                                               ; preds = %92
  %96 = load i32, ptr %30, align 8, !tbaa !43
  %97 = tail call noundef i64 @_ZN8nvinfer16plugin4bert14getWeightsSizeERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %29, i32 noundef %96)
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %97, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %98 unwind label %40

98:                                               ; preds = %95
  %99 = load i32, ptr %30, align 8, !tbaa !43
  %100 = tail call noundef i64 @_ZN8nvinfer16plugin4bert14getWeightsSizeERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24) %28, i32 noundef %99)
  invoke void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %100, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %101 unwind label %40

101:                                              ; preds = %98
  ret void

102:                                              ; preds = %40, %38
  %.pn = phi { ptr, i32 } [ %41, %40 ], [ %39, %38 ]
  tail call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  tail call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  tail call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  tail call void @_ZN8nvinfer119IVersionedInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #5
  resume { ptr, i32 } %.pn
}

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN8nvinfer16plugin12getSMVersionEv() local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert20WeightsWithOwnership14convertAndCopyERKNS_7WeightsENS_8DataTypeE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert12copyToDeviceIfEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert12copyToDeviceIvEEvRNS1_20WeightsWithOwnershipEmRSt10unique_ptrIT_NS_14pluginInternal11CudaDeleterIS6_EEE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8nvinfer16plugin4bert20WeightsWithOwnershipD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

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

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

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

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

attributes #0 = { 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 #1 = { 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 = { inlinehint 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 = { 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 = { 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 = { nounwind }
attributes #6 = { noreturn }

!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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !13, i64 16}
!9 = !{!"_ZTSN8nvinfer17WeightsE", !10, i64 0, !12, i64 8, !13, i64 16}
!10 = !{!"_ZTSN8nvinfer18DataTypeE", !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!"any pointer", !11, i64 0}
!13 = !{!"long", !11, i64 0}
!14 = !{!15, !13, i64 136}
!15 = !{!"_ZTSN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE", !16, i64 0, !18, i64 8, !20, i64 16, !21, i64 24, !22, i64 32, !22, i64 64, !24, i64 96, !24, i64 104, !30, i64 112, !30, i64 120, !30, i64 128, !13, i64 136, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !36, i64 176, !36, i64 200, !36, i64 224, !36, i64 248, !36, i64 272, !10, i64 296, !37, i64 300, !37, i64 304, !10, i64 308, !37, i64 312, !38, i64 320, !42, i64 344}
!16 = !{!"_ZTSN8nvinfer15v_1_09IPluginV3E", !17, i64 0}
!17 = !{!"_ZTSN8nvinfer119IVersionedInterfaceE"}
!18 = !{!"_ZTSN8nvinfer15v_1_016IPluginV3OneCoreE", !19, i64 0}
!19 = !{!"_ZTSN8nvinfer15v_1_017IPluginCapabilityE", !17, i64 0}
!20 = !{!"_ZTSN8nvinfer15v_1_017IPluginV3OneBuildE", !19, i64 0}
!21 = !{!"_ZTSN8nvinfer15v_1_019IPluginV3OneRuntimeE", !19, i64 0}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !13, i64 8, !11, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!24 = !{!"_ZTSSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_dataIfN8nvinfer114pluginInternal11CudaDeleterIfEELb1ELb1EE", !26, i64 0}
!26 = !{!"_ZTSSt15__uniq_ptr_implIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !27, i64 0}
!27 = !{!"_ZTSSt5tupleIJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !28, i64 0}
!28 = !{!"_ZTSSt11_Tuple_implILm0EJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !29, i64 0}
!29 = !{!"_ZTSSt10_Head_baseILm0EPfLb0EE", !12, i64 0}
!30 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !31, i64 0}
!31 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !32, i64 0}
!32 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !33, i64 0}
!33 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !34, i64 0}
!34 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !35, i64 0}
!35 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !12, i64 0}
!36 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !9, i64 0}
!37 = !{!"int", !11, i64 0}
!38 = !{!"_ZTSSt6vectorIN8nvinfer111PluginFieldESaIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!42 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !37, i64 0, !12, i64 8}
!43 = !{!15, !10, i64 296}
!44 = !{!15, !10, i64 308}
!45 = !{!15, !13, i64 152}
!46 = !{!15, !13, i64 160}
!47 = !{!15, !13, i64 168}
!48 = !{!15, !37, i64 312}
!49 = !{!15, !37, i64 300}
!50 = !{!15, !37, i64 304}


; Effective O3 passes: DivRemPairsPass,EarlyCSEPass,GlobalOptPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass