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

; 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.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::PluginTensorDesc" = type { %"class.nvinfer1::Dims64", i32, i32, float }
%"class.nvinfer1::Dims64" = type { i32, [8 x i64] }
%"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic" = type { %"class.nvinfer1::IPluginV2DynamicExt", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::unique_ptr", %"class.std::unique_ptr", i64, %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", i32, i32, i8, %"class.std::unique_ptr", %"struct.nvinfer1::plugin::bert::WeightsWithOwnership", i64 }
%"class.nvinfer1::IPluginV2DynamicExt" = type { %"class.nvinfer1::IPluginV2Ext" }
%"class.nvinfer1::IPluginV2Ext" = type { %"class.nvinfer1::IPluginV2" }
%"class.nvinfer1::IPluginV2" = type { ptr }
%"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 }
%"struct.nvinfer1::plugin::bert::WeightsWithOwnership" = type { %"class.nvinfer1::Weights" }
%"class.nvinfer1::Weights" = type { i32, ptr, i64 }

@.str = external hidden unnamed_addr constant [106 x i8], align 1
@_ZTISt9exception = external constant ptr
@__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st = external hidden unnamed_addr constant [8 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [69 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

declare ptr @__cxa_begin_catch(ptr)

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

declare void @__cxa_end_catch()

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st(ptr noundef nonnull align 8 dereferenceable(200) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca ptr, align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  store ptr %6, ptr %14, align 8, !tbaa !5
  %44 = load ptr, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  store i32 -1, ptr %15, align 4, !tbaa !9
  %45 = load ptr, ptr %9, align 8, !tbaa !5
  %46 = icmp ne ptr %45, null
  br i1 %46, label %47, label %56

47:                                               ; preds = %7
  %48 = load ptr, ptr %10, align 8, !tbaa !5
  %49 = icmp ne ptr %48, null
  br i1 %49, label %50, label %56

50:                                               ; preds = %47
  %51 = load ptr, ptr %11, align 8, !tbaa !5
  %52 = icmp ne ptr %51, null
  br i1 %52, label %53, label %56

53:                                               ; preds = %50
  %54 = load ptr, ptr %12, align 8, !tbaa !5
  %55 = icmp ne ptr %54, null
  br i1 %55, label %62, label %56

56:                                               ; preds = %53, %50, %47, %7
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st, i32 noundef 253, i32 noundef 0, ptr noundef @.str.30) #9
          to label %57 unwind label %58

57:                                               ; preds = %56
  unreachable

58:                                               ; preds = %56
  %59 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %60 = extractvalue { ptr, i32 } %59, 0
  store ptr %60, ptr %16, align 8
  %61 = extractvalue { ptr, i32 } %59, 1
  store i32 %61, ptr %17, align 4
  br label %291

62:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %63 = load ptr, ptr %9, align 8, !tbaa !5
  %64 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %63, i64 0
  %65 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %64, i32 0, i32 0
  %66 = invoke noundef i64 @_ZN8nvinfer16plugin4bert6volumeERKNS_6Dims64E(ptr noundef nonnull align 8 dereferenceable(72) %65)
          to label %67 unwind label %107

67:                                               ; preds = %62
  %68 = trunc i64 %66 to i32
  store i32 %68, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %69 = load ptr, ptr %9, align 8, !tbaa !5
  %70 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %69, i32 0, i32 1
  %71 = load i32, ptr %70, align 8, !tbaa !11
  store i32 %71, ptr %19, align 4, !tbaa !17
  %72 = load i32, ptr %19, align 4, !tbaa !17
  %73 = icmp eq i32 %72, 0
  br i1 %73, label %74, label %130

74:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %75 = load ptr, ptr %11, align 8, !tbaa !5
  %76 = getelementptr inbounds ptr, ptr %75, i64 0
  %77 = load ptr, ptr %76, align 8, !tbaa !5
  store ptr %77, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %78 = load ptr, ptr %11, align 8, !tbaa !5
  %79 = getelementptr inbounds ptr, ptr %78, i64 1
  %80 = load ptr, ptr %79, align 8, !tbaa !5
  store ptr %80, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %81 = load ptr, ptr %12, align 8, !tbaa !5
  %82 = getelementptr inbounds ptr, ptr %81, i64 0
  %83 = load ptr, ptr %82, align 8, !tbaa !5
  store ptr %83, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %84 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 11
  %85 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #8
  store ptr %85, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %86 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 4
  %87 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  store ptr %87, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %88 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 3
  %89 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  store ptr %89, ptr %25, align 8, !tbaa !5
  %90 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 10
  %91 = load i8, ptr %90, align 8, !tbaa !18, !range !35, !noundef !36
  %92 = trunc i8 %91 to i1
  br i1 %92, label %93, label %115

93:                                               ; preds = %74
  %94 = load ptr, ptr %14, align 8, !tbaa !5
  %95 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 5
  %96 = load i64, ptr %95, align 8, !tbaa !37
  %97 = trunc i64 %96 to i32
  %98 = load i32, ptr %18, align 4, !tbaa !9
  %99 = load ptr, ptr %20, align 8, !tbaa !5
  %100 = load ptr, ptr %21, align 8, !tbaa !5
  %101 = load ptr, ptr %24, align 8, !tbaa !5
  %102 = load ptr, ptr %25, align 8, !tbaa !5
  %103 = load ptr, ptr %22, align 8, !tbaa !5
  %104 = load ptr, ptr %23, align 8, !tbaa !5
  %105 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb1EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef %94, i32 noundef %97, i32 noundef %98, ptr noundef %99, ptr noundef %100, ptr noundef %101, ptr noundef %102, ptr noundef %103, ptr noundef %104)
          to label %106 unwind label %111

106:                                              ; preds = %93
  store i32 %105, ptr %15, align 4, !tbaa !9
  br label %129

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

111:                                              ; preds = %115, %93
  %112 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %16, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %289

115:                                              ; preds = %74
  %116 = load ptr, ptr %14, align 8, !tbaa !5
  %117 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 5
  %118 = load i64, ptr %117, align 8, !tbaa !37
  %119 = trunc i64 %118 to i32
  %120 = load i32, ptr %18, align 4, !tbaa !9
  %121 = load ptr, ptr %20, align 8, !tbaa !5
  %122 = load ptr, ptr %21, align 8, !tbaa !5
  %123 = load ptr, ptr %24, align 8, !tbaa !5
  %124 = load ptr, ptr %25, align 8, !tbaa !5
  %125 = load ptr, ptr %22, align 8, !tbaa !5
  %126 = load ptr, ptr %23, align 8, !tbaa !5
  %127 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb0EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef %116, i32 noundef %119, i32 noundef %120, ptr noundef %121, ptr noundef %122, ptr noundef %123, ptr noundef %124, ptr noundef %125, ptr noundef %126)
          to label %128 unwind label %111

