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

%"struct.nvinfer1::PluginTensorDesc" = type { %"class.nvinfer1::Dims64", i32, i32, float }
%"class.nvinfer1::Dims64" = type { i32, [8 x i64] }
%"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 }

@.str = external hidden unnamed_addr constant [98 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef, ptr noundef, i32 noundef) #0

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

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

declare ptr @__cxa_begin_catch(ptr)

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

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

declare void @__cxa_end_catch()

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

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamic13onShapeChangeEPKNS_16PluginTensorDescEiS5_i(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef %1, i32 noundef %2, ptr noundef %3, i32 noundef %4) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store i32 %2, ptr %9, align 4, !tbaa !9
  store ptr %3, ptr %10, align 8, !tbaa !5
  store i32 %4, ptr %11, align 4, !tbaa !9
  %18 = load ptr, ptr %7, align 8
  %19 = load i32, ptr %11, align 4, !tbaa !9
  %20 = icmp eq i32 %19, 2
  br i1 %20, label %27, label %21

21:                                               ; preds = %5
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.19, ptr noundef @.str, i32 noundef 194)
          to label %22 unwind label %23

22:                                               ; preds = %21
  br label %27

23:                                               ; preds = %39, %30, %21
  %24 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %25 = extractvalue { ptr, i32 } %24, 0
  store ptr %25, ptr %12, align 8
  %26 = extractvalue { ptr, i32 } %24, 1
  store i32 %26, ptr %13, align 4
  br label %331

27:                                               ; preds = %22, %5
  %28 = load i32, ptr %9, align 4, !tbaa !9
  %29 = icmp eq i32 %28, 3
  br i1 %29, label %32, label %30

30:                                               ; preds = %27
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.20, ptr noundef @.str, i32 noundef 195)
          to label %31 unwind label %23

31:                                               ; preds = %30
  br label %32

32:                                               ; preds = %31, %27
  %33 = load ptr, ptr %8, align 8, !tbaa !5
  %34 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %33, i64 0
  %35 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %34, i32 0, i32 0
  %36 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %35, i32 0, i32 0
  %37 = load i32, ptr %36, align 8, !tbaa !11
  %38 = icmp eq i32 %37, 2
  br i1 %38, label %41, label %39

39:                                               ; preds = %32
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.21, ptr noundef @.str, i32 noundef 197)
          to label %40 unwind label %23

40:                                               ; preds = %39
  br label %41

41:                                               ; preds = %40, %32
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  %42 = load ptr, ptr %8, align 8, !tbaa !5
  %43 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %42, i64 0
  %44 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %43, i32 0, i32 0
  %45 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %44, i32 0, i32 1
  %46 = getelementptr inbounds [8 x i64], ptr %45, i64 0, i64 0
  %47 = load i64, ptr %46, align 8, !tbaa !17
  %48 = trunc i64 %47 to i32
  store i32 %48, ptr %14, align 4, !tbaa !9
  %49 = load i32, ptr %14, align 4, !tbaa !9
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 12
  store i64 %50, ptr %51, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  %52 = load ptr, ptr %8, align 8, !tbaa !5
  %53 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %52, i64 0
  %54 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %53, i32 0, i32 0
  %55 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %54, i32 0, i32 1
  %56 = getelementptr inbounds [8 x i64], ptr %55, i64 0, i64 1
  %57 = load i64, ptr %56, align 8, !tbaa !17
  %58 = trunc i64 %57 to i32
  store i32 %58, ptr %15, align 4, !tbaa !9
  %59 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 12
  %60 = load i64, ptr %59, align 8, !tbaa !19
  %61 = load ptr, ptr %8, align 8, !tbaa !5
  %62 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %61, i64 1
  %63 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %62, i32 0, i32 0
  %64 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %63, i32 0, i32 1
  %65 = getelementptr inbounds [8 x i64], ptr %64, i64 0, i64 0
  %66 = load i64, ptr %65, align 8, !tbaa !17
  %67 = icmp eq i64 %60, %66
  br i1 %67, label %74, label %68

68:                                               ; preds = %41
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.22, ptr noundef @.str, i32 noundef 202)
          to label %69 unwind label %70

69:                                               ; preds = %68
  br label %74

70:                                               ; preds = %327, %319, %309, %301, %293, %252, %240, %224, %198, %186, %173, %163, %153, %141, %129, %117, %108, %96, %84, %68
  %71 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %72 = extractvalue { ptr, i32 } %71, 0
  store ptr %72, ptr %12, align 8
  %73 = extractvalue { ptr, i32 } %71, 1
  store i32 %73, ptr %13, align 4
  br label %330

74:                                               ; preds = %69, %41
  %75 = load i32, ptr %15, align 4, !tbaa !9
  %76 = sext i32 %75 to i64
  %77 = load ptr, ptr %8, align 8, !tbaa !5
  %78 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %77, i64 1
  %79 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %78, i32 0, i32 0
  %80 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %79, i32 0, i32 1
  %81 = getelementptr inbounds [8 x i64], ptr %80, i64 0, i64 1
  %82 = load i64, ptr %81, align 8, !tbaa !17
  %83 = icmp eq i64 %76, %82
  br i1 %83, label %86, label %84

