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

; 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::SkipLayerNormPluginV3" = 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", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", i32, i32, i32, i8, %"class.std::unique_ptr", %"class.std::unique_ptr", %"class.std::unique_ptr", i64, %"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] }
%"struct.nvinfer1::plugin::bert::WeightsWithOwnership" = type { %"class.nvinfer1::Weights" }
%"class.nvinfer1::Weights" = type { i32, ptr, i64 }
%"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.5" }
%"struct.std::_Head_base.5" = type { ptr }
%"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 [100 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef ptr @_ZN8nvinfer16plugin4bert21SkipLayerNormPluginV320getFieldsToSerializeEv(ptr noundef nonnull align 8 dereferenceable(256) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %21 = load ptr, ptr %2, align 8
  %22 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #5
  %23 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #5
  %24 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 9
  store ptr %24, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  store i32 5, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  store i32 1, ptr %5, align 4, !tbaa !11
  %25 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA8_KcPNS0_8DataTypeENS0_15PluginFieldTypeEiEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 1 dereferenceable(8) @.str.24, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %26 unwind label %165

26:                                               ; preds = %1
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %27 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  %28 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 11
  store ptr %28, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  store i32 5, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  store i32 1, ptr %8, align 4, !tbaa !11
  %29 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA3_KcPiNS0_15PluginFieldTypeEiEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 1 dereferenceable(3) @.str.25, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %30 unwind label %165

30:                                               ; preds = %26
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  %31 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %32 = load i32, ptr %31, align 4, !tbaa !13
  %33 = icmp eq i32 %32, 1
  br i1 %33, label %34, label %91

34:                                               ; preds = %30
  %35 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  %36 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 7
  %37 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %36, i32 0, i32 1
  %38 = load ptr, ptr %37, align 8, !tbaa !39
  store ptr %38, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  store i32 0, ptr %10, align 4, !tbaa !9
  %39 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 7
  %40 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %39, i32 0, i32 2
  %41 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 1 dereferenceable(5) @.str.26, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %42 unwind label %165

42:                                               ; preds = %34
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  %43 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 7
  %44 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %43, i32 0, i32 0
  %45 = load i32, ptr %44, align 8, !tbaa !40
  %46 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %47 = load i32, ptr %46, align 4, !tbaa !13
  %48 = icmp eq i32 %45, %47
  br i1 %48, label %51, label %49

49:                                               ; preds = %42
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.27, ptr noundef @.str, i32 noundef 317)
          to label %50 unwind label %165

50:                                               ; preds = %49
  br label %51

51:                                               ; preds = %50, %42
  %52 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  %53 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 6
  %54 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %53, i32 0, i32 1
  %55 = load ptr, ptr %54, align 8, !tbaa !39
  store ptr %55, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  store i32 0, ptr %12, align 4, !tbaa !9
  %56 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 6
  %57 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %56, i32 0, i32 2
  %58 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA6_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 1 dereferenceable(6) @.str.28, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %59 unwind label %165

59:                                               ; preds = %51
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  %60 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 6
  %61 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %60, i32 0, i32 0
  %62 = load i32, ptr %61, align 8, !tbaa !40
  %63 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %64 = load i32, ptr %63, align 4, !tbaa !13
  %65 = icmp eq i32 %62, %64
  br i1 %65, label %68, label %66

66:                                               ; preds = %59
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.29, ptr noundef @.str, i32 noundef 320)
          to label %67 unwind label %165

67:                                               ; preds = %66
  br label %68

68:                                               ; preds = %67, %59
  %69 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 12
  %70 = load i8, ptr %69, align 4, !tbaa !41, !range !42, !noundef !43
  %71 = trunc i8 %70 to i1
  br i1 %71, label %72, label %90

72:                                               ; preds = %68
  %73 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %74 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 8
  %75 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %74, i32 0, i32 1
  %76 = load ptr, ptr %75, align 8, !tbaa !39
  store ptr %76, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  store i32 0, ptr %14, align 4, !tbaa !9
  %77 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 8
  %78 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %77, i32 0, i32 2
  %79 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 1 dereferenceable(5) @.str.30, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %80 unwind label %165

80:                                               ; preds = %72
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  %81 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 8
  %82 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %81, i32 0, i32 0
  %83 = load i32, ptr %82, align 8, !tbaa !40
  %84 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %85 = load i32, ptr %84, align 4, !tbaa !13
  %86 = icmp eq i32 %83, %85
  br i1 %86, label %89, label %87