128:                                              ; preds = %115
  store i32 %127, ptr %15, align 4, !tbaa !9
  br label %129

129:                                              ; preds = %128, %106
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %288

130:                                              ; preds = %67
  %131 = load i32, ptr %19, align 4, !tbaa !17
  %132 = icmp eq i32 %131, 1
  br i1 %132, label %133, label %185

133:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %134 = load ptr, ptr %11, align 8, !tbaa !5
  %135 = getelementptr inbounds ptr, ptr %134, i64 0
  %136 = load ptr, ptr %135, align 8, !tbaa !5
  store ptr %136, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %137 = load ptr, ptr %11, align 8, !tbaa !5
  %138 = getelementptr inbounds ptr, ptr %137, i64 1
  %139 = load ptr, ptr %138, align 8, !tbaa !5
  store ptr %139, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %140 = load ptr, ptr %12, align 8, !tbaa !5
  %141 = getelementptr inbounds ptr, ptr %140, i64 0
  %142 = load ptr, ptr %141, align 8, !tbaa !5
  store ptr %142, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %143 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 11
  %144 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %143) #8
  store ptr %144, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %145 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 4
  %146 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %145) #8
  store ptr %146, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %147 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 3
  %148 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %147) #8
  store ptr %148, ptr %31, align 8, !tbaa !5
  %149 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 10
  %150 = load i8, ptr %149, align 8, !tbaa !18, !range !35, !noundef !36
  %151 = trunc i8 %150 to i1
  br i1 %151, label %152, label %170