84:                                               ; preds = %74
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.23, ptr noundef @.str, i32 noundef 203)
          to label %85 unwind label %70

85:                                               ; preds = %84
  br label %86

86:                                               ; preds = %85, %74
  %87 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 12
  %88 = load i64, ptr %87, align 8, !tbaa !19
  %89 = load ptr, ptr %8, align 8, !tbaa !5
  %90 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %89, i64 2
  %91 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %90, i32 0, i32 0
  %92 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %91, i32 0, i32 1
  %93 = getelementptr inbounds [8 x i64], ptr %92, i64 0, i64 0
  %94 = load i64, ptr %93, align 8, !tbaa !17
  %95 = icmp eq i64 %88, %94
  br i1 %95, label %98, label %96

96:                                               ; preds = %86
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.24, ptr noundef @.str, i32 noundef 204)
          to label %97 unwind label %70

97:                                               ; preds = %96
  br label %98

98:                                               ; preds = %97, %86
  %99 = load i32, ptr %15, align 4, !tbaa !9
  %100 = sext i32 %99 to i64
  %101 = load ptr, ptr %8, align 8, !tbaa !5
  %102 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %101, i64 2
  %103 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %102, i32 0, i32 0
  %104 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %103, i32 0, i32 1
  %105 = getelementptr inbounds [8 x i64], ptr %104, i64 0, i64 1
  %106 = load i64, ptr %105, align 8, !tbaa !17
  %107 = icmp eq i64 %100, %106
  br i1 %107, label %110, label %108

108:                                              ; preds = %98
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.25, ptr noundef @.str, i32 noundef 205)
          to label %109 unwind label %70

109:                                              ; preds = %108
  br label %110

110:                                              ; preds = %109, %98
  %111 = load ptr, ptr %10, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %111, i64 0
  %113 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %112, i32 0, i32 0
  %114 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %113, i32 0, i32 0
  %115 = load i32, ptr %114, align 8, !tbaa !11
  %116 = icmp eq i32 %115, 5
  br i1 %116, label %119, label %117

117:                                              ; preds = %110
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.26, ptr noundef @.str, i32 noundef 207)
          to label %118 unwind label %70

118:                                              ; preds = %117
  br label %119

119:                                              ; preds = %118, %110
  %120 = load ptr, ptr %10, align 8, !tbaa !5
  %121 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %120, i64 0
  %122 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %121, i32 0, i32 0
  %123 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %122, i32 0, i32 1
  %124 = getelementptr inbounds [8 x i64], ptr %123, i64 0, i64 0
  %125 = load i64, ptr %124, align 8, !tbaa !17
  %126 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 12
  %127 = load i64, ptr %126, align 8, !tbaa !19
  %128 = icmp eq i64 %125, %127
  br i1 %128, label %131, label %129

129:                                              ; preds = %119
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.27, ptr noundef @.str, i32 noundef 208)
          to label %130 unwind label %70

130:                                              ; preds = %129
  br label %131

131:                                              ; preds = %130, %119
  %132 = load ptr, ptr %10, align 8, !tbaa !5
  %133 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %132, i64 0
  %134 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %133, i32 0, i32 0
  %135 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %134, i32 0, i32 1
  %136 = getelementptr inbounds [8 x i64], ptr %135, i64 0, i64 1
  %137 = load i64, ptr %136, align 8, !tbaa !17
  %138 = load i32, ptr %15, align 4, !tbaa !9
  %139 = sext i32 %138 to i64
  %140 = icmp eq i64 %137, %139
  br i1 %140, label %143, label %141

141:                                              ; preds = %131
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.28, ptr noundef @.str, i32 noundef 209)
          to label %142 unwind label %70

142:                                              ; preds = %141
  br label %143

143:                                              ; preds = %142, %131
  %144 = load ptr, ptr %10, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %144, i64 0
  %146 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %145, i32 0, i32 0
  %147 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %146, i32 0, i32 1
  %148 = getelementptr inbounds [8 x i64], ptr %147, i64 0, i64 2
  %149 = load i64, ptr %148, align 8, !tbaa !17
  %150 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 11
  %151 = load i64, ptr %150, align 8, !tbaa !48
  %152 = icmp eq i64 %149, %151
  br i1 %152, label %155, label %153

153:                                              ; preds = %143
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.29, ptr noundef @.str, i32 noundef 210)
          to label %154 unwind label %70

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154, %143
  %156 = load ptr, ptr %10, align 8, !tbaa !5
  %157 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %156, i64 0
  %158 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %157, i32 0, i32 0
  %159 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %158, i32 0, i32 1
  %160 = getelementptr inbounds [8 x i64], ptr %159, i64 0, i64 3
  %161 = load i64, ptr %160, align 8, !tbaa !17
  %162 = icmp eq i64 %161, 1
  br i1 %162, label %165, label %163

163:                                              ; preds = %155
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.30, ptr noundef @.str, i32 noundef 211)
          to label %164 unwind label %70

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164, %155
  %166 = load ptr, ptr %10, align 8, !tbaa !5
  %167 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %166, i64 0
  %168 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %167, i32 0, i32 0
  %169 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %168, i32 0, i32 1
  %170 = getelementptr inbounds [8 x i64], ptr %169, i64 0, i64 4
  %171 = load i64, ptr %170, align 8, !tbaa !17
  %172 = icmp eq i64 %171, 1
  br i1 %172, label %175, label %173