87:                                               ; preds = %80
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.31, ptr noundef @.str, i32 noundef 325)
          to label %88 unwind label %165

88:                                               ; preds = %87
  br label %89

89:                                               ; preds = %88, %80
  br label %90

90:                                               ; preds = %89, %68
  br label %154

91:                                               ; preds = %30
  %92 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %93 = load i32, ptr %92, align 4, !tbaa !13
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %97, label %95

95:                                               ; preds = %91
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.32, ptr noundef @.str, i32 noundef 330)
          to label %96 unwind label %165

96:                                               ; preds = %95
  br label %97

97:                                               ; preds = %96, %91
  %98 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %99 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 7
  %100 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %99, i32 0, i32 1
  %101 = load ptr, ptr %100, align 8, !tbaa !39
  store ptr %101, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  store i32 1, ptr %16, align 4, !tbaa !9
  %102 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 7
  %103 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %102, i32 0, i32 2
  %104 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 1 dereferenceable(5) @.str.26, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %105 unwind label %165

105:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  %106 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 7
  %107 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %106, i32 0, i32 0
  %108 = load i32, ptr %107, align 8, !tbaa !40
  %109 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %110 = load i32, ptr %109, align 4, !tbaa !13
  %111 = icmp eq i32 %108, %110
  br i1 %111, label %114, label %112

112:                                              ; preds = %105
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.27, ptr noundef @.str, i32 noundef 333)
          to label %113 unwind label %165

113:                                              ; preds = %112
  br label %114

114:                                              ; preds = %113, %105
  %115 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %116 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 6
  %117 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %116, i32 0, i32 1
  %118 = load ptr, ptr %117, align 8, !tbaa !39
  store ptr %118, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  store i32 1, ptr %18, align 4, !tbaa !9
  %119 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 6
  %120 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %119, i32 0, i32 2
  %121 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA6_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %115, ptr noundef nonnull align 1 dereferenceable(6) @.str.28, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %122 unwind label %165

122:                                              ; preds = %114
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  %123 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 6
  %124 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %123, i32 0, i32 0
  %125 = load i32, ptr %124, align 8, !tbaa !40
  %126 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %127 = load i32, ptr %126, align 4, !tbaa !13
  %128 = icmp eq i32 %125, %127
  br i1 %128, label %131, label %129

129:                                              ; preds = %122
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.29, ptr noundef @.str, i32 noundef 336)
          to label %130 unwind label %165

130:                                              ; preds = %129
  br label %131

131:                                              ; preds = %130, %122
  %132 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 12
  %133 = load i8, ptr %132, align 4, !tbaa !41, !range !42, !noundef !43
  %134 = trunc i8 %133 to i1
  br i1 %134, label %135, label %153

135:                                              ; preds = %131
  %136 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %137 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 8
  %138 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %137, i32 0, i32 1
  %139 = load ptr, ptr %138, align 8, !tbaa !39
  store ptr %139, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  store i32 1, ptr %20, align 4, !tbaa !9
  %140 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 8
  %141 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %140, i32 0, i32 2
  %142 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %136, ptr noundef nonnull align 1 dereferenceable(5) @.str.30, ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %143 unwind label %165

143:                                              ; preds = %135
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  %144 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 8
  %145 = getelementptr inbounds %"class.nvinfer1::Weights", ptr %144, i32 0, i32 0
  %146 = load i32, ptr %145, align 8, !tbaa !40
  %147 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 10
  %148 = load i32, ptr %147, align 4, !tbaa !13
  %149 = icmp eq i32 %146, %148
  br i1 %149, label %152, label %150

150:                                              ; preds = %143
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef @.str.31, ptr noundef @.str, i32 noundef 341)
          to label %151 unwind label %165

151:                                              ; preds = %150
  br label %152

152:                                              ; preds = %151, %143
  br label %153

153:                                              ; preds = %152, %131
  br label %154

154:                                              ; preds = %153, %90
  %155 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  %156 = call noundef i64 @_ZNKSt6vectorIN8nvinfer111PluginFieldESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %155) #5
  %157 = trunc i64 %156 to i32
  %158 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 18
  %159 = getelementptr inbounds %"struct.nvinfer1::PluginFieldCollection", ptr %158, i32 0, i32 0
  store i32 %157, ptr %159, align 8, !tbaa !44
  %160 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 17
  %161 = call noundef ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %160) #5
  %162 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 18
  %163 = getelementptr inbounds %"struct.nvinfer1::PluginFieldCollection", ptr %162, i32 0, i32 1
  store ptr %161, ptr %163, align 8, !tbaa !45
  %164 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginV3", ptr %21, i32 0, i32 18
  ret ptr %164