152:                                              ; preds = %133
  %153 = load ptr, ptr %14, align 8, !tbaa !5
  %154 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 5
  %155 = load i64, ptr %154, align 8, !tbaa !37
  %156 = trunc i64 %155 to i32
  %157 = load i32, ptr %18, align 4, !tbaa !9
  %158 = load ptr, ptr %26, align 8, !tbaa !5
  %159 = load ptr, ptr %27, align 8, !tbaa !5
  %160 = load ptr, ptr %30, align 8, !tbaa !5
  %161 = load ptr, ptr %31, align 8, !tbaa !5
  %162 = load ptr, ptr %28, align 8, !tbaa !5
  %163 = load ptr, ptr %29, align 8, !tbaa !5
  %164 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb1EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef %153, i32 noundef %156, i32 noundef %157, ptr noundef %158, ptr noundef %159, ptr noundef %160, ptr noundef %161, ptr noundef %162, ptr noundef %163)
          to label %165 unwind label %166

165:                                              ; preds = %152
  store i32 %164, ptr %15, align 4, !tbaa !9
  br label %184

166:                                              ; preds = %170, %152
  %167 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %16, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %289

170:                                              ; preds = %133
  %171 = load ptr, ptr %14, align 8, !tbaa !5
  %172 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 5
  %173 = load i64, ptr %172, align 8, !tbaa !37
  %174 = trunc i64 %173 to i32
  %175 = load i32, ptr %18, align 4, !tbaa !9
  %176 = load ptr, ptr %26, align 8, !tbaa !5
  %177 = load ptr, ptr %27, align 8, !tbaa !5
  %178 = load ptr, ptr %30, align 8, !tbaa !5
  %179 = load ptr, ptr %31, align 8, !tbaa !5
  %180 = load ptr, ptr %28, align 8, !tbaa !5
  %181 = load ptr, ptr %29, align 8, !tbaa !5
  %182 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb0EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef %171, i32 noundef %174, i32 noundef %175, ptr noundef %176, ptr noundef %177, ptr noundef %178, ptr noundef %179, ptr noundef %180, ptr noundef %181)
          to label %183 unwind label %166

183:                                              ; preds = %170
  store i32 %182, ptr %15, align 4, !tbaa !9
  br label %184

184:                                              ; preds = %183, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %287

185:                                              ; preds = %130
  %186 = load i32, ptr %19, align 4, !tbaa !17
  %187 = icmp eq i32 %186, 2
  br i1 %187, label %188, label %272

188:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %189 = load ptr, ptr %9, align 8, !tbaa !5
  %190 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %189, i64 0
  %191 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %190, i32 0, i32 3
  %192 = load float, ptr %191, align 8, !tbaa !38
  store float %192, ptr %32, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %193, i64 1
  %195 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %194, i32 0, i32 3
  %196 = load float, ptr %195, align 8, !tbaa !38
  store float %196, ptr %33, align 4, !tbaa !39
  %197 = load ptr, ptr %10, align 8, !tbaa !5
  %198 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %197, i64 0
  %199 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %198, i32 0, i32 3
  %200 = load float, ptr %199, align 8, !tbaa !38
  %201 = fcmp une float %200, 0.000000e+00
  br i1 %201, label %208, label %202

202:                                              ; preds = %188
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st, i32 noundef 302, i32 noundef 0, ptr noundef @.str.31) #9
          to label %203 unwind label %204

203:                                              ; preds = %202
  unreachable

204:                                              ; preds = %202
  %205 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %16, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %17, align 4
  br label %271

208:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %209 = load ptr, ptr %10, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %209, i64 0
  %211 = getelementptr inbounds %"struct.nvinfer1::PluginTensorDesc", ptr %210, i32 0, i32 3
  %212 = load float, ptr %211, align 8, !tbaa !38
  %213 = fdiv float 1.000000e+00, %212
  store float %213, ptr %34, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %214 = load ptr, ptr %11, align 8, !tbaa !5
  %215 = getelementptr inbounds ptr, ptr %214, i64 0
  %216 = load ptr, ptr %215, align 8, !tbaa !5
  store ptr %216, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %217 = load ptr, ptr %11, align 8, !tbaa !5
  %218 = getelementptr inbounds ptr, ptr %217, i64 1
  %219 = load ptr, ptr %218, align 8, !tbaa !5
  store ptr %219, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %220 = load ptr, ptr %12, align 8, !tbaa !5
  %221 = getelementptr inbounds ptr, ptr %220, i64 0
  %222 = load ptr, ptr %221, align 8, !tbaa !5
  store ptr %222, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %223 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 11
  %224 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %223) #8
  store ptr %224, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %225 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 4
  %226 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %225) #8
  store ptr %226, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %227 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 3
  %228 = call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %227) #8
  store ptr %228, ptr %40, align 8, !tbaa !5
  %229 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 10
  %230 = load i8, ptr %229, align 8, !tbaa !18, !range !35, !noundef !36
  %231 = trunc i8 %230 to i1
  br i1 %231, label %232, label %253

232:                                              ; preds = %208
  %233 = load ptr, ptr %14, align 8, !tbaa !5
  %234 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 5
  %235 = load i64, ptr %234, align 8, !tbaa !37
  %236 = trunc i64 %235 to i32
  %237 = load i32, ptr %18, align 4, !tbaa !9
  %238 = load ptr, ptr %35, align 8, !tbaa !5
  %239 = load ptr, ptr %36, align 8, !tbaa !5
  %240 = load ptr, ptr %39, align 8, !tbaa !5
  %241 = load ptr, ptr %40, align 8, !tbaa !5
  %242 = load ptr, ptr %37, align 8, !tbaa !5
  %243 = load ptr, ptr %38, align 8, !tbaa !5
  %244 = load float, ptr %32, align 4, !tbaa !39
  %245 = load float, ptr %33, align 4, !tbaa !39
  %246 = load float, ptr %34, align 4, !tbaa !39
  %247 = invoke noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb1EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef %233, i32 noundef %236, i32 noundef %237, ptr noundef %238, ptr noundef %239, ptr noundef %240, ptr noundef %241, ptr noundef %242, ptr noundef %243, float noundef %244, float noundef %245, float noundef %246)
          to label %248 unwind label %249

248:                                              ; preds = %232
  store i32 %247, ptr %15, align 4, !tbaa !9
  br label %270

249:                                              ; preds = %253, %232
  %250 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %16, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %271

253:                                              ; preds = %208
  %254 = load ptr, ptr %14, align 8, !tbaa !5
  %255 = getelementptr inbounds %"class.nvinfer1::plugin::bert::SkipLayerNormPluginDynamic", ptr %44, i32 0, i32 5
  %256 = load i64, ptr %255, align 8, !tbaa !37
  %257 = trunc i64 %256 to i32
  %258 = load i32, ptr %18, align 4, !tbaa !9
  %259 = load ptr, ptr %35, align 8, !tbaa !5
  %260 = load ptr, ptr %36, align 8, !tbaa !5
  %261 = load ptr, ptr %39, align 8, !tbaa !5
  %262 = load ptr, ptr %40, align 8, !tbaa !5
  %263 = load ptr, ptr %37, align 8, !tbaa !5
  %264 = load ptr, ptr %38, align 8, !tbaa !5
  %265 = load float, ptr %32, align 4, !tbaa !39
  %266 = load float, ptr %33, align 4, !tbaa !39
  %267 = load float, ptr %34, align 4, !tbaa !39
  %268 = invoke noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb0EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef %254, i32 noundef %257, i32 noundef %258, ptr noundef %259, ptr noundef %260, ptr noundef %261, ptr noundef %262, ptr noundef %263, ptr noundef %264, float noundef %265, float noundef %266, float noundef %267)
          to label %269 unwind label %249

269:                                              ; preds = %253
  store i32 %268, ptr %15, align 4, !tbaa !9
  br label %270

270:                                              ; preds = %269, %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %286

271:                                              ; preds = %249, %204
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %289

272:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  %273 = load i32, ptr %19, align 4, !tbaa !17
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, i32 noundef %273) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef @.str.32, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %274 unwind label %277