173:                                              ; preds = %165
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.31, ptr noundef @.str, i32 noundef 212)
          to label %174 unwind label %70

174:                                              ; preds = %173
  br label %175

175:                                              ; preds = %174, %165
  %176 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 23
  %177 = load i32, ptr %176, align 8, !tbaa !49
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %179, label %227

179:                                              ; preds = %175
  %180 = load ptr, ptr %10, align 8, !tbaa !5
  %181 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %180, i64 1
  %182 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %181, i32 0, i32 0
  %183 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %182, i32 0, i32 0
  %184 = load i32, ptr %183, align 8, !tbaa !11
  %185 = icmp eq i32 %184, 2
  br i1 %185, label %188, label %186

186:                                              ; preds = %179
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.32, ptr noundef @.str, i32 noundef 217)
          to label %187 unwind label %70

187:                                              ; preds = %186
  br label %188

188:                                              ; preds = %187, %179
  %189 = load ptr, ptr %10, align 8, !tbaa !5
  %190 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %189, i64 1
  %191 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %190, i32 0, i32 0
  %192 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %191, i32 0, i32 1
  %193 = getelementptr inbounds [8 x i64], ptr %192, i64 0, i64 0
  %194 = load i64, ptr %193, align 8, !tbaa !17
  %195 = load i32, ptr %15, align 4, !tbaa !9
  %196 = sext i32 %195 to i64
  %197 = icmp eq i64 %194, %196
  br i1 %197, label %200, label %198

198:                                              ; preds = %188
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.33, ptr noundef @.str, i32 noundef 218)
          to label %199 unwind label %70

199:                                              ; preds = %198
  br label %200

200:                                              ; preds = %199, %188
  %201 = load ptr, ptr %10, align 8, !tbaa !5
  %202 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %201, i64 1
  %203 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %202, i32 0, i32 0
  %204 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %203, i32 0, i32 1
  %205 = getelementptr inbounds [8 x i64], ptr %204, i64 0, i64 1
  %206 = load i64, ptr %205, align 8, !tbaa !17
  %207 = icmp eq i64 %206, -1
  br i1 %207, label %226, label %208

208:                                              ; preds = %200
  %209 = load ptr, ptr %10, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %209, i64 1
  %211 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %210, i32 0, i32 0
  %212 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %211, i32 0, i32 1
  %213 = getelementptr inbounds [8 x i64], ptr %212, i64 0, i64 1
  %214 = load i64, ptr %213, align 8, !tbaa !17
  %215 = icmp eq i64 %214, 6144
  br i1 %215, label %226, label %216

216:                                              ; preds = %208
  %217 = load ptr, ptr %10, align 8, !tbaa !5
  %218 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %217, i64 1
  %219 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %218, i32 0, i32 0
  %220 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %219, i32 0, i32 1
  %221 = getelementptr inbounds [8 x i64], ptr %220, i64 0, i64 1
  %222 = load i64, ptr %221, align 8, !tbaa !17
  %223 = icmp eq i64 %222, 512
  br i1 %223, label %226, label %224

224:                                              ; preds = %216
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.34, ptr noundef @.str, i32 noundef 220)
          to label %225 unwind label %70

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225, %216, %208, %200
  br label %287

227:                                              ; preds = %175
  %228 = load i32, ptr %14, align 4, !tbaa !9
  %229 = icmp ne i32 %228, -1
  br i1 %229, label %230, label %286

230:                                              ; preds = %227
  %231 = load i32, ptr %15, align 4, !tbaa !9
  %232 = icmp ne i32 %231, -1
  br i1 %232, label %233, label %286

233:                                              ; preds = %230
  %234 = load ptr, ptr %10, align 8, !tbaa !5
  %235 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %234, i64 1
  %236 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %235, i32 0, i32 0
  %237 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %236, i32 0, i32 0
  %238 = load i32, ptr %237, align 8, !tbaa !11
  %239 = icmp eq i32 %238, 2
  br i1 %239, label %242, label %240

240:                                              ; preds = %233
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.32, ptr noundef @.str, i32 noundef 227)
          to label %241 unwind label %70

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241, %233
  %243 = load ptr, ptr %10, align 8, !tbaa !5
  %244 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %243, i64 1
  %245 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %244, i32 0, i32 0
  %246 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %245, i32 0, i32 1
  %247 = getelementptr inbounds [8 x i64], ptr %246, i64 0, i64 0
  %248 = load i64, ptr %247, align 8, !tbaa !17
  %249 = load i32, ptr %15, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = icmp eq i64 %248, %250
  br i1 %251, label %254, label %252

252:                                              ; preds = %242
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.33, ptr noundef @.str, i32 noundef 228)
          to label %253 unwind label %70

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253, %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  %255 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 25
  %256 = load i32, ptr %255, align 8, !tbaa !50
  %257 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 24
  %258 = load i32, ptr %257, align 4, !tbaa !51
  %259 = load i32, ptr %14, align 4, !tbaa !9
  %260 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20getMHAMaskPackedSizeEiNS_8DataTypeEi(i32 noundef %256, i32 noundef %258, i32 noundef %259)
          to label %261 unwind label %281