165:                                              ; preds = %150, %135, %129, %114, %112, %97, %95, %87, %72, %66, %51, %49, %34, %26, %1
  %166 = landingpad { ptr, i32 }
          catch ptr null
  %167 = extractvalue { ptr, i32 } %166, 0
  call void @__clang_call_terminate(ptr %167) #6
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA8_KcPNS0_8DataTypeENS0_15PluginFieldTypeEiEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA3_KcPiNS0_15PluginFieldTypeEiEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA6_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA6_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { "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, !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 = !{!"_ZTSN8nvinfer115PluginFieldTypeE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !26, i64 172}
!14 = !{!"_ZTSN8nvinfer16plugin4bert21SkipLayerNormPluginV3E", !15, i64 0, !17, i64 8, !19, i64 16, !20, i64 24, !21, i64 32, !21, i64 64, !24, i64 96, !24, i64 120, !24, i64 144, !26, i64 168, !26, i64 172, !12, i64 176, !27, i64 180, !28, i64 184, !28, i64 192, !28, i64 200, !23, i64 208, !34, i64 216, !38, i64 240}
!15 = !{!"_ZTSN8nvinfer15v_1_09IPluginV3E", !16, i64 0}
!16 = !{!"_ZTSN8nvinfer119IVersionedInterfaceE"}
!17 = !{!"_ZTSN8nvinfer15v_1_016IPluginV3OneCoreE", !18, i64 0}
!18 = !{!"_ZTSN8nvinfer15v_1_017IPluginCapabilityE", !16, i64 0}
!19 = !{!"_ZTSN8nvinfer15v_1_017IPluginV3OneBuildE", !18, i64 0}
!20 = !{!"_ZTSN8nvinfer15v_1_019IPluginV3OneRuntimeE", !18, i64 0}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !25, i64 0}
!25 = !{!"_ZTSN8nvinfer17WeightsE", !26, i64 0, !6, i64 8, !23, i64 16}
!26 = !{!"_ZTSN8nvinfer18DataTypeE", !7, i64 0}
!27 = !{!"bool", !7, i64 0}
!28 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !29, i64 0}
!29 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !30, i64 0}
!30 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !31, i64 0}
!31 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !32, i64 0}
!32 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !33, i64 0}
!33 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !6, i64 0}
!34 = !{!"_ZTSSt6vectorIN8nvinfer111PluginFieldESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !12, i64 0, !6, i64 8}
!39 = !{!25, !6, i64 8}
!40 = !{!25, !26, i64 0}
!41 = !{!14, !27, i64 180}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!14, !12, i64 240}
!45 = !{!14, !6, i64 248}