274:                                              ; preds = %272
  %275 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st, i32 noundef 325, i32 noundef 0, ptr noundef %275) #9
          to label %276 unwind label %281

276:                                              ; preds = %274
  unreachable

277:                                              ; preds = %272
  %278 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %16, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %17, align 4
  br label %285

281:                                              ; preds = %274
  %282 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %16, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %285

285:                                              ; preds = %281, %277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %289

286:                                              ; preds = %270
  br label %287

287:                                              ; preds = %286, %184
  br label %288

288:                                              ; preds = %287, %129
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %301

289:                                              ; preds = %285, %271, %166, %111
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %290

290:                                              ; preds = %289, %107
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %291

291:                                              ; preds = %290, %58
  %292 = load i32, ptr %17, align 4
  %293 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #8
  %294 = icmp eq i32 %292, %293
  br i1 %294, label %295, label %306

295:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %296 = load ptr, ptr %16, align 8
  %297 = call ptr @__cxa_begin_catch(ptr %296) #8
  store ptr %297, ptr %43, align 8
  %298 = load ptr, ptr %43, align 8, !tbaa !5
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %298)
          to label %299 unwind label %303

299:                                              ; preds = %295
  invoke void @__cxa_end_catch()
          to label %300 unwind label %303

300:                                              ; preds = %299
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %301

301:                                              ; preds = %300, %288
  %302 = load i32, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  ret i32 %302

303:                                              ; preds = %299, %295
  %304 = landingpad { ptr, i32 }
          catch ptr null
  %305 = extractvalue { ptr, i32 } %304, 0
  call void @__clang_call_terminate(ptr %305) #10
  unreachable

306:                                              ; preds = %291
  %307 = load ptr, ptr %16, align 8
  call void @__clang_call_terminate(ptr %307) #10
  unreachable
}

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

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

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb1EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #6

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb0EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #6

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb1EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #6

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb0EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #6

declare noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb1EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef, float noundef, float noundef) #6

declare noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb0EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef, float noundef, float noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #7

attributes #0 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { nounwind memory(none) }
attributes #4 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn }
attributes #10 = { 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, !14, i64 72}
!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 = !{!14, !14, i64 0}
!18 = !{!19, !34, i64 152}
!19 = !{!"_ZTSN8nvinfer16plugin4bert26SkipLayerNormPluginDynamicE", !20, i64 0, !23, i64 8, !23, i64 40, !26, i64 72, !26, i64 80, !25, i64 88, !32, i64 96, !32, i64 120, !14, i64 144, !14, i64 148, !34, i64 152, !26, i64 160, !32, i64 168, !25, i64 192}
!20 = !{!"_ZTSN8nvinfer119IPluginV2DynamicExtE", !21, i64 0}
!21 = !{!"_ZTSN8nvinfer112IPluginV2ExtE", !22, i64 0}
!22 = !{!"_ZTSN8nvinfer19IPluginV2E"}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !27, i64 0}
!27 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !29, i64 0}
!29 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !30, i64 0}
!30 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !31, i64 0}
!31 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !6, i64 0}
!32 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !33, i64 0}
!33 = !{!"_ZTSN8nvinfer17WeightsE", !14, i64 0, !6, i64 8, !25, i64 16}
!34 = !{!"bool", !7, i64 0}
!35 = !{i8 0, i8 2}
!36 = !{}
!37 = !{!19, !25, i64 88}
!38 = !{!12, !16, i64 80}
!39 = !{!16, !16, i64 0}


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

%"class.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] }