261:                                              ; preds = %254
  store i32 %260, ptr %16, align 4, !tbaa !9
  %262 = load ptr, ptr %10, align 8, !tbaa !5
  %263 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %262, i64 1
  %264 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %263, i32 0, i32 0
  %265 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %264, i32 0, i32 1
  %266 = getelementptr inbounds [8 x i64], ptr %265, i64 0, i64 1
  %267 = load i64, ptr %266, align 8, !tbaa !17
  %268 = icmp eq i64 %267, -1
  br i1 %268, label %285, label %269

269:                                              ; preds = %261
  %270 = load ptr, ptr %10, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %270, i64 1
  %272 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %271, i32 0, i32 0
  %273 = getelementptr inbounds %"class.nvinfer1::Dims64", ptr %272, i32 0, i32 1
  %274 = getelementptr inbounds [8 x i64], ptr %273, i64 0, i64 1
  %275 = load i64, ptr %274, align 8, !tbaa !17
  %276 = load i32, ptr %16, align 4, !tbaa !9
  %277 = sext i32 %276 to i64
  %278 = icmp eq i64 %275, %277
  br i1 %278, label %285, label %279

279:                                              ; preds = %269
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.35, ptr noundef @.str, i32 noundef 231)
          to label %280 unwind label %281

280:                                              ; preds = %279
  br label %285

281:                                              ; preds = %279, %254
  %282 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %12, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %330

285:                                              ; preds = %280, %269, %261
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %286

286:                                              ; preds = %285, %230, %227
  br label %287

287:                                              ; preds = %286, %226
  %288 = load ptr, ptr %8, align 8, !tbaa !5
  %289 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %288, i64 0
  %290 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %289, i32 0, i32 1
  %291 = load i32, ptr %290, align 8, !tbaa !52
  %292 = icmp eq i32 %291, 3
  br i1 %292, label %295, label %293

293:                                              ; preds = %287
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.36, ptr noundef @.str, i32 noundef 235)
          to label %294 unwind label %70

294:                                              ; preds = %293
  br label %295

295:                                              ; preds = %294, %287
  %296 = load ptr, ptr %8, align 8, !tbaa !5
  %297 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %296, i64 1
  %298 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %297, i32 0, i32 1
  %299 = load i32, ptr %298, align 8, !tbaa !52
  %300 = icmp eq i32 %299, 3
  br i1 %300, label %303, label %301

301:                                              ; preds = %295
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.37, ptr noundef @.str, i32 noundef 236)
          to label %302 unwind label %70

302:                                              ; preds = %301
  br label %303

303:                                              ; preds = %302, %295
  %304 = load ptr, ptr %8, align 8, !tbaa !5
  %305 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %304, i64 2
  %306 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %305, i32 0, i32 1
  %307 = load i32, ptr %306, align 8, !tbaa !52
  %308 = icmp eq i32 %307, 3
  br i1 %308, label %311, label %309

309:                                              ; preds = %303
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.38, ptr noundef @.str, i32 noundef 237)
          to label %310 unwind label %70

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310, %303
  %312 = load ptr, ptr %10, align 8, !tbaa !5
  %313 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %312, i64 0
  %314 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %313, i32 0, i32 1
  %315 = load i32, ptr %314, align 8, !tbaa !52
  %316 = getelementptr inbounds %"class.nvinfer1::plugin::bert::EmbLayerNormPluginDynamic", ptr %18, i32 0, i32 21
  %317 = load i32, ptr %316, align 8, !tbaa !53
  %318 = icmp eq i32 %315, %317
  br i1 %318, label %321, label %319

319:                                              ; preds = %311
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.39, ptr noundef @.str, i32 noundef 238)
          to label %320 unwind label %70

320:                                              ; preds = %319
  br label %321

321:                                              ; preds = %320, %311
  %322 = load ptr, ptr %10, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %322, i64 1
  %324 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %323, i32 0, i32 1
  %325 = load i32, ptr %324, align 8, !tbaa !52
  %326 = icmp eq i32 %325, 3
  br i1 %326, label %329, label %327

327:                                              ; preds = %321
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.40, ptr noundef @.str, i32 noundef 239)
          to label %328 unwind label %70

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328, %321
  store i32 0, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  br label %342

330:                                              ; preds = %281, %70
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  br label %331

331:                                              ; preds = %330, %23
  %332 = load i32, ptr %13, align 4
  %333 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #6
  %334 = icmp eq i32 %332, %333
  br i1 %334, label %335, label %347

335:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %336 = load ptr, ptr %12, align 8
  %337 = call ptr @__cxa_begin_catch(ptr %336) #6
  store ptr %337, ptr %17, align 8
  %338 = load ptr, ptr %17, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %338)
          to label %339 unwind label %344

339:                                              ; preds = %335
  invoke void @__cxa_end_catch()
          to label %340 unwind label %344

340:                                              ; preds = %339
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %341

341:                                              ; preds = %340
  store i32 1, ptr %6, align 4
  br label %342