; 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 [100 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef nonnull ptr @_ZN8nvinfer16plugin4bert21SkipLayerNormPluginV320getFieldsToSerializeEv(ptr noundef nonnull align 8 dereferenceable(256) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %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 ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = getelementptr inbounds i8, ptr %0, i64 216
  tail call void @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #5
  %21 = getelementptr inbounds i8, ptr %0, i64 168
  store ptr %21, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #5
  store i32 5, ptr %3, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #5
  store i32 1, ptr %4, align 4, !tbaa !11
  %22 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA8_KcPNS0_8DataTypeENS0_15PluginFieldTypeEiEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(8) @.str.24, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %23 unwind label %109

23:                                               ; preds = %1
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %24 = getelementptr inbounds i8, ptr %0, i64 176
  store ptr %24, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  store i32 5, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  store i32 1, ptr %7, align 4, !tbaa !11
  %25 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA3_KcPiNS0_15PluginFieldTypeEiEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(3) @.str.25, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %26 unwind label %109

26:                                               ; preds = %23
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  %27 = getelementptr inbounds i8, ptr %0, i64 172
  %28 = load i32, ptr %27, align 4, !tbaa !13
  switch i32 %28, label %65 [
    i32 1, label %29
    i32 0, label %66
  ]

29:                                               ; preds = %26
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %30 = getelementptr inbounds i8, ptr %0, i64 128
  %31 = load ptr, ptr %30, align 8, !tbaa !39
  store ptr %31, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  store i32 0, ptr %9, align 4, !tbaa !9
  %32 = getelementptr inbounds i8, ptr %0, i64 136
  %33 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(5) @.str.26, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %34 unwind label %109

34:                                               ; preds = %29
  %35 = getelementptr inbounds i8, ptr %0, i64 120
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  %36 = load i32, ptr %35, align 8, !tbaa !40
  %37 = load i32, ptr %27, align 4, !tbaa !13
  %38 = icmp eq i32 %36, %37
  br i1 %38, label %40, label %39

39:                                               ; preds = %34
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str, i32 noundef 317)
          to label %40 unwind label %109

40:                                               ; preds = %39, %34
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  %41 = getelementptr inbounds i8, ptr %0, i64 104
  %42 = load ptr, ptr %41, align 8, !tbaa !39
  store ptr %42, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  store i32 0, ptr %11, align 4, !tbaa !9
  %43 = getelementptr inbounds i8, ptr %0, i64 112
  %44 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA6_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(6) @.str.28, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %45 unwind label %109

45:                                               ; preds = %40
  %46 = getelementptr inbounds i8, ptr %0, i64 96
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  %47 = load i32, ptr %46, align 8, !tbaa !40
  %48 = load i32, ptr %27, align 4, !tbaa !13
  %49 = icmp eq i32 %47, %48
  br i1 %49, label %51, label %50

50:                                               ; preds = %45
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.29, ptr noundef nonnull @.str, i32 noundef 320)
          to label %51 unwind label %109

51:                                               ; preds = %50, %45
  %52 = getelementptr inbounds i8, ptr %0, i64 180
  %53 = load i8, ptr %52, align 4, !tbaa !41, !range !42, !noundef !43
  %54 = trunc nuw i8 %53 to i1
  br i1 %54, label %55, label %103

55:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %56 = getelementptr inbounds i8, ptr %0, i64 152
  %57 = load ptr, ptr %56, align 8, !tbaa !39
  store ptr %57, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  store i32 0, ptr %13, align 4, !tbaa !9
  %58 = getelementptr inbounds i8, ptr %0, i64 160
  %59 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPK6__halfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(5) @.str.30, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %60 unwind label %109

60:                                               ; preds = %55
  %61 = getelementptr inbounds i8, ptr %0, i64 144
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  %62 = load i32, ptr %61, align 8, !tbaa !40
  %63 = load i32, ptr %27, align 4, !tbaa !13
  %64 = icmp eq i32 %62, %63
  br i1 %64, label %103, label %.invoke

65:                                               ; preds = %26
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str, i32 noundef 330)
          to label %66 unwind label %109

66:                                               ; preds = %26, %65
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %67 = getelementptr inbounds i8, ptr %0, i64 128
  %68 = load ptr, ptr %67, align 8, !tbaa !39
  store ptr %68, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  store i32 1, ptr %15, align 4, !tbaa !9
  %69 = getelementptr inbounds i8, ptr %0, i64 136
  %70 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(5) @.str.26, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %71 unwind label %109

71:                                               ; preds = %66
  %72 = getelementptr inbounds i8, ptr %0, i64 120
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  %73 = load i32, ptr %72, align 8, !tbaa !40
  %74 = load i32, ptr %27, align 4, !tbaa !13
  %75 = icmp eq i32 %73, %74
  br i1 %75, label %77, label %76

76:                                               ; preds = %71
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str, i32 noundef 333)
          to label %77 unwind label %109

77:                                               ; preds = %76, %71
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %78 = getelementptr inbounds i8, ptr %0, i64 104
  %79 = load ptr, ptr %78, align 8, !tbaa !39
  store ptr %79, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  store i32 1, ptr %17, align 4, !tbaa !9
  %80 = getelementptr inbounds i8, ptr %0, i64 112
  %81 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA6_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(6) @.str.28, ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %82 unwind label %109

82:                                               ; preds = %77
  %83 = getelementptr inbounds i8, ptr %0, i64 96
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  %84 = load i32, ptr %83, align 8, !tbaa !40
  %85 = load i32, ptr %27, align 4, !tbaa !13
  %86 = icmp eq i32 %84, %85
  br i1 %86, label %88, label %87

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

88:                                               ; preds = %87, %82
  %89 = getelementptr inbounds i8, ptr %0, i64 180
  %90 = load i8, ptr %89, align 4, !tbaa !41, !range !42, !noundef !43
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %103

92:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %93 = getelementptr inbounds i8, ptr %0, i64 152
  %94 = load ptr, ptr %93, align 8, !tbaa !39
  store ptr %94, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  store i32 1, ptr %19, align 4, !tbaa !9
  %95 = getelementptr inbounds i8, ptr %0, i64 160
  %96 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE12emplace_backIJRA5_KcPKfNS0_15PluginFieldTypeERlEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 1 dereferenceable(5) @.str.30, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %97 unwind label %109

97:                                               ; preds = %92
  %98 = getelementptr inbounds i8, ptr %0, i64 144
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  %99 = load i32, ptr %98, align 8, !tbaa !40
  %100 = load i32, ptr %27, align 4, !tbaa !13
  %101 = icmp eq i32 %99, %100
  br i1 %101, label %103, label %.invoke

.invoke:                                          ; preds = %97, %60
  %102 = phi i32 [ 325, %60 ], [ 341, %97 ]
  invoke void @_ZN8nvinfer16plugin15reportAssertionEPKcS2_i(ptr noundef nonnull @.str.31, ptr noundef nonnull @.str, i32 noundef %102)
          to label %103 unwind label %109

103:                                              ; preds = %.invoke, %88, %97, %51, %60
  %104 = call noundef i64 @_ZNKSt6vectorIN8nvinfer111PluginFieldESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  %105 = trunc i64 %104 to i32
  %106 = getelementptr inbounds i8, ptr %0, i64 240
  store i32 %105, ptr %106, align 8, !tbaa !44
  %107 = call noundef ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #5
  %108 = getelementptr inbounds i8, ptr %0, i64 248
  store ptr %107, ptr %108, align 8, !tbaa !45
  ret ptr %106

109:                                              ; preds = %.invoke, %92, %87, %77, %76, %66, %65, %55, %50, %40, %39, %29, %23, %1
  %110 = landingpad { ptr, i32 }
          catch ptr null
  %111 = extractvalue { ptr, i32 } %110, 0
  call void @__clang_call_terminate(ptr %111) #6
  unreachable
}

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNSt6vectorIN8nvinfer111PluginFieldESaIS1_EE4dataEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { "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, !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 = !{!"_ZTSN8nvinfer115PluginFieldTypeE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !26, i64 172}
!14 = !{!"_ZTSN8nvinfer16plugin4bert21SkipLayerNormPluginV3E", !15, i64 0, !17, i64 8, !19, i64 16, !20, i64 24, !21, i64 32, !21, i64 64, !24, i64 96, !24, i64 120, !24, i64 144, !26, i64 168, !26, i64 172, !12, i64 176, !27, i64 180, !28, i64 184, !28, i64 192, !28, i64 200, !23, i64 208, !34, i64 216, !38, i64 240}
!15 = !{!"_ZTSN8nvinfer15v_1_09IPluginV3E", !16, i64 0}
!16 = !{!"_ZTSN8nvinfer119IVersionedInterfaceE"}
!17 = !{!"_ZTSN8nvinfer15v_1_016IPluginV3OneCoreE", !18, i64 0}
!18 = !{!"_ZTSN8nvinfer15v_1_017IPluginCapabilityE", !16, i64 0}
!19 = !{!"_ZTSN8nvinfer15v_1_017IPluginV3OneBuildE", !18, i64 0}
!20 = !{!"_ZTSN8nvinfer15v_1_019IPluginV3OneRuntimeE", !18, i64 0}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !25, i64 0}
!25 = !{!"_ZTSN8nvinfer17WeightsE", !26, i64 0, !6, i64 8, !23, i64 16}
!26 = !{!"_ZTSN8nvinfer18DataTypeE", !7, i64 0}
!27 = !{!"bool", !7, i64 0}
!28 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !29, i64 0}
!29 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !30, i64 0}
!30 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !31, i64 0}
!31 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !32, i64 0}
!32 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !33, i64 0}
!33 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !6, i64 0}
!34 = !{!"_ZTSSt6vectorIN8nvinfer111PluginFieldESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN8nvinfer111PluginFieldESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSN8nvinfer121PluginFieldCollectionE", !12, i64 0, !6, i64 8}
!39 = !{!25, !6, i64 8}
!40 = !{!25, !26, i64 0}
!41 = !{!14, !27, i64 180}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!14, !12, i64 240}
!45 = !{!14, !6, i64 248}


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