@.str = external hidden unnamed_addr constant [106 x i8], align 1
@_ZTISt9exception = external constant ptr
@__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st = external hidden unnamed_addr constant [8 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [69 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st(ptr noundef nonnull align 8 dereferenceable(200) %0, ptr noundef %1, ptr noundef readonly %2, ptr noundef readonly %3, ptr noundef readonly %4, ptr nocapture noundef readnone %5, ptr noundef %6) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = insertelement <4 x ptr> poison, ptr %1, i64 0
  %11 = insertelement <4 x ptr> %10, ptr %2, i64 1
  %12 = insertelement <4 x ptr> %11, ptr %3, i64 2
  %13 = insertelement <4 x ptr> %12, ptr %4, i64 3
  %14 = icmp eq <4 x ptr> %13, zeroinitializer
  %15 = bitcast <4 x i1> %14 to i4
  %16 = icmp eq i4 %15, 0
  br i1 %16, label %21, label %17

17:                                               ; preds = %7
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st, i32 noundef 253, i32 noundef 0, ptr noundef nonnull @.str.30) #8
          to label %18 unwind label %19

18:                                               ; preds = %17
  unreachable

19:                                               ; preds = %17
  %20 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %120

21:                                               ; preds = %7
  %22 = invoke noundef i64 @_ZN8nvinfer16plugin4bert6volumeERKNS_6Dims64E(ptr noundef nonnull align 8 dereferenceable(72) %1)
          to label %23 unwind label %46

23:                                               ; preds = %21
  %24 = trunc i64 %22 to i32
  %25 = getelementptr inbounds i8, ptr %1, i64 72
  %26 = load i32, ptr %25, align 8, !tbaa !5
  switch i32 %26, label %111 [
    i32 0, label %27
    i32 1, label %52
    i32 2, label %75
  ]

27:                                               ; preds = %23
  %28 = load ptr, ptr %3, align 8, !tbaa !14
  %29 = getelementptr inbounds i8, ptr %3, i64 8
  %30 = load ptr, ptr %29, align 8, !tbaa !14
  %31 = load ptr, ptr %4, align 8, !tbaa !14
  %32 = getelementptr inbounds i8, ptr %0, i64 160
  %33 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  %34 = getelementptr inbounds i8, ptr %0, i64 80
  %35 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  %36 = getelementptr inbounds i8, ptr %0, i64 72
  %37 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  %38 = getelementptr inbounds i8, ptr %0, i64 152
  %39 = load i8, ptr %38, align 8, !tbaa !16, !range !33, !noundef !34
  %40 = trunc nuw i8 %39 to i1
  %41 = getelementptr inbounds i8, ptr %0, i64 88
  %42 = load i64, ptr %41, align 8, !tbaa !35
  %43 = trunc i64 %42 to i32
  br i1 %40, label %44, label %50

44:                                               ; preds = %27
  %45 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb1EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef %6, i32 noundef %43, i32 noundef %24, ptr noundef %28, ptr noundef %30, ptr noundef %35, ptr noundef %37, ptr noundef %31, ptr noundef %33)
          to label %126 unwind label %48

46:                                               ; preds = %21
  %47 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %120

48:                                               ; preds = %50, %44
  %49 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %120

50:                                               ; preds = %27
  %51 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb0EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef %6, i32 noundef %43, i32 noundef %24, ptr noundef %28, ptr noundef %30, ptr noundef %35, ptr noundef %37, ptr noundef %31, ptr noundef %33)
          to label %126 unwind label %48

52:                                               ; preds = %23
  %53 = load ptr, ptr %3, align 8, !tbaa !14
  %54 = getelementptr inbounds i8, ptr %3, i64 8
  %55 = load ptr, ptr %54, align 8, !tbaa !14
  %56 = load ptr, ptr %4, align 8, !tbaa !14
  %57 = getelementptr inbounds i8, ptr %0, i64 160
  %58 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  %59 = getelementptr inbounds i8, ptr %0, i64 80
  %60 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  %61 = getelementptr inbounds i8, ptr %0, i64 72
  %62 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  %63 = getelementptr inbounds i8, ptr %0, i64 152
  %64 = load i8, ptr %63, align 8, !tbaa !16, !range !33, !noundef !34
  %65 = trunc nuw i8 %64 to i1
  %66 = getelementptr inbounds i8, ptr %0, i64 88
  %67 = load i64, ptr %66, align 8, !tbaa !35
  %68 = trunc i64 %67 to i32
  br i1 %65, label %69, label %73

69:                                               ; preds = %52
  %70 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb1EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef %6, i32 noundef %68, i32 noundef %24, ptr noundef %53, ptr noundef %55, ptr noundef %60, ptr noundef %62, ptr noundef %56, ptr noundef %58)
          to label %126 unwind label %71

71:                                               ; preds = %73, %69
  %72 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %120