342:                                              ; preds = %341, %329
  %343 = load i32, ptr %6, align 4
  ret i32 %343

344:                                              ; preds = %339, %335
  %345 = landingpad { ptr, i32 }
          catch ptr null
  %346 = extractvalue { ptr, i32 } %345, 0
  call void @__clang_call_terminate(ptr %346) #7
  unreachable

347:                                              ; preds = %331
  %348 = load ptr, ptr %12, align 8
  call void @__clang_call_terminate(ptr %348) #7
  unreachable
}

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

attributes #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 = { nounwind memory(none) }
attributes #2 = { 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 #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { 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 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"_ZTSN8nvinfer116PluginTensorDescE", !13, i64 0, !14, i64 72, !15, i64 76, !16, i64 80}
!13 = !{!"_ZTSN8nvinfer16Dims64E", !10, i64 0, !7, i64 8}
!14 = !{!"_ZTSN8nvinfer18DataTypeE", !7, i64 0}
!15 = !{!"_ZTSN8nvinfer112TensorFormatE", !7, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!20, !18, i64 144}
!20 = !{!"_ZTSN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE", !21, i64 0, !23, i64 8, !25, i64 16, !26, i64 24, !27, i64 32, !27, i64 64, !29, i64 96, !29, i64 104, !35, i64 112, !35, i64 120, !35, i64 128, !18, i64 136, !18, i64 144, !18, i64 152, !18, i64 160, !18, i64 168, !41, i64 176, !41, i64 200, !41, i64 224, !41, i64 248, !41, i64 272, !14, i64 296, !10, i64 300, !10, i64 304, !14, i64 308, !10, i64 312, !43, i64 320, !47, i64 344}
!21 = !{!"_ZTSN8nvinfer15v_1_09IPluginV3E", !22, i64 0}
!22 = !{!"_ZTSN8nvinfer119IVersionedInterfaceE"}
!23 = !{!"_ZTSN8nvinfer15v_1_016IPluginV3OneCoreE", !24, i64 0}
!24 = !{!"_ZTSN8nvinfer15v_1_017IPluginCapabilityE", !22, i64 0}
!25 = !{!"_ZTSN8nvinfer15v_1_017IPluginV3OneBuildE", !24, i64 0}
!26 = !{!"_ZTSN8nvinfer15v_1_019IPluginV3OneRuntimeE", !24, i64 0}
!27 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !28, i64 0, !18, i64 8, !7, i64 16}
!28 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!29 = !{!"_ZTSSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !30, i64 0}
!30 = !{!"_ZTSSt15__uniq_ptr_dataIfN8nvinfer114pluginInternal11CudaDeleterIfEELb1ELb1EE", !31, i64 0}
!31 = !{!"_ZTSSt15__uniq_ptr_implIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !32, i64 0}
!32 = !{!"_ZTSSt5tupleIJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !33, i64 0}
!33 = !{!"_ZTSSt11_Tuple_implILm0EJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !34, i64 0}
!34 = !{!"_ZTSSt10_Head_baseILm0EPfLb0EE", !6, i64 0}
!35 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !36, i64 0}
!36 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !37, i64 0}
!37 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !38, i64 0}
!38 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !39, i64 0}
!39 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !40, i64 0}
!40 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !6, i64 0}
!41 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !42, i64 0}
!42 = !{!"_ZTSN8nvinfer17WeightsE", !14, i64 0, !6, i64 8, !18, i64 16}
!43 = !{!"_ZTSSt6vectorIN8nvinfer111PluginFieldESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!47 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !10, i64 0, !6, i64 8}
!48 = !{!20, !18, i64 136}
!49 = !{!20, !10, i64 304}
!50 = !{!20, !10, i64 312}
!51 = !{!20, !14, i64 308}
!52 = !{!12, !14, i64 72}
!53 = !{!20, !14, i64 296}


; 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 [98 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

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

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

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

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef range(i32 0, 2) i32 @_ZN8nvinfer16plugin4bert25EmbLayerNormPluginDynamic13onShapeChangeEPKNS_16PluginTensorDescEiS5_i(ptr nocapture noundef nonnull align 8 dereferenceable(360) %0, ptr nocapture noundef readonly %1, i32 noundef %2, ptr nocapture noundef readonly %3, i32 noundef %4) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = icmp eq i32 %4, 2
  br i1 %6, label %10, label %7

7:                                                ; preds = %5
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.19, ptr noundef nonnull @.str, i32 noundef 194)
          to label %10 unwind label %8

8:                                                ; preds = %16, %12, %7
  %9 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %153

10:                                               ; preds = %7, %5
  %11 = icmp eq i32 %2, 3
  br i1 %11, label %13, label %12

12:                                               ; preds = %10
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str, i32 noundef 195)
          to label %13 unwind label %8

13:                                               ; preds = %12, %10
  %14 = load i32, ptr %1, align 8, !tbaa !5
  %15 = icmp eq i32 %14, 2
  br i1 %15, label %17, label %16

16:                                               ; preds = %13
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str, i32 noundef 197)
          to label %17 unwind label %8

17:                                               ; preds = %16, %13
  %18 = getelementptr inbounds i8, ptr %1, i64 8
  %19 = load i64, ptr %18, align 8, !tbaa !14
  %20 = trunc i64 %19 to i32
  %sext = shl i64 %19, 32
  %21 = ashr exact i64 %sext, 32
  %22 = getelementptr inbounds i8, ptr %0, i64 144
  store i64 %21, ptr %22, align 8, !tbaa !16
  %23 = getelementptr inbounds i8, ptr %1, i64 16
  %24 = load i64, ptr %23, align 8, !tbaa !14
  %25 = getelementptr inbounds i8, ptr %1, i64 96
  %26 = load i64, ptr %25, align 8, !tbaa !14
  %27 = icmp eq i64 %21, %26
  br i1 %27, label %31, label %28

28:                                               ; preds = %17
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str, i32 noundef 202)
          to label %31 unwind label %29

29:                                               ; preds = %152, %147, %140, %135, %130, %110, %105, %96, %92, %87, %79, %74, %69, %62, %57, %51, %47, %42, %36, %28
  %30 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %153

31:                                               ; preds = %28, %17
  %sext51 = shl i64 %24, 32
  %32 = ashr exact i64 %sext51, 32
  %33 = getelementptr inbounds i8, ptr %1, i64 104
  %34 = load i64, ptr %33, align 8, !tbaa !14
  %35 = icmp eq i64 %32, %34
  br i1 %35, label %37, label %36

36:                                               ; preds = %31
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.23, ptr noundef nonnull @.str, i32 noundef 203)
          to label %37 unwind label %29

37:                                               ; preds = %36, %31
  %38 = load i64, ptr %22, align 8, !tbaa !16
  %39 = getelementptr inbounds i8, ptr %1, i64 184
  %40 = load i64, ptr %39, align 8, !tbaa !14
  %41 = icmp eq i64 %38, %40
  br i1 %41, label %43, label %42

42:                                               ; preds = %37
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str, i32 noundef 204)
          to label %43 unwind label %29

43:                                               ; preds = %42, %37
  %44 = getelementptr inbounds i8, ptr %1, i64 192
  %45 = load i64, ptr %44, align 8, !tbaa !14
  %46 = icmp eq i64 %32, %45
  br i1 %46, label %48, label %47

47:                                               ; preds = %43
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str, i32 noundef 205)
          to label %48 unwind label %29

48:                                               ; preds = %47, %43
  %49 = load i32, ptr %3, align 8, !tbaa !5
  %50 = icmp eq i32 %49, 5
  br i1 %50, label %52, label %51

51:                                               ; preds = %48
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str, i32 noundef 207)
          to label %52 unwind label %29

52:                                               ; preds = %51, %48
  %53 = getelementptr inbounds i8, ptr %3, i64 8
  %54 = load i64, ptr %53, align 8, !tbaa !14
  %55 = load i64, ptr %22, align 8, !tbaa !16
  %56 = icmp eq i64 %54, %55
  br i1 %56, label %58, label %57

57:                                               ; preds = %52
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str, i32 noundef 208)
          to label %58 unwind label %29

58:                                               ; preds = %57, %52
  %59 = getelementptr inbounds i8, ptr %3, i64 16
  %60 = load i64, ptr %59, align 8, !tbaa !14
  %61 = icmp eq i64 %60, %32
  br i1 %61, label %63, label %62

62:                                               ; preds = %58
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str, i32 noundef 209)
          to label %63 unwind label %29

63:                                               ; preds = %62, %58
  %64 = getelementptr inbounds i8, ptr %3, i64 24
  %65 = load i64, ptr %64, align 8, !tbaa !14
  %66 = getelementptr inbounds i8, ptr %0, i64 136
  %67 = load i64, ptr %66, align 8, !tbaa !46
  %68 = icmp eq i64 %65, %67
  br i1 %68, label %70, label %69

69:                                               ; preds = %63
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.29, ptr noundef nonnull @.str, i32 noundef 210)
          to label %70 unwind label %29

70:                                               ; preds = %69, %63
  %71 = getelementptr inbounds i8, ptr %3, i64 32
  %72 = load i64, ptr %71, align 8, !tbaa !14
  %73 = icmp eq i64 %72, 1
  br i1 %73, label %75, label %74

74:                                               ; preds = %70
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str, i32 noundef 211)
          to label %75 unwind label %29

75:                                               ; preds = %74, %70
  %76 = getelementptr inbounds i8, ptr %3, i64 40
  %77 = load i64, ptr %76, align 8, !tbaa !14
  %78 = icmp eq i64 %77, 1
  br i1 %78, label %80, label %79

79:                                               ; preds = %75
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.31, ptr noundef nonnull @.str, i32 noundef 212)
          to label %80 unwind label %29

80:                                               ; preds = %79, %75
  %81 = getelementptr inbounds i8, ptr %0, i64 304
  %82 = load i32, ptr %81, align 8, !tbaa !47
  %.not = icmp eq i32 %82, 0
  br i1 %.not, label %97, label %83

83:                                               ; preds = %80
  %84 = getelementptr inbounds i8, ptr %3, i64 88
  %85 = load i32, ptr %84, align 8, !tbaa !5
  %86 = icmp eq i32 %85, 2
  br i1 %86, label %88, label %87