73:                                               ; preds = %52
  %74 = invoke noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb0EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef %6, i32 noundef %68, i32 noundef %24, ptr noundef %53, ptr noundef %55, ptr noundef %60, ptr noundef %62, ptr noundef %56, ptr noundef %58)
          to label %126 unwind label %71

75:                                               ; preds = %23
  %76 = getelementptr inbounds i8, ptr %1, i64 80
  %77 = load float, ptr %76, align 8, !tbaa !36
  %78 = getelementptr inbounds i8, ptr %1, i64 168
  %79 = load float, ptr %78, align 8, !tbaa !36
  %80 = getelementptr inbounds i8, ptr %2, i64 80
  %81 = load float, ptr %80, align 8, !tbaa !36
  %82 = fcmp une float %81, 0.000000e+00
  br i1 %82, label %87, label %83

83:                                               ; preds = %75
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st, i32 noundef 302, i32 noundef 0, ptr noundef nonnull @.str.31) #8
          to label %84 unwind label %85

84:                                               ; preds = %83
  unreachable

85:                                               ; preds = %83
  %86 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %120

87:                                               ; preds = %75
  %88 = fdiv float 1.000000e+00, %81
  %89 = load ptr, ptr %3, align 8, !tbaa !14
  %90 = getelementptr inbounds i8, ptr %3, i64 8
  %91 = load ptr, ptr %90, align 8, !tbaa !14
  %92 = load ptr, ptr %4, align 8, !tbaa !14
  %93 = getelementptr inbounds i8, ptr %0, i64 160
  %94 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  %95 = getelementptr inbounds i8, ptr %0, i64 80
  %96 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  %97 = getelementptr inbounds i8, ptr %0, i64 72
  %98 = tail call noundef ptr @_ZNKSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %97) #9
  %99 = getelementptr inbounds i8, ptr %0, i64 152
  %100 = load i8, ptr %99, align 8, !tbaa !16, !range !33, !noundef !34
  %101 = trunc nuw i8 %100 to i1
  %102 = getelementptr inbounds i8, ptr %0, i64 88
  %103 = load i64, ptr %102, align 8, !tbaa !35
  %104 = trunc i64 %103 to i32
  br i1 %101, label %105, label %109

105:                                              ; preds = %87
  %106 = invoke noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb1EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef %6, i32 noundef %104, i32 noundef %24, ptr noundef %89, ptr noundef %91, ptr noundef %96, ptr noundef %98, ptr noundef %92, ptr noundef %94, float noundef %77, float noundef %79, float noundef %88)
          to label %126 unwind label %107

107:                                              ; preds = %109, %105
  %108 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %120

109:                                              ; preds = %87
  %110 = invoke noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb0EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef %6, i32 noundef %104, i32 noundef %24, ptr noundef %89, ptr noundef %91, ptr noundef %96, ptr noundef %98, ptr noundef %92, ptr noundef %94, float noundef %77, float noundef %79, float noundef %88)
          to label %126 unwind label %107

111:                                              ; preds = %23
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, i32 noundef %26) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull @.str.32, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %112 unwind label %115

112:                                              ; preds = %111
  %113 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  invoke void @_ZN8nvinfer16plugin16throwPluginErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert26SkipLayerNormPluginDynamic7enqueueEPKNS_16PluginTensorDescES5_PKPKvPKPvSA_P11CUstream_st, i32 noundef 325, i32 noundef 0, ptr noundef %113) #8
          to label %114 unwind label %117

114:                                              ; preds = %112
  unreachable

115:                                              ; preds = %111
  %116 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %119

117:                                              ; preds = %112
  %118 = landingpad { ptr, i32 }
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %119