87:                                               ; preds = %83
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str, i32 noundef 217)
          to label %88 unwind label %29

88:                                               ; preds = %87, %83
  %89 = getelementptr inbounds i8, ptr %3, i64 96
  %90 = load i64, ptr %89, align 8, !tbaa !14
  %91 = icmp eq i64 %90, %32
  br i1 %91, label %93, label %92

92:                                               ; preds = %88
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.33, ptr noundef nonnull @.str, i32 noundef 218)
          to label %93 unwind label %29

93:                                               ; preds = %92, %88
  %94 = getelementptr inbounds i8, ptr %3, i64 104
  %95 = load i64, ptr %94, align 8, !tbaa !14
  switch i64 %95, label %96 [
    i64 -1, label %126
    i64 6144, label %126
    i64 512, label %126
  ]

96:                                               ; preds = %93
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str, i32 noundef 220)
          to label %126 unwind label %29

97:                                               ; preds = %80
  %98 = icmp ne i32 %20, -1
  %99 = and i64 %24, 4294967295
  %100 = icmp ne i64 %99, 4294967295
  %or.cond = select i1 %98, i1 %100, i1 false
  br i1 %or.cond, label %101, label %126

101:                                              ; preds = %97
  %102 = getelementptr inbounds i8, ptr %3, i64 88
  %103 = load i32, ptr %102, align 8, !tbaa !5
  %104 = icmp eq i32 %103, 2
  br i1 %104, label %106, label %105

105:                                              ; preds = %101
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str, i32 noundef 227)
          to label %106 unwind label %29

106:                                              ; preds = %105, %101
  %107 = getelementptr inbounds i8, ptr %3, i64 96
  %108 = load i64, ptr %107, align 8, !tbaa !14
  %109 = icmp eq i64 %108, %32
  br i1 %109, label %111, label %110

110:                                              ; preds = %106
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.33, ptr noundef nonnull @.str, i32 noundef 228)
          to label %111 unwind label %29

111:                                              ; preds = %110, %106
  %112 = getelementptr inbounds i8, ptr %0, i64 312
  %113 = load i32, ptr %112, align 8, !tbaa !48
  %114 = getelementptr inbounds i8, ptr %0, i64 308
  %115 = load i32, ptr %114, align 4, !tbaa !49
  %116 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20getMHAMaskPackedSizeEiNS_8DataTypeEi(i32 noundef %113, i32 noundef %115, i32 noundef %20)
          to label %117 unwind label %124

117:                                              ; preds = %111
  %118 = getelementptr inbounds i8, ptr %3, i64 104
  %119 = load i64, ptr %118, align 8, !tbaa !14
  %120 = icmp eq i64 %119, -1
  %121 = sext i32 %116 to i64
  %122 = icmp eq i64 %119, %121
  %or.cond55 = or i1 %120, %122
  br i1 %or.cond55, label %126, label %123

123:                                              ; preds = %117
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.35, ptr noundef nonnull @.str, i32 noundef 231)
          to label %126 unwind label %124

124:                                              ; preds = %123, %111
  %125 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %153

126:                                              ; preds = %117, %123, %93, %93, %93, %97, %96
  %127 = getelementptr inbounds i8, ptr %1, i64 72
  %128 = load i32, ptr %127, align 8, !tbaa !50
  %129 = icmp eq i32 %128, 3
  br i1 %129, label %131, label %130

130:                                              ; preds = %126
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.36, ptr noundef nonnull @.str, i32 noundef 235)
          to label %131 unwind label %29

131:                                              ; preds = %130, %126
  %132 = getelementptr inbounds i8, ptr %1, i64 160
  %133 = load i32, ptr %132, align 8, !tbaa !50
  %134 = icmp eq i32 %133, 3
  br i1 %134, label %136, label %135

135:                                              ; preds = %131
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.37, ptr noundef nonnull @.str, i32 noundef 236)
          to label %136 unwind label %29

136:                                              ; preds = %135, %131
  %137 = getelementptr inbounds i8, ptr %1, i64 248
  %138 = load i32, ptr %137, align 8, !tbaa !50
  %139 = icmp eq i32 %138, 3
  br i1 %139, label %141, label %140

140:                                              ; preds = %136
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str, i32 noundef 237)
          to label %141 unwind label %29

141:                                              ; preds = %140, %136
  %142 = getelementptr inbounds i8, ptr %3, i64 72
  %143 = load i32, ptr %142, align 8, !tbaa !50
  %144 = getelementptr inbounds i8, ptr %0, i64 296
  %145 = load i32, ptr %144, align 8, !tbaa !51
  %146 = icmp eq i32 %143, %145
  br i1 %146, label %148, label %147

147:                                              ; preds = %141
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.39, ptr noundef nonnull @.str, i32 noundef 238)
          to label %148 unwind label %29

148:                                              ; preds = %147, %141
  %149 = getelementptr inbounds i8, ptr %3, i64 160
  %150 = load i32, ptr %149, align 8, !tbaa !50
  %151 = icmp eq i32 %150, 3
  br i1 %151, label %159, label %152