119:                                              ; preds = %117, %115
  %.pn = phi { ptr, i32 } [ %118, %117 ], [ %116, %115 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %120

120:                                              ; preds = %46, %85, %107, %119, %71, %48, %19
  %.pn106.pn.pn = phi { ptr, i32 } [ %20, %19 ], [ %47, %46 ], [ %49, %48 ], [ %72, %71 ], [ %.pn, %119 ], [ %108, %107 ], [ %86, %85 ]
  %.491 = extractvalue { ptr, i32 } %.pn106.pn.pn, 0
  %.496 = extractvalue { ptr, i32 } %.pn106.pn.pn, 1
  %121 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #9
  %122 = icmp eq i32 %.496, %121
  br i1 %122, label %123, label %130

123:                                              ; preds = %120
  %124 = call ptr @__cxa_begin_catch(ptr %.491) #9
  invoke void @_ZN8nvinfer16plugin11caughtErrorERKSt9exception(ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %125 unwind label %127

125:                                              ; preds = %123
  invoke void @__cxa_end_catch()
          to label %126 unwind label %127

126:                                              ; preds = %125, %50, %44, %73, %69, %109, %105
  %.4 = phi i32 [ %45, %44 ], [ %51, %50 ], [ %70, %69 ], [ %74, %73 ], [ %106, %105 ], [ %110, %109 ], [ -1, %125 ]
  ret i32 %.4

127:                                              ; preds = %125, %123
  %128 = landingpad { ptr, i32 }
          catch ptr null
  %129 = extractvalue { ptr, i32 } %128, 0
  call void @__clang_call_terminate(ptr %129) #10
  unreachable

130:                                              ; preds = %120
  call void @__clang_call_terminate(ptr %.491) #10
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZN8nvinfer16plugin4bert6volumeERKNS_6Dims64E(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5

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

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb1EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormIfLb0EEEiP11CUstream_stiiPKT_S7_S7_S7_PS5_S7_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb1EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare noundef i32 @_ZN8nvinfer16plugin4bert20computeSkipLayerNormI6__halfLb0EEEiP11CUstream_stiiPKT_S8_S8_S8_PS6_S8_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb1EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef, float noundef, float noundef) local_unnamed_addr #6

declare noundef i32 @_ZN8nvinfer16plugin4bert23computeSkipLayerNormDQQILb0EEEiP11CUstream_stiiPKaS6_PK6__halfS9_PaS9_fff(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, float noundef, float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #7

attributes #0 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { nofree nosync nounwind memory(none) }
attributes #4 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { noreturn }
attributes #9 = { nounwind }
attributes #10 = { 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, !11, i64 72}
!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 = !{!"any pointer", !9, i64 0}
!16 = !{!17, !32, i64 152}
!17 = !{!"_ZTSN8nvinfer16plugin4bert26SkipLayerNormPluginDynamicE", !18, i64 0, !21, i64 8, !21, i64 40, !24, i64 72, !24, i64 80, !23, i64 88, !30, i64 96, !30, i64 120, !11, i64 144, !11, i64 148, !32, i64 152, !24, i64 160, !30, i64 168, !23, i64 192}
!18 = !{!"_ZTSN8nvinfer119IPluginV2DynamicExtE", !19, i64 0}
!19 = !{!"_ZTSN8nvinfer112IPluginV2ExtE", !20, i64 0}
!20 = !{!"_ZTSN8nvinfer19IPluginV2E"}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !9, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !15, i64 0}
!23 = !{!"long", !9, i64 0}
!24 = !{!"_ZTSSt10unique_ptrIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_dataIvN8nvinfer114pluginInternal11CudaDeleterIvEELb1ELb1EE", !26, i64 0}
!26 = !{!"_ZTSSt15__uniq_ptr_implIvN8nvinfer114pluginInternal11CudaDeleterIvEEE", !27, i64 0}
!27 = !{!"_ZTSSt5tupleIJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !28, i64 0}
!28 = !{!"_ZTSSt11_Tuple_implILm0EJPvN8nvinfer114pluginInternal11CudaDeleterIvEEEE", !29, i64 0}
!29 = !{!"_ZTSSt10_Head_baseILm0EPvLb0EE", !15, i64 0}
!30 = !{!"_ZTSN8nvinfer16plugin4bert20WeightsWithOwnershipE", !31, i64 0}
!31 = !{!"_ZTSN8nvinfer17WeightsE", !11, i64 0, !15, i64 8, !23, i64 16}
!32 = !{!"bool", !9, i64 0}
!33 = !{i8 0, i8 2}
!34 = !{}
!35 = !{!17, !23, i64 88}
!36 = !{!6, !13, i64 80}


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