152:                                              ; preds = %148
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str, i32 noundef 239)
          to label %159 unwind label %29

153:                                              ; preds = %29, %124, %8
  %.pn.pn = phi { ptr, i32 } [ %9, %8 ], [ %30, %29 ], [ %125, %124 ]
  %.1 = extractvalue { ptr, i32 } %.pn.pn, 0
  %.147 = extractvalue { ptr, i32 } %.pn.pn, 1
  %154 = tail call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #5
  %155 = icmp eq i32 %.147, %154
  br i1 %155, label %156, label %163

156:                                              ; preds = %153
  %157 = tail call ptr @__cxa_begin_catch(ptr %.1) #5
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %158 unwind label %160

158:                                              ; preds = %156
  invoke void @__cxa_end_catch()
          to label %159 unwind label %160

159:                                              ; preds = %158, %148, %152
  %.0 = phi i32 [ 0, %152 ], [ 0, %148 ], [ 1, %158 ]
  ret i32 %.0

160:                                              ; preds = %158, %156
  %161 = landingpad { ptr, i32 }
          catch ptr null
  %162 = extractvalue { ptr, i32 } %161, 0
  tail call void @__clang_call_terminate(ptr %162) #6
  unreachable

163:                                              ; preds = %153
  tail call void @__clang_call_terminate(ptr %.1) #6
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN8nvinfer16plugin4bert20getMHAMaskPackedSizeEiNS_8DataTypeEi(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

attributes #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 = { nofree nosync nounwind memory(none) }
attributes #2 = { 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 #3 = { 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 #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }
attributes #6 = { 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, !8, i64 0}
!6 = !{!"_ZTSN8nvinfer116PluginTensorDescE", !7, i64 0, !11, i64 72, !12, i64 76, !13, i64 80}
!7 = !{!"_ZTSN8nvinfer16Dims64E", !8, i64 0, !9, i64 8}
!8 = !{!"int", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTSN8nvinfer18DataTypeE", !9, i64 0}
!12 = !{!"_ZTSN8nvinfer112TensorFormatE", !9, i64 0}
!13 = !{!"float", !9, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"long", !9, i64 0}
!16 = !{!17, !15, i64 144}
!17 = !{!"_ZTSN8nvinfer16plugin4bert25EmbLayerNormPluginDynamicE", !18, i64 0, !20, i64 8, !22, i64 16, !23, i64 24, !24, i64 32, !24, i64 64, !27, i64 96, !27, i64 104, !33, i64 112, !33, i64 120, !33, i64 128, !15, i64 136, !15, i64 144, !15, i64 152, !15, i64 160, !15, i64 168, !39, i64 176, !39, i64 200, !39, i64 224, !39, i64 248, !39, i64 272, !11, i64 296, !8, i64 300, !8, i64 304, !11, i64 308, !8, i64 312, !41, i64 320, !45, i64 344}
!18 = !{!"_ZTSN8nvinfer15v_1_09IPluginV3E", !19, i64 0}
!19 = !{!"_ZTSN8nvinfer119IVersionedInterfaceE"}
!20 = !{!"_ZTSN8nvinfer15v_1_016IPluginV3OneCoreE", !21, i64 0}
!21 = !{!"_ZTSN8nvinfer15v_1_017IPluginCapabilityE", !19, i64 0}
!22 = !{!"_ZTSN8nvinfer15v_1_017IPluginV3OneBuildE", !21, i64 0}
!23 = !{!"_ZTSN8nvinfer15v_1_019IPluginV3OneRuntimeE", !21, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !15, i64 8, !9, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !26, i64 0}
!26 = !{!"any pointer", !9, i64 0}
!27 = !{!"_ZTSSt10unique_ptrIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_dataIfN8nvinfer114pluginInternal11CudaDeleterIfEELb1ELb1EE", !29, i64 0}
!29 = !{!"_ZTSSt15__uniq_ptr_implIfN8nvinfer114pluginInternal11CudaDeleterIfEEE", !30, i64 0}
!30 = !{!"_ZTSSt5tupleIJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !31, i64 0}
!31 = !{!"_ZTSSt11_Tuple_implILm0EJPfN8nvinfer114pluginInternal11CudaDeleterIfEEEE", !32, i64 0}
!32 = !{!"_ZTSSt10_Head_baseILm0EPfLb0EE", !26, i64 0}
!33 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !34, i64 0}
!34 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !35, i64 0}
!35 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !36, i64 0}
!36 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !37, i64 0}
!37 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !38, i64 0}
!38 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !26, i64 0}
!39 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !40, i64 0}
!40 = !{!"_ZTSN8nvinfer17WeightsE", !11, i64 0, !26, i64 8, !15, i64 16}
!41 = !{!"_ZTSSt6vectorIN8nvinfer111PluginFieldESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE17_Vector_impl_dataE", !26, i64 0, !26, i64 8, !26, i64 16}
!45 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !8, i64 0, !26, i64 8}
!46 = !{!17, !15, i64 136}
!47 = !{!17, !8, i64 304}
!48 = !{!17, !8, i64 312}
!49 = !{!17, !11, i64 308}
!50 = !{!6, !11, i64 72}
!51 = !{!17, !11, i64 296}


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