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

; 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::LogStream" = type { %"class.std::basic_ostream.base", %"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kVERBOSE>::Buf", %"class.std::mutex", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kVERBOSE>::Buf" = type { %"class.std::__cxx11::basic_stringbuf" }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.nvinfer1::pluginInternal::cublasLtMatmulAlgo" = type { [8 x i64] }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.nvinfer1::plugin::bert::customMatMultPerfType_t" = type { %"struct.nvinfer1::pluginInternal::cublasLtMatmulAlgo", i32, float, i64, i32, i32, i32, float }

@__const._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st.splitKSequenceA = external hidden unnamed_addr constant [9 x i32], align 16
@.str = external hidden unnamed_addr constant [78 x i8], align 1
@__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st = external hidden unnamed_addr constant [13 x i8], align 1
@_ZN8nvinfer16plugin11gLogVerboseE = external global %"class.nvinfer1::plugin::LogStream", align 8
@.str.3 = external hidden unnamed_addr constant [16 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st(ptr noundef %0, i32 noundef %1, i32 noundef %2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef %6, ptr noundef %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef %11, ptr noundef %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef %14, i64 noundef %15, i32 noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, i32 noundef %20, ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef %22) #0 {
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %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 ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i64, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca [9 x i32], align 16
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca [40 x i32], align 16
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i64, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca %"struct.nvinfer1::pluginInternal::cublasLtMatmulAlgo", align 8
  %78 = alloca i64, align 8
  %79 = alloca i64, align 8
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %110 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca ptr, align 8
  %119 = alloca i32, align 4
  %120 = alloca ptr, align 8
  store ptr %0, ptr %24, align 8, !tbaa !5
  store i32 %1, ptr %25, align 4, !tbaa !9
  store i32 %2, ptr %26, align 4, !tbaa !9
  store ptr %3, ptr %27, align 8, !tbaa !5
  store ptr %4, ptr %28, align 8, !tbaa !5
  store ptr %5, ptr %29, align 8, !tbaa !5
  store ptr %6, ptr %30, align 8, !tbaa !5
  store ptr %7, ptr %31, align 8, !tbaa !5
  store ptr %8, ptr %32, align 8, !tbaa !5
  store ptr %9, ptr %33, align 8, !tbaa !5
  store ptr %10, ptr %34, align 8, !tbaa !5
  store ptr %11, ptr %35, align 8, !tbaa !5
  store ptr %12, ptr %36, align 8, !tbaa !5
  store ptr %13, ptr %37, align 8, !tbaa !5
  store ptr %14, ptr %38, align 8, !tbaa !5
  store i64 %15, ptr %39, align 8, !tbaa !11
  store i32 %16, ptr %40, align 4, !tbaa !13
  store i32 %17, ptr %41, align 4, !tbaa !15
  store i32 %18, ptr %42, align 4, !tbaa !15
  store i32 %19, ptr %43, align 4, !tbaa !15
  store i32 %20, ptr %44, align 4, !tbaa !15
  store ptr %21, ptr %45, align 8, !tbaa !5
  store ptr %22, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  store i32 0, ptr %47, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  store ptr null, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  store ptr null, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  store ptr null, ptr %50, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  store ptr null, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  store ptr null, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  store ptr null, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  store ptr null, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %121 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZN8nvinfer114pluginInternal18getCublasLtWrapperEv()
  store ptr %121, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 36, ptr %56) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %56, ptr align 16 @__const._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st.splitKSequenceA, i64 36, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  store i32 0, ptr %57, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  store i32 0, ptr %58, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 160, ptr %59) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %122 = load ptr, ptr %55, align 8, !tbaa !5
  %123 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulPreferenceCreateEPPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %122, ptr noundef %52)
  store i32 %123, ptr %60, align 4, !tbaa !17
  %124 = load i32, ptr %60, align 4, !tbaa !17
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %126, label %128

126:                                              ; preds = %23
  %127 = load i32, ptr %60, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 167, i32 noundef %127, ptr noundef null) #11
  unreachable

128:                                              ; preds = %23
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %129 = load ptr, ptr %55, align 8, !tbaa !5
  %130 = load ptr, ptr %52, align 8, !tbaa !5
  %131 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulPreferenceSetAttributeEPNS0_30cublasLtMatmulPreferenceOpaqueENS0_34cublasLtMatmulPreferenceAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %129, ptr noundef %130, i32 noundef 1, ptr noundef %39, i64 noundef 8)
  store i32 %131, ptr %61, align 4, !tbaa !17
  %132 = load i32, ptr %61, align 4, !tbaa !17
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %136

134:                                              ; preds = %128
  %135 = load i32, ptr %61, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 169, i32 noundef %135, ptr noundef null) #11
  unreachable

136:                                              ; preds = %128
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %137 = load i32, ptr %44, align 4, !tbaa !15
  %138 = icmp eq i32 %137, 2
  %139 = zext i1 %138 to i64
  %140 = select i1 %138, i64 2, i64 1
  store i64 %140, ptr %62, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %141 = load ptr, ptr %55, align 8, !tbaa !5
  %142 = load ptr, ptr %52, align 8, !tbaa !5
  %143 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulPreferenceSetAttributeEPNS0_30cublasLtMatmulPreferenceOpaqueENS0_34cublasLtMatmulPreferenceAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %141, ptr noundef %142, i32 noundef 12, ptr noundef %62, i64 noundef 8)
  store i32 %143, ptr %63, align 4, !tbaa !17
  %144 = load i32, ptr %63, align 4, !tbaa !17
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %146, label %148

146:                                              ; preds = %136
  %147 = load i32, ptr %63, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 174, i32 noundef %147, ptr noundef null) #11
  unreachable

148:                                              ; preds = %136
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %149 = load ptr, ptr %55, align 8, !tbaa !5
  %150 = load i32, ptr %40, align 4, !tbaa !13
  %151 = load i32, ptr %41, align 4, !tbaa !15
  %152 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulDescCreateEPPNS0_24cublasLtMatmulDescOpaqueENS0_17cublasComputeTypeE14cudaDataType_t(ptr noundef nonnull align 8 dereferenceable(160) %149, ptr noundef %48, i32 noundef %150, i32 noundef %151)
  store i32 %152, ptr %64, align 4, !tbaa !17
  %153 = load i32, ptr %64, align 4, !tbaa !17
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %157

155:                                              ; preds = %148
  %156 = load i32, ptr %64, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 178, i32 noundef %156, ptr noundef null) #11
  unreachable

157:                                              ; preds = %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %158 = load ptr, ptr %55, align 8, !tbaa !5
  %159 = load ptr, ptr %48, align 8, !tbaa !5
  %160 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulDescSetAttributeEPNS0_24cublasLtMatmulDescOpaqueENS0_28cublasLtMatmulDescAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %158, ptr noundef %159, i32 noundef 3, ptr noundef %25, i64 noundef 4)
  store i32 %160, ptr %65, align 4, !tbaa !17
  %161 = load i32, ptr %65, align 4, !tbaa !17
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %163, label %165

163:                                              ; preds = %157
  %164 = load i32, ptr %65, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 180, i32 noundef %164, ptr noundef null) #11
  unreachable

165:                                              ; preds = %157
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %166 = load ptr, ptr %55, align 8, !tbaa !5
  %167 = load ptr, ptr %48, align 8, !tbaa !5
  %168 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulDescSetAttributeEPNS0_24cublasLtMatmulDescOpaqueENS0_28cublasLtMatmulDescAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %166, ptr noundef %167, i32 noundef 4, ptr noundef %26, i64 noundef 4)
  store i32 %168, ptr %66, align 4, !tbaa !17
  %169 = load i32, ptr %66, align 4, !tbaa !17
  %170 = icmp ne i32 %169, 0
  br i1 %170, label %171, label %173

171:                                              ; preds = %165
  %172 = load i32, ptr %66, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 182, i32 noundef %172, ptr noundef null) #11
  unreachable

173:                                              ; preds = %165
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %174 = load ptr, ptr %55, align 8, !tbaa !5
  %175 = load i32, ptr %42, align 4, !tbaa !15
  %176 = load i32, ptr %25, align 4, !tbaa !9
  %177 = icmp eq i32 %176, 0
  br i1 %177, label %178, label %181

178:                                              ; preds = %173
  %179 = load ptr, ptr %27, align 8, !tbaa !5
  %180 = load i32, ptr %179, align 4, !tbaa !19
  br label %184

181:                                              ; preds = %173
  %182 = load ptr, ptr %29, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !19
  br label %184

184:                                              ; preds = %181, %178
  %185 = phi i32 [ %180, %178 ], [ %183, %181 ]
  %186 = sext i32 %185 to i64
  %187 = load i32, ptr %25, align 4, !tbaa !9
  %188 = icmp eq i32 %187, 0
  br i1 %188, label %189, label %192

189:                                              ; preds = %184
  %190 = load ptr, ptr %29, align 8, !tbaa !5
  %191 = load i32, ptr %190, align 4, !tbaa !19
  br label %195

192:                                              ; preds = %184
  %193 = load ptr, ptr %27, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !19
  br label %195

195:                                              ; preds = %192, %189
  %196 = phi i32 [ %191, %189 ], [ %194, %192 ]
  %197 = sext i32 %196 to i64
  %198 = load ptr, ptr %32, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !19
  %200 = sext i32 %199 to i64
  %201 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160) %174, ptr noundef %49, i32 noundef %175, i64 noundef %186, i64 noundef %197, i64 noundef %200)
  store i32 %201, ptr %67, align 4, !tbaa !17
  %202 = load i32, ptr %67, align 4, !tbaa !17
  %203 = icmp ne i32 %202, 0
  br i1 %203, label %204, label %206

204:                                              ; preds = %195
  %205 = load i32, ptr %67, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 187, i32 noundef %205, ptr noundef null) #11
  unreachable

206:                                              ; preds = %195
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %207 = load ptr, ptr %55, align 8, !tbaa !5
  %208 = load i32, ptr %43, align 4, !tbaa !15
  %209 = load i32, ptr %26, align 4, !tbaa !9
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %214

211:                                              ; preds = %206
  %212 = load ptr, ptr %29, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !19
  br label %217

214:                                              ; preds = %206
  %215 = load ptr, ptr %28, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !19
  br label %217

217:                                              ; preds = %214, %211
  %218 = phi i32 [ %213, %211 ], [ %216, %214 ]
  %219 = sext i32 %218 to i64
  %220 = load i32, ptr %26, align 4, !tbaa !9
  %221 = icmp eq i32 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %217
  %223 = load ptr, ptr %28, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !19
  br label %228

225:                                              ; preds = %217
  %226 = load ptr, ptr %29, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !19
  br label %228

228:                                              ; preds = %225, %222
  %229 = phi i32 [ %224, %222 ], [ %227, %225 ]
  %230 = sext i32 %229 to i64
  %231 = load ptr, ptr %34, align 8, !tbaa !5
  %232 = load i32, ptr %231, align 4, !tbaa !19
  %233 = sext i32 %232 to i64
  %234 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160) %207, ptr noundef %50, i32 noundef %208, i64 noundef %219, i64 noundef %230, i64 noundef %233)
  store i32 %234, ptr %68, align 4, !tbaa !17
  %235 = load i32, ptr %68, align 4, !tbaa !17
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %239

237:                                              ; preds = %228
  %238 = load i32, ptr %68, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 189, i32 noundef %238, ptr noundef null) #11
  unreachable

239:                                              ; preds = %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %240 = load ptr, ptr %55, align 8, !tbaa !5
  %241 = load i32, ptr %44, align 4, !tbaa !15
  %242 = load ptr, ptr %27, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !19
  %244 = sext i32 %243 to i64
  %245 = load ptr, ptr %28, align 8, !tbaa !5
  %246 = load i32, ptr %245, align 4, !tbaa !19
  %247 = sext i32 %246 to i64
  %248 = load ptr, ptr %37, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !19
  %250 = sext i32 %249 to i64
  %251 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160) %240, ptr noundef %51, i32 noundef %241, i64 noundef %244, i64 noundef %247, i64 noundef %250)
  store i32 %251, ptr %69, align 4, !tbaa !17
  %252 = load i32, ptr %69, align 4, !tbaa !17
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %254, label %256

254:                                              ; preds = %239
  %255 = load i32, ptr %69, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 190, i32 noundef %255, ptr noundef null) #11
  unreachable

256:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %257 = load ptr, ptr %55, align 8, !tbaa !5
  %258 = load ptr, ptr %24, align 8, !tbaa !5
  %259 = load i32, ptr %40, align 4, !tbaa !13
  %260 = load i32, ptr %41, align 4, !tbaa !15
  %261 = load i32, ptr %42, align 4, !tbaa !15
  %262 = load i32, ptr %43, align 4, !tbaa !15
  %263 = load i32, ptr %44, align 4, !tbaa !15
  %264 = load i32, ptr %44, align 4, !tbaa !15
  %265 = getelementptr inbounds [40 x i32], ptr %59, i64 0, i64 0
  %266 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulAlgoGetIdsEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPiS6_(ptr noundef nonnull align 8 dereferenceable(160) %257, ptr noundef %258, i32 noundef %259, i32 noundef %260, i32 noundef %261, i32 noundef %262, i32 noundef %263, i32 noundef %264, i32 noundef 40, ptr noundef %265, ptr noundef %58)
  store i32 %266, ptr %70, align 4, !tbaa !17
  %267 = load i32, ptr %70, align 4, !tbaa !17
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %271

269:                                              ; preds = %256
  %270 = load i32, ptr %70, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 195, i32 noundef %270, ptr noundef null) #11
  unreachable

271:                                              ; preds = %256
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  %272 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EA16_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152) @_ZN8nvinfer16plugin11gLogVerboseE, ptr noundef nonnull align 1 dereferenceable(16) @.str.3)
  %273 = load i32, ptr %58, align 4, !tbaa !19
  %274 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_i(ptr noundef nonnull align 8 dereferenceable(152) %272, i32 noundef %273)
  %275 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152) %274, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %276 = call noundef i32 @_ZL15cudaEventCreatePP10CUevent_stj(ptr noundef %53, i32 noundef 1)
  store i32 %276, ptr %71, align 4, !tbaa !21
  %277 = load i32, ptr %71, align 4, !tbaa !21
  %278 = icmp ne i32 %277, 0
  br i1 %278, label %279, label %284

279:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %280 = load i32, ptr %71, align 4, !tbaa !21
  %281 = call ptr @cudaGetErrorString(i32 noundef %280)
  store ptr %281, ptr %72, align 8, !tbaa !5
  %282 = load i32, ptr %71, align 4, !tbaa !21
  %283 = load ptr, ptr %72, align 8, !tbaa !5
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 200, i32 noundef %282, ptr noundef %283) #11
  unreachable

284:                                              ; preds = %271
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %285 = call noundef i32 @_ZL15cudaEventCreatePP10CUevent_stj(ptr noundef %54, i32 noundef 1)
  store i32 %285, ptr %73, align 4, !tbaa !21
  %286 = load i32, ptr %73, align 4, !tbaa !21
  %287 = icmp ne i32 %286, 0
  br i1 %287, label %288, label %293

288:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %289 = load i32, ptr %73, align 4, !tbaa !21
  %290 = call ptr @cudaGetErrorString(i32 noundef %289)
  store ptr %290, ptr %74, align 8, !tbaa !5
  %291 = load i32, ptr %73, align 4, !tbaa !21
  %292 = load ptr, ptr %74, align 8, !tbaa !5
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 201, i32 noundef %291, ptr noundef %292) #11
  unreachable

293:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  store i32 0, ptr %75, align 4, !tbaa !19
  br label %294

294:                                              ; preds = %627, %293
  %295 = load i32, ptr %75, align 4, !tbaa !19
  %296 = load i32, ptr %58, align 4, !tbaa !19
  %297 = icmp slt i32 %295, %296
  br i1 %297, label %298, label %301

298:                                              ; preds = %294
  %299 = load i32, ptr %57, align 4, !tbaa !19
  %300 = icmp slt i32 %299, 6000
  br label %301

301:                                              ; preds = %298, %294
  %302 = phi i1 [ false, %294 ], [ %300, %298 ]
  br i1 %302, label %304, label %303

303:                                              ; preds = %301
  store i32 2, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %630

304:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 64, ptr %77) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  store i64 0, ptr %78, align 8, !tbaa !11
  %305 = load ptr, ptr %55, align 8, !tbaa !5
  %306 = load ptr, ptr %24, align 8, !tbaa !5
  %307 = load i32, ptr %40, align 4, !tbaa !13
  %308 = load i32, ptr %41, align 4, !tbaa !15
  %309 = load i32, ptr %42, align 4, !tbaa !15
  %310 = load i32, ptr %43, align 4, !tbaa !15
  %311 = load i32, ptr %44, align 4, !tbaa !15
  %312 = load i32, ptr %44, align 4, !tbaa !15
  %313 = load i32, ptr %75, align 4, !tbaa !19
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds [40 x i32], ptr %59, i64 0, i64 %314
  %316 = load i32, ptr %315, align 4, !tbaa !19
  %317 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper22cublasLtMatmulAlgoInitEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPNS0_18cublasLtMatmulAlgoE(ptr noundef nonnull align 8 dereferenceable(160) %305, ptr noundef %306, i32 noundef %307, i32 noundef %308, i32 noundef %309, i32 noundef %310, i32 noundef %311, i32 noundef %312, i32 noundef %316, ptr noundef %77)
  store i32 %317, ptr %47, align 4, !tbaa !17
  %318 = load i32, ptr %47, align 4, !tbaa !17
  %319 = icmp ne i32 %318, 0
  br i1 %319, label %320, label %321

320:                                              ; preds = %304
  store i32 4, ptr %76, align 4
  br label %624

321:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  store i64 -1, ptr %79, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %322 = load ptr, ptr %55, align 8, !tbaa !5
  %323 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %322, ptr noundef %77, i32 noundef 15, ptr noundef %79, i64 noundef 8, ptr noundef null)
  store i32 %323, ptr %80, align 4, !tbaa !17
  %324 = load i32, ptr %80, align 4, !tbaa !17
  %325 = icmp ne i32 %324, 0
  br i1 %325, label %326, label %328

326:                                              ; preds = %321
  %327 = load i32, ptr %80, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 218, i32 noundef %327, ptr noundef null) #11
  unreachable

328:                                              ; preds = %321
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  %329 = load i32, ptr %44, align 4, !tbaa !15
  %330 = icmp eq i32 %329, 0
  br i1 %330, label %331, label %335

331:                                              ; preds = %328
  %332 = load i64, ptr %79, align 8, !tbaa !11
  %333 = icmp eq i64 %332, 2
  br i1 %333, label %334, label %335

334:                                              ; preds = %331
  store i32 4, ptr %76, align 4
  br label %623

335:                                              ; preds = %331, %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %336 = load ptr, ptr %55, align 8, !tbaa !5
  %337 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %336, ptr noundef %77, i32 noundef 6, ptr noundef null, i64 noundef 0, ptr noundef %78)
  store i32 %337, ptr %81, align 4, !tbaa !17
  %338 = load i32, ptr %81, align 4, !tbaa !17
  %339 = icmp ne i32 %338, 0
  br i1 %339, label %340, label %342

340:                                              ; preds = %335
  %341 = load i32, ptr %81, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 227, i32 noundef %341, ptr noundef null) #11
  unreachable

342:                                              ; preds = %335
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %343 = load i64, ptr %78, align 8, !tbaa !11
  %344 = udiv i64 %343, 4
  %345 = trunc i64 %344 to i32
  store i32 %345, ptr %82, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %346 = load i32, ptr %82, align 4, !tbaa !19
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %348, label %349

348:                                              ; preds = %342
  br label %351

349:                                              ; preds = %342
  %350 = load i32, ptr %82, align 4, !tbaa !19
  br label %351

351:                                              ; preds = %349, %348
  %352 = phi i32 [ 1, %348 ], [ %350, %349 ]
  %353 = sext i32 %352 to i64
  %354 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %353, i64 4)
  %355 = extractvalue { i64, i1 } %354, 1
  %356 = extractvalue { i64, i1 } %354, 0
  %357 = select i1 %355, i64 -1, i64 %356
  %358 = call noalias noundef nonnull ptr @_Znam(i64 noundef %357) #12
  store ptr %358, ptr %83, align 8, !tbaa !5
  %359 = load i32, ptr %82, align 4, !tbaa !19
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %361, label %364

361:                                              ; preds = %351
  %362 = load ptr, ptr %83, align 8, !tbaa !5
  %363 = getelementptr inbounds i32, ptr %362, i64 0
  store i32 0, ptr %363, align 4, !tbaa !19
  store i32 1, ptr %82, align 4, !tbaa !19
  br label %364

364:                                              ; preds = %361, %351
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %365 = load ptr, ptr %55, align 8, !tbaa !5
  %366 = load ptr, ptr %83, align 8, !tbaa !5
  %367 = load i32, ptr %82, align 4, !tbaa !19
  %368 = sext i32 %367 to i64
  %369 = mul i64 4, %368
  %370 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %365, ptr noundef %77, i32 noundef 6, ptr noundef %366, i64 noundef %369, ptr noundef %78)
  store i32 %370, ptr %89, align 4, !tbaa !17
  %371 = load i32, ptr %89, align 4, !tbaa !17
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %375

373:                                              ; preds = %364
  %374 = load i32, ptr %89, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 244, i32 noundef %374, ptr noundef null) #11
  unreachable

375:                                              ; preds = %364
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %376 = load ptr, ptr %55, align 8, !tbaa !5
  %377 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %376, ptr noundef %77, i32 noundef 0, ptr noundef %84, i64 noundef 4, ptr noundef %78)
  store i32 %377, ptr %90, align 4, !tbaa !17
  %378 = load i32, ptr %90, align 4, !tbaa !17
  %379 = icmp ne i32 %378, 0
  br i1 %379, label %380, label %382

380:                                              ; preds = %375
  %381 = load i32, ptr %90, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 246, i32 noundef %381, ptr noundef null) #11
  unreachable

382:                                              ; preds = %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %383 = load ptr, ptr %55, align 8, !tbaa !5
  %384 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %383, ptr noundef %77, i32 noundef 1, ptr noundef %85, i64 noundef 4, ptr noundef %78)
  store i32 %384, ptr %91, align 4, !tbaa !17
  %385 = load i32, ptr %91, align 4, !tbaa !17
  %386 = icmp ne i32 %385, 0
  br i1 %386, label %387, label %389

387:                                              ; preds = %382
  %388 = load i32, ptr %91, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 248, i32 noundef %388, ptr noundef null) #11
  unreachable

389:                                              ; preds = %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %390 = load ptr, ptr %55, align 8, !tbaa !5
  %391 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %390, ptr noundef %77, i32 noundef 2, ptr noundef %86, i64 noundef 4, ptr noundef %78)
  store i32 %391, ptr %92, align 4, !tbaa !17
  %392 = load i32, ptr %92, align 4, !tbaa !17
  %393 = icmp ne i32 %392, 0
  br i1 %393, label %394, label %396

394:                                              ; preds = %389
  %395 = load i32, ptr %92, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 250, i32 noundef %395, ptr noundef null) #11
  unreachable

396:                                              ; preds = %389
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %397 = load ptr, ptr %55, align 8, !tbaa !5
  %398 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %397, ptr noundef %77, i32 noundef 7, ptr noundef %87, i64 noundef 4, ptr noundef %78)
  store i32 %398, ptr %93, align 4, !tbaa !17
  %399 = load i32, ptr %93, align 4, !tbaa !17
  %400 = icmp ne i32 %399, 0
  br i1 %400, label %401, label %403

401:                                              ; preds = %396
  %402 = load i32, ptr %93, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 252, i32 noundef %402, ptr noundef null) #11
  unreachable

403:                                              ; preds = %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %404 = load ptr, ptr %55, align 8, !tbaa !5
  %405 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %404, ptr noundef %77, i32 noundef 12, ptr noundef %88, i64 noundef 4, ptr noundef %78)
  store i32 %405, ptr %94, align 4, !tbaa !17
  %406 = load i32, ptr %94, align 4, !tbaa !17
  %407 = icmp ne i32 %406, 0
  br i1 %407, label %408, label %410

408:                                              ; preds = %403
  %409 = load i32, ptr %94, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 255, i32 noundef %409, ptr noundef null) #11
  unreachable

410:                                              ; preds = %403
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  store i32 0, ptr %95, align 4, !tbaa !19
  br label %411

411:                                              ; preds = %615, %410
  %412 = load i32, ptr %95, align 4, !tbaa !19
  %413 = load i32, ptr %82, align 4, !tbaa !19
  %414 = icmp slt i32 %412, %413
  br i1 %414, label %416, label %415

415:                                              ; preds = %411
  store i32 5, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %618

416:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  store i32 0, ptr %96, align 4, !tbaa !19
  br label %417

417:                                              ; preds = %611, %416
  %418 = load i32, ptr %96, align 4, !tbaa !19
  %419 = load i32, ptr %87, align 4, !tbaa !19
  %420 = icmp sle i32 %418, %419
  br i1 %420, label %422, label %421

421:                                              ; preds = %417
  store i32 8, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %614

422:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %423 = load ptr, ptr %55, align 8, !tbaa !5
  %424 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %423, ptr noundef %77, i32 noundef 5, ptr noundef %96, i64 noundef 4)
  store i32 %424, ptr %97, align 4, !tbaa !17
  %425 = load i32, ptr %97, align 4, !tbaa !17
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %429

427:                                              ; preds = %422
  %428 = load i32, ptr %97, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 264, i32 noundef %428, ptr noundef null) #11
  unreachable

429:                                              ; preds = %422
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  store i32 0, ptr %98, align 4, !tbaa !19
  br label %430

430:                                              ; preds = %607, %429
  %431 = load i32, ptr %98, align 4, !tbaa !19
  %432 = load i32, ptr %86, align 4, !tbaa !19
  %433 = icmp sle i32 %431, %432
  br i1 %433, label %435, label %434

434:                                              ; preds = %430
  store i32 11, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %610

435:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  store i32 0, ptr %99, align 4, !tbaa !19
  %436 = load i32, ptr %84, align 4, !tbaa !19
  %437 = icmp ne i32 %436, 0
  br i1 %437, label %438, label %443

438:                                              ; preds = %435
  %439 = load i32, ptr %99, align 4, !tbaa !19
  %440 = sext i32 %439 to i64
  %441 = add i64 %440, 9
  %442 = trunc i64 %441 to i32
  store i32 %442, ptr %99, align 4, !tbaa !19
  br label %443

443:                                              ; preds = %438, %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  store i32 0, ptr %100, align 4, !tbaa !19
  br label %444

444:                                              ; preds = %603, %443
  %445 = load i32, ptr %100, align 4, !tbaa !19
  %446 = load i32, ptr %99, align 4, !tbaa !19
  %447 = add nsw i32 1, %446
  %448 = icmp slt i32 %445, %447
  br i1 %448, label %449, label %452

449:                                              ; preds = %444
  %450 = load i32, ptr %57, align 4, !tbaa !19
  %451 = icmp slt i32 %450, 6000
  br label %452

452:                                              ; preds = %449, %444
  %453 = phi i1 [ false, %444 ], [ %451, %449 ]
  br i1 %453, label %455, label %454

454:                                              ; preds = %452
  store i32 14, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %606

455:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %456 = load ptr, ptr %55, align 8, !tbaa !5
  %457 = load ptr, ptr %83, align 8, !tbaa !5
  %458 = load i32, ptr %95, align 4, !tbaa !19
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds i32, ptr %457, i64 %459
  %461 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %456, ptr noundef %77, i32 noundef 1, ptr noundef %460, i64 noundef 4)
  store i32 %461, ptr %101, align 4, !tbaa !17
  %462 = load i32, ptr %101, align 4, !tbaa !17
  %463 = icmp ne i32 %462, 0
  br i1 %463, label %464, label %466

464:                                              ; preds = %455
  %465 = load i32, ptr %101, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 279, i32 noundef %465, ptr noundef null) #11
  unreachable

466:                                              ; preds = %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  store i32 0, ptr %102, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  store i32 0, ptr %103, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %467 = load ptr, ptr %55, align 8, !tbaa !5
  %468 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %467, ptr noundef %77, i32 noundef 2, ptr noundef %102, i64 noundef 4)
  store i32 %468, ptr %104, align 4, !tbaa !17
  %469 = load i32, ptr %104, align 4, !tbaa !17
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %471, label %473

471:                                              ; preds = %466
  %472 = load i32, ptr %104, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 283, i32 noundef %472, ptr noundef null) #11
  unreachable

473:                                              ; preds = %466
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %474 = load ptr, ptr %55, align 8, !tbaa !5
  %475 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %474, ptr noundef %77, i32 noundef 4, ptr noundef %98, i64 noundef 4)
  store i32 %475, ptr %105, align 4, !tbaa !17
  %476 = load i32, ptr %105, align 4, !tbaa !17
  %477 = icmp ne i32 %476, 0
  br i1 %477, label %478, label %480

478:                                              ; preds = %473
  %479 = load i32, ptr %105, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 285, i32 noundef %479, ptr noundef null) #11
  unreachable

480:                                              ; preds = %473
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %481 = load ptr, ptr %55, align 8, !tbaa !5
  %482 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %481, ptr noundef %77, i32 noundef 3, ptr noundef %103, i64 noundef 4)
  store i32 %482, ptr %106, align 4, !tbaa !17
  %483 = load i32, ptr %106, align 4, !tbaa !17
  %484 = icmp ne i32 %483, 0
  br i1 %484, label %485, label %487

485:                                              ; preds = %480
  %486 = load i32, ptr %106, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 287, i32 noundef %486, ptr noundef null) #11
  unreachable

487:                                              ; preds = %480
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  %488 = load i32, ptr %100, align 4, !tbaa !19
  %489 = icmp sgt i32 %488, 0
  br i1 %489, label %490, label %565

490:                                              ; preds = %487
  %491 = load i32, ptr %100, align 4, !tbaa !19
  %492 = sub nsw i32 %491, 1
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds [9 x i32], ptr %56, i64 0, i64 %493
  %495 = load i32, ptr %494, align 4, !tbaa !19
  store i32 %495, ptr %102, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %496 = load ptr, ptr %55, align 8, !tbaa !5
  %497 = load i32, ptr %100, align 4, !tbaa !19
  %498 = sub nsw i32 %497, 1
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds [9 x i32], ptr %56, i64 0, i64 %499
  %501 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %496, ptr noundef %77, i32 noundef 2, ptr noundef %500, i64 noundef 4)
  store i32 %501, ptr %107, align 4, !tbaa !17
  %502 = load i32, ptr %107, align 4, !tbaa !17
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %504, label %506

504:                                              ; preds = %490
  %505 = load i32, ptr %107, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 294, i32 noundef %505, ptr noundef null) #11
  unreachable

506:                                              ; preds = %490
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  store i32 1, ptr %103, align 4, !tbaa !19
  br label %507

507:                                              ; preds = %561, %506
  %508 = load i32, ptr %103, align 4, !tbaa !19
  %509 = icmp slt i32 %508, 7
  br i1 %509, label %510, label %513

510:                                              ; preds = %507
  %511 = load i32, ptr %57, align 4, !tbaa !19
  %512 = icmp slt i32 %511, 6000
  br label %513

513:                                              ; preds = %510, %507
  %514 = phi i1 [ false, %507 ], [ %512, %510 ]
  br i1 %514, label %515, label %564

515:                                              ; preds = %513
  %516 = load i32, ptr %103, align 4, !tbaa !19
  %517 = load i32, ptr %85, align 4, !tbaa !19
  %518 = and i32 %516, %517
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %560

520:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %521 = load ptr, ptr %55, align 8, !tbaa !5
  %522 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %521, ptr noundef %77, i32 noundef 3, ptr noundef %103, i64 noundef 4)
  store i32 %522, ptr %108, align 4, !tbaa !17
  %523 = load i32, ptr %108, align 4, !tbaa !17
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %527

525:                                              ; preds = %520
  %526 = load i32, ptr %108, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 303, i32 noundef %526, ptr noundef null) #11
  unreachable

527:                                              ; preds = %520
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  %528 = load ptr, ptr %24, align 8, !tbaa !5
  %529 = load ptr, ptr %48, align 8, !tbaa !5
  %530 = load ptr, ptr %30, align 8, !tbaa !5
  %531 = load ptr, ptr %31, align 8, !tbaa !5
  %532 = load ptr, ptr %49, align 8, !tbaa !5
  %533 = load ptr, ptr %33, align 8, !tbaa !5
  %534 = load ptr, ptr %50, align 8, !tbaa !5
  %535 = load ptr, ptr %35, align 8, !tbaa !5
  %536 = load ptr, ptr %36, align 8, !tbaa !5
  %537 = load ptr, ptr %51, align 8, !tbaa !5
  %538 = load ptr, ptr %36, align 8, !tbaa !5
  %539 = load ptr, ptr %51, align 8, !tbaa !5
  %540 = load ptr, ptr %38, align 8, !tbaa !5
  %541 = load i64, ptr %39, align 8, !tbaa !11
  %542 = load ptr, ptr %45, align 8, !tbaa !5
  %543 = load i32, ptr %57, align 4, !tbaa !19
  %544 = sext i32 %543 to i64
  %545 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef %544) #10
  %546 = load ptr, ptr %46, align 8, !tbaa !5
  %547 = call noundef i32 @_ZL15customMatmulRunP15cublasLtContextPN8nvinfer114pluginInternal24cublasLtMatmulDescOpaqueEPKvS6_PNS2_26cublasLtMatrixLayoutOpaqueES6_S8_S6_S6_S8_PvS8_RKNS2_18cublasLtMatmulAlgoES9_mRNS1_6plugin4bert23customMatMultPerfType_tEP11CUstream_stRP10CUevent_stSL_(ptr noundef %528, ptr noundef %529, ptr noundef %530, ptr noundef %531, ptr noundef %532, ptr noundef %533, ptr noundef %534, ptr noundef %535, ptr noundef %536, ptr noundef %537, ptr noundef %538, ptr noundef %539, ptr noundef nonnull align 8 dereferenceable(64) %77, ptr noundef %540, i64 noundef %541, ptr noundef nonnull align 8 dereferenceable(96) %545, ptr noundef %546, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
  store i32 %547, ptr %47, align 4, !tbaa !17
  %548 = load i32, ptr %47, align 4, !tbaa !17
  %549 = load ptr, ptr %45, align 8, !tbaa !5
  %550 = load i32, ptr %57, align 4, !tbaa !19
  %551 = sext i32 %550 to i64
  %552 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %549, i64 noundef %551) #10
  %553 = getelementptr inbounds %"struct.nvinfer1::plugin::bert::customMatMultPerfType_t", ptr %552, i32 0, i32 1
  store i32 %548, ptr %553, align 8, !tbaa !23
  %554 = load i32, ptr %47, align 4, !tbaa !17
  %555 = icmp eq i32 %554, 0
  br i1 %555, label %556, label %559

556:                                              ; preds = %527
  %557 = load i32, ptr %57, align 4, !tbaa !19
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %57, align 4, !tbaa !19
  br label %559

559:                                              ; preds = %556, %527
  br label %560

560:                                              ; preds = %559, %515
  br label %561

561:                                              ; preds = %560
  %562 = load i32, ptr %103, align 4, !tbaa !19
  %563 = shl i32 %562, 1
  store i32 %563, ptr %103, align 4, !tbaa !19
  br label %507, !llvm.loop !29

564:                                              ; preds = %513
  br label %602

565:                                              ; preds = %487
  %566 = load i32, ptr %57, align 4, !tbaa !19
  %567 = icmp slt i32 %566, 6000
  br i1 %567, label %568, label %601

568:                                              ; preds = %565
  %569 = load ptr, ptr %24, align 8, !tbaa !5
  %570 = load ptr, ptr %48, align 8, !tbaa !5
  %571 = load ptr, ptr %30, align 8, !tbaa !5
  %572 = load ptr, ptr %31, align 8, !tbaa !5
  %573 = load ptr, ptr %49, align 8, !tbaa !5
  %574 = load ptr, ptr %33, align 8, !tbaa !5
  %575 = load ptr, ptr %50, align 8, !tbaa !5
  %576 = load ptr, ptr %35, align 8, !tbaa !5
  %577 = load ptr, ptr %36, align 8, !tbaa !5
  %578 = load ptr, ptr %51, align 8, !tbaa !5
  %579 = load ptr, ptr %36, align 8, !tbaa !5
  %580 = load ptr, ptr %51, align 8, !tbaa !5
  %581 = load ptr, ptr %38, align 8, !tbaa !5
  %582 = load i64, ptr %39, align 8, !tbaa !11
  %583 = load ptr, ptr %45, align 8, !tbaa !5
  %584 = load i32, ptr %57, align 4, !tbaa !19
  %585 = sext i32 %584 to i64
  %586 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %583, i64 noundef %585) #10
  %587 = load ptr, ptr %46, align 8, !tbaa !5
  %588 = call noundef i32 @_ZL15customMatmulRunP15cublasLtContextPN8nvinfer114pluginInternal24cublasLtMatmulDescOpaqueEPKvS6_PNS2_26cublasLtMatrixLayoutOpaqueES6_S8_S6_S6_S8_PvS8_RKNS2_18cublasLtMatmulAlgoES9_mRNS1_6plugin4bert23customMatMultPerfType_tEP11CUstream_stRP10CUevent_stSL_(ptr noundef %569, ptr noundef %570, ptr noundef %571, ptr noundef %572, ptr noundef %573, ptr noundef %574, ptr noundef %575, ptr noundef %576, ptr noundef %577, ptr noundef %578, ptr noundef %579, ptr noundef %580, ptr noundef nonnull align 8 dereferenceable(64) %77, ptr noundef %581, i64 noundef %582, ptr noundef nonnull align 8 dereferenceable(96) %586, ptr noundef %587, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
  store i32 %588, ptr %47, align 4, !tbaa !17
  %589 = load i32, ptr %47, align 4, !tbaa !17
  %590 = load ptr, ptr %45, align 8, !tbaa !5
  %591 = load i32, ptr %57, align 4, !tbaa !19
  %592 = sext i32 %591 to i64
  %593 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %590, i64 noundef %592) #10
  %594 = getelementptr inbounds %"struct.nvinfer1::plugin::bert::customMatMultPerfType_t", ptr %593, i32 0, i32 1
  store i32 %589, ptr %594, align 8, !tbaa !23
  %595 = load i32, ptr %47, align 4, !tbaa !17
  %596 = icmp eq i32 %595, 0
  br i1 %596, label %597, label %600

597:                                              ; preds = %568
  %598 = load i32, ptr %57, align 4, !tbaa !19
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr %57, align 4, !tbaa !19
  br label %600

600:                                              ; preds = %597, %568
  br label %601

601:                                              ; preds = %600, %565
  br label %602

602:                                              ; preds = %601, %564
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %603

603:                                              ; preds = %602
  %604 = load i32, ptr %100, align 4, !tbaa !19
  %605 = add nsw i32 %604, 1
  store i32 %605, ptr %100, align 4, !tbaa !19
  br label %444, !llvm.loop !31

606:                                              ; preds = %454
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %607

607:                                              ; preds = %606
  %608 = load i32, ptr %98, align 4, !tbaa !19
  %609 = add nsw i32 %608, 1
  store i32 %609, ptr %98, align 4, !tbaa !19
  br label %430, !llvm.loop !32

610:                                              ; preds = %434
  br label %611

611:                                              ; preds = %610
  %612 = load i32, ptr %96, align 4, !tbaa !19
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr %96, align 4, !tbaa !19
  br label %417, !llvm.loop !33

614:                                              ; preds = %421
  br label %615

615:                                              ; preds = %614
  %616 = load i32, ptr %95, align 4, !tbaa !19
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr %95, align 4, !tbaa !19
  br label %411, !llvm.loop !34

618:                                              ; preds = %415
  %619 = load ptr, ptr %83, align 8, !tbaa !5
  %620 = icmp eq ptr %619, null
  br i1 %620, label %622, label %621

621:                                              ; preds = %618
  call void @_ZdaPv(ptr noundef %619) #13
  br label %622

622:                                              ; preds = %621, %618
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  store i32 0, ptr %76, align 4
  br label %623

623:                                              ; preds = %622, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %624

624:                                              ; preds = %623, %320
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %77) #10
  %625 = load i32, ptr %76, align 4
  switch i32 %625, label %730 [
    i32 0, label %626
    i32 4, label %627
  ]

626:                                              ; preds = %624
  br label %627

627:                                              ; preds = %626, %624
  %628 = load i32, ptr %75, align 4, !tbaa !19
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr %75, align 4, !tbaa !19
  br label %294, !llvm.loop !35

630:                                              ; preds = %303
  %631 = load ptr, ptr %45, align 8, !tbaa !5
  %632 = call ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %631) #10
  %633 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %109, i32 0, i32 0
  store ptr %632, ptr %633, align 8
  %634 = load ptr, ptr %45, align 8, !tbaa !5
  %635 = call ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #10
  %636 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %110, i32 0, i32 0
  store ptr %635, ptr %636, align 8
  %637 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %109, i32 0, i32 0
  %638 = load ptr, ptr %637, align 8
  %639 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %110, i32 0, i32 0
  %640 = load ptr, ptr %639, align 8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN8nvinfer16plugin4bert23customMatMultPerfType_tESt6vectorIS5_SaIS5_EEEEPFbRKS5_SC_EEvT_SF_T0_(ptr %638, ptr %640, ptr noundef @_ZL11timeCompareRKN8nvinfer16plugin4bert23customMatMultPerfType_tES4_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  store i32 0, ptr %111, align 4, !tbaa !19
  br label %641

641:                                              ; preds = %665, %630
  %642 = load i32, ptr %111, align 4, !tbaa !19
  %643 = icmp slt i32 %642, 1
  br i1 %643, label %645, label %644

644:                                              ; preds = %641
  store i32 20, ptr %76, align 4
  br label %668

645:                                              ; preds = %641
  %646 = load ptr, ptr %45, align 8, !tbaa !5
  %647 = load i32, ptr %111, align 4, !tbaa !19
  %648 = sext i32 %647 to i64
  %649 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %646, i64 noundef %648) #10
  %650 = getelementptr inbounds %"struct.nvinfer1::plugin::bert::customMatMultPerfType_t", ptr %649, i32 0, i32 2
  %651 = load float, ptr %650, align 4, !tbaa !36
  %652 = fcmp oeq float %651, 1.000000e+06
  br i1 %652, label %653, label %654

653:                                              ; preds = %645
  store i32 20, ptr %76, align 4
  br label %668

654:                                              ; preds = %645
  %655 = load ptr, ptr %45, align 8, !tbaa !5
  %656 = load i32, ptr %111, align 4, !tbaa !19
  %657 = sext i32 %656 to i64
  %658 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %655, i64 noundef %657) #10
  %659 = load ptr, ptr %27, align 8, !tbaa !5
  %660 = load i32, ptr %659, align 4, !tbaa !19
  %661 = load ptr, ptr %28, align 8, !tbaa !5
  %662 = load i32, ptr %661, align 4, !tbaa !19
  %663 = load ptr, ptr %29, align 8, !tbaa !5
  %664 = load i32, ptr %663, align 4, !tbaa !19
  call void @_ZL18printPerfStructureRKN8nvinfer16plugin4bert23customMatMultPerfType_tEiii(ptr noundef nonnull align 8 dereferenceable(96) %658, i32 noundef %660, i32 noundef %662, i32 noundef %664)
  br label %665

665:                                              ; preds = %654
  %666 = load i32, ptr %111, align 4, !tbaa !19
  %667 = add nsw i32 %666, 1
  store i32 %667, ptr %111, align 4, !tbaa !19
  br label %641, !llvm.loop !37

668:                                              ; preds = %653, %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %669

669:                                              ; preds = %668
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %670 = load ptr, ptr %55, align 8, !tbaa !5
  %671 = load ptr, ptr %52, align 8, !tbaa !5
  %672 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper31cublasLtMatmulPreferenceDestroyEPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %670, ptr noundef %671)
  store i32 %672, ptr %112, align 4, !tbaa !17
  %673 = load i32, ptr %112, align 4, !tbaa !17
  %674 = icmp ne i32 %673, 0
  br i1 %674, label %675, label %677

675:                                              ; preds = %669
  %676 = load i32, ptr %112, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 354, i32 noundef %676, ptr noundef null) #11
  unreachable

677:                                              ; preds = %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #10
  %678 = load ptr, ptr %55, align 8, !tbaa !5
  %679 = load ptr, ptr %51, align 8, !tbaa !5
  %680 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %678, ptr noundef %679)
  store i32 %680, ptr %113, align 4, !tbaa !17
  %681 = load i32, ptr %113, align 4, !tbaa !17
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %683, label %685

683:                                              ; preds = %677
  %684 = load i32, ptr %113, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 355, i32 noundef %684, ptr noundef null) #11
  unreachable

685:                                              ; preds = %677
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %686 = load ptr, ptr %55, align 8, !tbaa !5
  %687 = load ptr, ptr %50, align 8, !tbaa !5
  %688 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %686, ptr noundef %687)
  store i32 %688, ptr %114, align 4, !tbaa !17
  %689 = load i32, ptr %114, align 4, !tbaa !17
  %690 = icmp ne i32 %689, 0
  br i1 %690, label %691, label %693

691:                                              ; preds = %685
  %692 = load i32, ptr %114, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 356, i32 noundef %692, ptr noundef null) #11
  unreachable

693:                                              ; preds = %685
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %694 = load ptr, ptr %55, align 8, !tbaa !5
  %695 = load ptr, ptr %49, align 8, !tbaa !5
  %696 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %694, ptr noundef %695)
  store i32 %696, ptr %115, align 4, !tbaa !17
  %697 = load i32, ptr %115, align 4, !tbaa !17
  %698 = icmp ne i32 %697, 0
  br i1 %698, label %699, label %701

699:                                              ; preds = %693
  %700 = load i32, ptr %115, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 357, i32 noundef %700, ptr noundef null) #11
  unreachable

701:                                              ; preds = %693
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %702 = load ptr, ptr %55, align 8, !tbaa !5
  %703 = load ptr, ptr %48, align 8, !tbaa !5
  %704 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper25cublasLtMatmulDescDestroyEPNS0_24cublasLtMatmulDescOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %702, ptr noundef %703)
  store i32 %704, ptr %116, align 4, !tbaa !17
  %705 = load i32, ptr %116, align 4, !tbaa !17
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %709

707:                                              ; preds = %701
  %708 = load i32, ptr %116, align 4, !tbaa !17
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 358, i32 noundef %708, ptr noundef null) #11
  unreachable

709:                                              ; preds = %701
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %710 = load ptr, ptr %53, align 8, !tbaa !5
  %711 = call i32 @cudaEventDestroy(ptr noundef %710)
  store i32 %711, ptr %117, align 4, !tbaa !21
  %712 = load i32, ptr %117, align 4, !tbaa !21
  %713 = icmp ne i32 %712, 0
  br i1 %713, label %714, label %719

714:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %715 = load i32, ptr %117, align 4, !tbaa !21
  %716 = call ptr @cudaGetErrorString(i32 noundef %715)
  store ptr %716, ptr %118, align 8, !tbaa !5
  %717 = load i32, ptr %117, align 4, !tbaa !21
  %718 = load ptr, ptr %118, align 8, !tbaa !5
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 359, i32 noundef %717, ptr noundef %718) #11
  unreachable

719:                                              ; preds = %709
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %720 = load ptr, ptr %54, align 8, !tbaa !5
  %721 = call i32 @cudaEventDestroy(ptr noundef %720)
  store i32 %721, ptr %119, align 4, !tbaa !21
  %722 = load i32, ptr %119, align 4, !tbaa !21
  %723 = icmp ne i32 %722, 0
  br i1 %723, label %724, label %729

724:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  %725 = load i32, ptr %119, align 4, !tbaa !21
  %726 = call ptr @cudaGetErrorString(i32 noundef %725)
  store ptr %726, ptr %120, align 8, !tbaa !5
  %727 = load i32, ptr %119, align 4, !tbaa !21
  %728 = load ptr, ptr %120, align 8, !tbaa !5
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef @.str, ptr noundef @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 360, i32 noundef %727, ptr noundef %728) #11
  unreachable

729:                                              ; preds = %719
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  ret void

730:                                              ; preds = %624
  unreachable
}

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

declare noundef nonnull align 8 dereferenceable(160) ptr @_ZN8nvinfer114pluginInternal18getCublasLtWrapperEv() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulPreferenceCreateEPPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) #2

; Function Attrs: noreturn
declare void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #4

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

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulPreferenceSetAttributeEPNS0_30cublasLtMatmulPreferenceOpaqueENS0_34cublasLtMatmulPreferenceAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulDescCreateEPPNS0_24cublasLtMatmulDescOpaqueENS0_17cublasComputeTypeE14cudaDataType_t(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i32 noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulDescSetAttributeEPNS0_24cublasLtMatmulDescOpaqueENS0_28cublasLtMatmulDescAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i64 noundef, i64 noundef, i64 noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulAlgoGetIdsEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPiS6_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_i(ptr noundef nonnull align 8 dereferenceable(152), i32 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EA16_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 1 dereferenceable(16)) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZL15cudaEventCreatePP10CUevent_stj(ptr noundef, i32 noundef) #5

declare ptr @cudaGetErrorString(i32 noundef) #2

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

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper22cublasLtMatmulAlgoInitEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPNS0_18cublasLtMatmulAlgoE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #7

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL15customMatmulRunP15cublasLtContextPN8nvinfer114pluginInternal24cublasLtMatmulDescOpaqueEPKvS6_PNS2_26cublasLtMatrixLayoutOpaqueES6_S8_S6_S6_S8_PvS8_RKNS2_18cublasLtMatmulAlgoES9_mRNS1_6plugin4bert23customMatMultPerfType_tEP11CUstream_stRP10CUevent_stSL_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #0

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN8nvinfer16plugin4bert23customMatMultPerfType_tESt6vectorIS5_SaIS5_EEEEPFbRKS5_SC_EEvT_SF_T0_(ptr, ptr, ptr noundef) #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL11timeCompareRKN8nvinfer16plugin4bert23customMatMultPerfType_tES4_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) #8

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL18printPerfStructureRKN8nvinfer16plugin4bert23customMatMultPerfType_tEiii(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, i32 noundef, i32 noundef) #0

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper31cublasLtMatmulPreferenceDestroyEPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper25cublasLtMatmulDescDestroyEPNS0_24cublasLtMatmulDescOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) #2

declare i32 @cudaEventDestroy(ptr noundef) #2

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nobuiltin allocsize(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 = { 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 #9 = { nobuiltin nounwind "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 #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin 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 = !{!"_ZTSN8nvinfer114pluginInternal15cublasOperationE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTSN8nvinfer114pluginInternal17cublasComputeTypeE", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTS14cudaDataType_t", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTSN8nvinfer114pluginInternal12CublasStatusE", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"_ZTS9cudaError", !7, i64 0}
!23 = !{!24, !18, i64 64}
!24 = !{!"_ZTSN8nvinfer16plugin4bert23customMatMultPerfType_tE", !25, i64 0, !18, i64 64, !26, i64 68, !12, i64 72, !27, i64 80, !28, i64 84, !20, i64 88, !26, i64 92}
!25 = !{!"_ZTSN8nvinfer114pluginInternal18cublasLtMatmulAlgoE", !7, i64 0}
!26 = !{!"float", !7, i64 0}
!27 = !{!"_ZTSN8nvinfer114pluginInternal10CublasMathE", !7, i64 0}
!28 = !{!"_ZTSN8nvinfer114pluginInternal23cublasLtReductionSchemeE", !7, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = distinct !{!32, !30}
!33 = distinct !{!33, !30}
!34 = distinct !{!34, !30}
!35 = distinct !{!35, !30}
!36 = !{!24, !26, i64 68}
!37 = distinct !{!37, !30}


; 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.nvinfer1::plugin::LogStream" = type { %"class.std::basic_ostream.base", %"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kVERBOSE>::Buf", %"class.std::mutex", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.nvinfer1::plugin::LogStream<nvinfer1::ILogger::Severity::kVERBOSE>::Buf" = type { %"class.std::__cxx11::basic_stringbuf" }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.nvinfer1::pluginInternal::cublasLtMatmulAlgo" = type { [8 x i64] }

@__const._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st.splitKSequenceA = external hidden unnamed_addr constant [9 x i32], align 16
@.str = external hidden unnamed_addr constant [78 x i8], align 1
@__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st = external hidden unnamed_addr constant [13 x i8], align 1
@_ZN8nvinfer16plugin11gLogVerboseE = external global %"class.nvinfer1::plugin::LogStream", align 8
@.str.3 = external hidden unnamed_addr constant [16 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st(ptr noundef %0, i32 noundef %1, i32 noundef %2, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %3, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %4, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %5, ptr noundef %6, ptr noundef %7, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %8, ptr noundef %9, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %10, ptr noundef %11, ptr noundef %12, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %13, ptr noundef %14, i64 noundef %15, i32 noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, i32 noundef %20, ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef %22) local_unnamed_addr #0 {
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i64, 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 ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca [9 x i32], align 16
  %35 = alloca i32, align 4
  %36 = alloca [40 x i32], align 16
  %37 = alloca i64, align 8
  %38 = alloca %"struct.nvinfer1::pluginInternal::cublasLtMatmulAlgo", align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  store i32 %1, ptr %24, align 4, !tbaa !5
  store i32 %2, ptr %25, align 4, !tbaa !5
  store i64 %15, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #10
  store ptr null, ptr %27, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  store ptr null, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  store ptr null, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #10
  store ptr null, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  store ptr null, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #10
  store ptr null, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #10
  store ptr null, ptr %33, align 8, !tbaa !11
  %50 = tail call noundef nonnull align 8 dereferenceable(160) ptr @_ZN8nvinfer114pluginInternal18getCublasLtWrapperEv()
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %34) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(36) %34, ptr noundef nonnull align 16 dereferenceable(36) @__const._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st.splitKSequenceA, i64 36, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #10
  store i32 0, ptr %35, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %36) #10
  %51 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulPreferenceCreateEPPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %31)
  %.not = icmp eq i32 %51, 0
  br i1 %.not, label %53, label %52

52:                                               ; preds = %23
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 167, i32 noundef %51, ptr noundef null) #11
  unreachable

53:                                               ; preds = %23
  %54 = load ptr, ptr %31, align 8, !tbaa !11
  %55 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulPreferenceSetAttributeEPNS0_30cublasLtMatmulPreferenceOpaqueENS0_34cublasLtMatmulPreferenceAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %54, i32 noundef 1, ptr noundef nonnull %26, i64 noundef 8)
  %.not254 = icmp eq i32 %55, 0
  br i1 %.not254, label %57, label %56

56:                                               ; preds = %53
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 169, i32 noundef %55, ptr noundef null) #11
  unreachable

57:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #10
  %58 = icmp eq i32 %20, 2
  %59 = select i1 %58, i64 2, i64 1
  store i64 %59, ptr %37, align 8, !tbaa !9
  %60 = load ptr, ptr %31, align 8, !tbaa !11
  %61 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulPreferenceSetAttributeEPNS0_30cublasLtMatmulPreferenceOpaqueENS0_34cublasLtMatmulPreferenceAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %60, i32 noundef 12, ptr noundef nonnull %37, i64 noundef 8)
  %.not255 = icmp eq i32 %61, 0
  br i1 %.not255, label %63, label %62

62:                                               ; preds = %57
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 174, i32 noundef %61, ptr noundef null) #11
  unreachable

63:                                               ; preds = %57
  %64 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulDescCreateEPPNS0_24cublasLtMatmulDescOpaqueENS0_17cublasComputeTypeE14cudaDataType_t(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %27, i32 noundef %16, i32 noundef %17)
  %.not256 = icmp eq i32 %64, 0
  br i1 %.not256, label %66, label %65

65:                                               ; preds = %63
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 178, i32 noundef %64, ptr noundef null) #11
  unreachable

66:                                               ; preds = %63
  %67 = load ptr, ptr %27, align 8, !tbaa !11
  %68 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulDescSetAttributeEPNS0_24cublasLtMatmulDescOpaqueENS0_28cublasLtMatmulDescAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %67, i32 noundef 3, ptr noundef nonnull %24, i64 noundef 4)
  %.not257 = icmp eq i32 %68, 0
  br i1 %.not257, label %70, label %69

69:                                               ; preds = %66
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 180, i32 noundef %68, ptr noundef null) #11
  unreachable

70:                                               ; preds = %66
  %71 = load ptr, ptr %27, align 8, !tbaa !11
  %72 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulDescSetAttributeEPNS0_24cublasLtMatmulDescOpaqueENS0_28cublasLtMatmulDescAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %71, i32 noundef 4, ptr noundef nonnull %25, i64 noundef 4)
  %.not258 = icmp eq i32 %72, 0
  br i1 %.not258, label %74, label %73

73:                                               ; preds = %70
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 182, i32 noundef %72, ptr noundef null) #11
  unreachable

74:                                               ; preds = %70
  %75 = load i32, ptr %24, align 4, !tbaa !5
  %76 = icmp eq i32 %75, 0
  %.val = load i32, ptr %3, align 4
  %.val301 = load i32, ptr %5, align 4
  %77 = select i1 %76, i32 %.val, i32 %.val301
  %78 = sext i32 %77 to i64
  %79 = select i1 %76, i32 %.val301, i32 %.val
  %80 = sext i32 %79 to i64
  %81 = load i32, ptr %8, align 4, !tbaa !13
  %82 = sext i32 %81 to i64
  %83 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %28, i32 noundef %18, i64 noundef %78, i64 noundef %80, i64 noundef %82)
  %.not260 = icmp eq i32 %83, 0
  br i1 %.not260, label %85, label %84

84:                                               ; preds = %74
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 187, i32 noundef %83, ptr noundef null) #11
  unreachable

85:                                               ; preds = %74
  %86 = load i32, ptr %25, align 4, !tbaa !5
  %87 = icmp eq i32 %86, 0
  %.val304 = load i32, ptr %5, align 4
  %.val305 = load i32, ptr %4, align 4
  %88 = select i1 %87, i32 %.val304, i32 %.val305
  %89 = sext i32 %88 to i64
  %90 = select i1 %87, i32 %.val305, i32 %.val304
  %91 = sext i32 %90 to i64
  %92 = load i32, ptr %10, align 4, !tbaa !13
  %93 = sext i32 %92 to i64
  %94 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %29, i32 noundef %19, i64 noundef %89, i64 noundef %91, i64 noundef %93)
  %.not263 = icmp eq i32 %94, 0
  br i1 %.not263, label %96, label %95

95:                                               ; preds = %85
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 189, i32 noundef %94, ptr noundef null) #11
  unreachable

96:                                               ; preds = %85
  %97 = load i32, ptr %3, align 4, !tbaa !13
  %98 = sext i32 %97 to i64
  %99 = load i32, ptr %4, align 4, !tbaa !13
  %100 = sext i32 %99 to i64
  %101 = load i32, ptr %13, align 4, !tbaa !13
  %102 = sext i32 %101 to i64
  %103 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %30, i32 noundef %20, i64 noundef %98, i64 noundef %100, i64 noundef %102)
  %.not264 = icmp eq i32 %103, 0
  br i1 %.not264, label %105, label %104

104:                                              ; preds = %96
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 190, i32 noundef %103, ptr noundef null) #11
  unreachable

105:                                              ; preds = %96
  %106 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulAlgoGetIdsEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPiS6_(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %0, i32 noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, i32 noundef %20, i32 noundef %20, i32 noundef 40, ptr noundef nonnull %36, ptr noundef nonnull %35)
  %.not265 = icmp eq i32 %106, 0
  br i1 %.not265, label %108, label %107

107:                                              ; preds = %105
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 195, i32 noundef %106, ptr noundef null) #11
  unreachable

108:                                              ; preds = %105
  %109 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EA16_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152) @_ZN8nvinfer16plugin11gLogVerboseE, ptr noundef nonnull align 1 dereferenceable(16) @.str.3)
  %110 = load i32, ptr %35, align 4, !tbaa !13
  %111 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_i(ptr noundef nonnull align 8 dereferenceable(152) %109, i32 noundef %110)
  %112 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152) %111, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %113 = call noundef i32 @_ZL15cudaEventCreatePP10CUevent_stj(ptr noundef nonnull %32, i32 noundef 1)
  %.not266 = icmp eq i32 %113, 0
  br i1 %.not266, label %116, label %114

114:                                              ; preds = %108
  %115 = call ptr @cudaGetErrorString(i32 noundef %113)
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 200, i32 noundef %113, ptr noundef %115) #11
  unreachable

116:                                              ; preds = %108
  %117 = call noundef i32 @_ZL15cudaEventCreatePP10CUevent_stj(ptr noundef nonnull %33, i32 noundef 1)
  %.not267 = icmp eq i32 %117, 0
  br i1 %.not267, label %.preheader309, label %121

.preheader309:                                    ; preds = %116
  %118 = load i32, ptr %35, align 4, !tbaa !13
  %119 = icmp sgt i32 %118, 0
  br i1 %119, label %.lr.ph481, label %.critedge

.lr.ph481:                                        ; preds = %.preheader309
  %120 = icmp eq i32 %20, 0
  br label %129

121:                                              ; preds = %116
  %122 = call ptr @cudaGetErrorString(i32 noundef %117)
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 201, i32 noundef %117, ptr noundef %122) #11
  unreachable

.critedge:                                        ; preds = %255, %.preheader309
  %123 = call ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  %124 = call ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN8nvinfer16plugin4bert23customMatMultPerfType_tESt6vectorIS5_SaIS5_EEEEPFbRKS5_SC_EEvT_SF_T0_(ptr %123, ptr %124, ptr noundef nonnull @_ZL11timeCompareRKN8nvinfer16plugin4bert23customMatMultPerfType_tES4_)
  %125 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef 0) #10
  %126 = getelementptr inbounds i8, ptr %125, i64 68
  %127 = load float, ptr %126, align 4, !tbaa !15
  %128 = fcmp oeq float %127, 1.000000e+06
  br i1 %128, label %266, label %261

129:                                              ; preds = %.lr.ph481, %255
  %indvars.iv612 = phi i64 [ 0, %.lr.ph481 ], [ %indvars.iv.next613, %255 ]
  %.0480 = phi i32 [ 0, %.lr.ph481 ], [ %.9, %255 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %38) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #10
  store i64 0, ptr %39, align 8, !tbaa !9
  %130 = getelementptr inbounds [40 x i32], ptr %36, i64 0, i64 %indvars.iv612
  %131 = load i32, ptr %130, align 4, !tbaa !13
  %132 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper22cublasLtMatmulAlgoInitEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPNS0_18cublasLtMatmulAlgoE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %0, i32 noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, i32 noundef %20, i32 noundef %20, i32 noundef %131, ptr noundef nonnull %38)
  %.not275 = icmp eq i32 %132, 0
  br i1 %.not275, label %133, label %255

133:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #10
  store i64 -1, ptr %40, align 8, !tbaa !9
  %134 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 15, ptr noundef nonnull %40, i64 noundef 8, ptr noundef null)
  %.not276 = icmp eq i32 %134, 0
  br i1 %.not276, label %136, label %135

135:                                              ; preds = %133
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 218, i32 noundef %134, ptr noundef null) #11
  unreachable

136:                                              ; preds = %133
  %137 = load i64, ptr %40, align 8
  %138 = icmp eq i64 %137, 2
  %or.cond = select i1 %120, i1 %138, i1 false
  br i1 %or.cond, label %254, label %139

139:                                              ; preds = %136
  %140 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 6, ptr noundef null, i64 noundef 0, ptr noundef nonnull %39)
  %.not277 = icmp eq i32 %140, 0
  br i1 %.not277, label %142, label %141

141:                                              ; preds = %139
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 227, i32 noundef %140, ptr noundef null) #11
  unreachable

142:                                              ; preds = %139
  %143 = load i64, ptr %39, align 8, !tbaa !9
  %144 = lshr i64 %143, 2
  %145 = trunc i64 %144 to i32
  %146 = icmp eq i32 %145, 0
  %147 = call i32 @llvm.umax.i32(i32 %145, i32 1)
  %148 = sext i32 %147 to i64
  %149 = icmp slt i32 %147, 0
  %150 = shl nsw i64 %148, 2
  %151 = select i1 %149, i64 -1, i64 %150
  %152 = call noalias noundef nonnull ptr @_Znam(i64 noundef %151) #12
  br i1 %146, label %153, label %154

153:                                              ; preds = %142
  store i32 0, ptr %152, align 4, !tbaa !13
  br label %154

154:                                              ; preds = %153, %142
  %.0213 = phi i32 [ 1, %153 ], [ %145, %142 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #10
  %155 = sext i32 %.0213 to i64
  %156 = shl nsw i64 %155, 2
  %157 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 6, ptr noundef nonnull %152, i64 noundef %156, ptr noundef nonnull %39)
  %.not278 = icmp eq i32 %157, 0
  br i1 %.not278, label %159, label %158

158:                                              ; preds = %154
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 244, i32 noundef %157, ptr noundef null) #11
  unreachable

159:                                              ; preds = %154
  %160 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 0, ptr noundef nonnull %41, i64 noundef 4, ptr noundef nonnull %39)
  %.not279 = icmp eq i32 %160, 0
  br i1 %.not279, label %162, label %161

161:                                              ; preds = %159
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 246, i32 noundef %160, ptr noundef null) #11
  unreachable

162:                                              ; preds = %159
  %163 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 1, ptr noundef nonnull %42, i64 noundef 4, ptr noundef nonnull %39)
  %.not280 = icmp eq i32 %163, 0
  br i1 %.not280, label %165, label %164

164:                                              ; preds = %162
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 248, i32 noundef %163, ptr noundef null) #11
  unreachable

165:                                              ; preds = %162
  %166 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %43, i64 noundef 4, ptr noundef nonnull %39)
  %.not281 = icmp eq i32 %166, 0
  br i1 %.not281, label %168, label %167

167:                                              ; preds = %165
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 250, i32 noundef %166, ptr noundef null) #11
  unreachable

168:                                              ; preds = %165
  %169 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 7, ptr noundef nonnull %44, i64 noundef 4, ptr noundef nonnull %39)
  %.not282 = icmp eq i32 %169, 0
  br i1 %.not282, label %171, label %170

170:                                              ; preds = %168
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 252, i32 noundef %169, ptr noundef null) #11
  unreachable

171:                                              ; preds = %168
  %172 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 12, ptr noundef nonnull %45, i64 noundef 4, ptr noundef nonnull %39)
  %.not283 = icmp eq i32 %172, 0
  br i1 %.not283, label %.preheader308, label %176

.preheader308:                                    ; preds = %171
  %173 = icmp sgt i32 %.0213, 0
  br i1 %173, label %.lr.ph476, label %._crit_edge477

.lr.ph476:                                        ; preds = %.preheader308
  %174 = load i32, ptr %44, align 4, !tbaa !13
  %175 = icmp slt i32 %174, 0
  br i1 %175, label %._crit_edge477, label %.lr.ph476.split.preheader

.lr.ph476.split.preheader:                        ; preds = %.lr.ph476
  %wide.trip.count = zext nneg i32 %.0213 to i64
  br label %.lr.ph476.split

176:                                              ; preds = %171
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 255, i32 noundef %172, ptr noundef null) #11
  unreachable

.lr.ph476.split:                                  ; preds = %.lr.ph476.split.preheader, %._crit_edge472
  %177 = phi i32 [ %174, %.lr.ph476.split.preheader ], [ %179, %._crit_edge472 ]
  %indvars.iv608 = phi i64 [ 0, %.lr.ph476.split.preheader ], [ %indvars.iv.next609, %._crit_edge472 ]
  %.1475 = phi i32 [ %.0480, %.lr.ph476.split.preheader ], [ %.2.lcssa, %._crit_edge472 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #10
  store i32 0, ptr %46, align 4, !tbaa !13
  %.not284468 = icmp slt i32 %177, 0
  br i1 %.not284468, label %._crit_edge472, label %.lr.ph471

.lr.ph471:                                        ; preds = %.lr.ph476.split
  %178 = getelementptr inbounds i32, ptr %152, i64 %indvars.iv608
  br label %180

._crit_edge472:                                   ; preds = %._crit_edge466, %.lr.ph476.split
  %179 = phi i32 [ %177, %.lr.ph476.split ], [ %187, %._crit_edge466 ]
  %.2.lcssa = phi i32 [ %.1475, %.lr.ph476.split ], [ %.3.lcssa, %._crit_edge466 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #10
  %indvars.iv.next609 = add nuw nsw i64 %indvars.iv608, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next609, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge477, label %.lr.ph476.split, !llvm.loop !22

180:                                              ; preds = %.lr.ph471, %._crit_edge466
  %.2469 = phi i32 [ %.1475, %.lr.ph471 ], [ %.3.lcssa, %._crit_edge466 ]
  %181 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 5, ptr noundef nonnull %46, i64 noundef 4)
  %.not285 = icmp eq i32 %181, 0
  br i1 %.not285, label %183, label %182

182:                                              ; preds = %180
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 264, i32 noundef %181, ptr noundef null) #11
  unreachable

183:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #10
  store i32 0, ptr %47, align 4, !tbaa !13
  %184 = load i32, ptr %43, align 4, !tbaa !13
  %.not287462 = icmp slt i32 %184, 0
  br i1 %.not287462, label %._crit_edge466, label %.lr.ph465

._crit_edge466:                                   ; preds = %._crit_edge, %183
  %.3.lcssa = phi i32 [ %.2469, %183 ], [ %.4.lcssa, %._crit_edge ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #10
  %185 = load i32, ptr %46, align 4, !tbaa !13
  %186 = add nsw i32 %185, 1
  store i32 %186, ptr %46, align 4, !tbaa !13
  %187 = load i32, ptr %44, align 4, !tbaa !13
  %.not284.not = icmp slt i32 %185, %187
  br i1 %.not284.not, label %180, label %._crit_edge472, !llvm.loop !25

.lr.ph465:                                        ; preds = %183, %._crit_edge
  %188 = phi i32 [ %192, %._crit_edge ], [ %184, %183 ]
  %189 = phi i32 [ %194, %._crit_edge ], [ 0, %183 ]
  %.3463 = phi i32 [ %.4.lcssa, %._crit_edge ], [ %.2469, %183 ]
  %190 = load i32, ptr %41, align 4, !tbaa !13
  %.not288 = icmp ne i32 %190, 0
  %191 = icmp slt i32 %.3463, 6000
  br i1 %191, label %.lr.ph460, label %._crit_edge

._crit_edge.loopexit:                             ; preds = %.loopexit
  %.pre615 = load i32, ptr %47, align 4, !tbaa !13
  %.pre616 = load i32, ptr %43, align 4, !tbaa !13
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph465
  %192 = phi i32 [ %188, %.lr.ph465 ], [ %.pre616, %._crit_edge.loopexit ]
  %193 = phi i32 [ %189, %.lr.ph465 ], [ %.pre615, %._crit_edge.loopexit ]
  %.4.lcssa = phi i32 [ %.3463, %.lr.ph465 ], [ %.7, %._crit_edge.loopexit ]
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr %47, align 4, !tbaa !13
  %.not287.not = icmp slt i32 %193, %192
  br i1 %.not287.not, label %.lr.ph465, label %._crit_edge466, !llvm.loop !26

.lr.ph460:                                        ; preds = %.lr.ph465, %.loopexit
  %indvars.iv = phi i64 [ %indvars.iv.next, %.loopexit ], [ 0, %.lr.ph465 ]
  %.4459 = phi i32 [ %.7, %.loopexit ], [ %.3463, %.lr.ph465 ]
  %195 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 1, ptr noundef nonnull %178, i64 noundef 4)
  %.not289 = icmp eq i32 %195, 0
  br i1 %.not289, label %197, label %196

196:                                              ; preds = %.lr.ph460
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 279, i32 noundef %195, ptr noundef null) #11
  unreachable

197:                                              ; preds = %.lr.ph460
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #10
  store i32 0, ptr %48, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #10
  store i32 0, ptr %49, align 4, !tbaa !13
  %198 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %48, i64 noundef 4)
  %.not290 = icmp eq i32 %198, 0
  br i1 %.not290, label %200, label %199

199:                                              ; preds = %197
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 283, i32 noundef %198, ptr noundef null) #11
  unreachable

200:                                              ; preds = %197
  %201 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 4, ptr noundef nonnull %47, i64 noundef 4)
  %.not291 = icmp eq i32 %201, 0
  br i1 %.not291, label %203, label %202

202:                                              ; preds = %200
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 285, i32 noundef %201, ptr noundef null) #11
  unreachable

203:                                              ; preds = %200
  %204 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 3, ptr noundef nonnull %49, i64 noundef 4)
  %.not292 = icmp eq i32 %204, 0
  br i1 %.not292, label %206, label %205

205:                                              ; preds = %203
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 287, i32 noundef %204, ptr noundef null) #11
  unreachable

206:                                              ; preds = %203
  %.not293 = icmp eq i64 %indvars.iv, 0
  br i1 %.not293, label %237, label %207

207:                                              ; preds = %206
  %208 = add nsw i64 %indvars.iv, -1
  %209 = getelementptr inbounds [9 x i32], ptr %34, i64 0, i64 %208
  %210 = load i32, ptr %209, align 4, !tbaa !13
  store i32 %210, ptr %48, align 4, !tbaa !13
  %211 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 2, ptr noundef nonnull %209, i64 noundef 4)
  %.not294 = icmp eq i32 %211, 0
  br i1 %.not294, label %.lr.ph.preheader, label %212

.lr.ph.preheader:                                 ; preds = %207
  store i32 1, ptr %49, align 4, !tbaa !13
  br label %.lr.ph

212:                                              ; preds = %207
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 294, i32 noundef %211, ptr noundef null) #11
  unreachable

.lr.ph:                                           ; preds = %.lr.ph.preheader, %231
  %.5457 = phi i32 [ %.6, %231 ], [ %.4459, %.lr.ph.preheader ]
  %storemerge295456 = phi i32 [ %233, %231 ], [ 1, %.lr.ph.preheader ]
  %213 = load i32, ptr %42, align 4, !tbaa !13
  %214 = and i32 %213, %storemerge295456
  %.not296 = icmp eq i32 %214, 0
  br i1 %.not296, label %231, label %215

215:                                              ; preds = %.lr.ph
  %216 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef nonnull %38, i32 noundef 3, ptr noundef nonnull %49, i64 noundef 4)
  %.not297 = icmp eq i32 %216, 0
  br i1 %.not297, label %218, label %217

217:                                              ; preds = %215
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 303, i32 noundef %216, ptr noundef null) #11
  unreachable

218:                                              ; preds = %215
  %219 = load ptr, ptr %27, align 8, !tbaa !11
  %220 = load ptr, ptr %28, align 8, !tbaa !11
  %221 = load ptr, ptr %29, align 8, !tbaa !11
  %222 = load ptr, ptr %30, align 8, !tbaa !11
  %223 = load i64, ptr %26, align 8, !tbaa !9
  %224 = sext i32 %.5457 to i64
  %225 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %224) #10
  %226 = call noundef i32 @_ZL15customMatmulRunP15cublasLtContextPN8nvinfer114pluginInternal24cublasLtMatmulDescOpaqueEPKvS6_PNS2_26cublasLtMatrixLayoutOpaqueES6_S8_S6_S6_S8_PvS8_RKNS2_18cublasLtMatmulAlgoES9_mRNS1_6plugin4bert23customMatMultPerfType_tEP11CUstream_stRP10CUevent_stSL_(ptr noundef %0, ptr noundef %219, ptr noundef %6, ptr noundef %7, ptr noundef %220, ptr noundef %9, ptr noundef %221, ptr noundef %11, ptr noundef %12, ptr noundef %222, ptr noundef %12, ptr noundef %222, ptr noundef nonnull align 8 dereferenceable(64) %38, ptr noundef %14, i64 noundef %223, ptr noundef nonnull align 8 dereferenceable(96) %225, ptr noundef %22, ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33)
  %227 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %224) #10
  %228 = getelementptr inbounds i8, ptr %227, i64 64
  store i32 %226, ptr %228, align 8, !tbaa !27
  %229 = icmp eq i32 %226, 0
  %230 = zext i1 %229 to i32
  %spec.select299 = add nsw i32 %.5457, %230
  %.pre = load i32, ptr %49, align 4, !tbaa !13
  br label %231

231:                                              ; preds = %218, %.lr.ph
  %232 = phi i32 [ %storemerge295456, %.lr.ph ], [ %.pre, %218 ]
  %.6 = phi i32 [ %.5457, %.lr.ph ], [ %spec.select299, %218 ]
  %233 = shl i32 %232, 1
  store i32 %233, ptr %49, align 4, !tbaa !13
  %234 = icmp slt i32 %233, 7
  %235 = icmp slt i32 %.6, 6000
  %236 = select i1 %234, i1 %235, i1 false
  br i1 %236, label %.lr.ph, label %.loopexit, !llvm.loop !28

237:                                              ; preds = %206
  %238 = load ptr, ptr %27, align 8, !tbaa !11
  %239 = load ptr, ptr %28, align 8, !tbaa !11
  %240 = load ptr, ptr %29, align 8, !tbaa !11
  %241 = load ptr, ptr %30, align 8, !tbaa !11
  %242 = load i64, ptr %26, align 8, !tbaa !9
  %243 = sext i32 %.4459 to i64
  %244 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %243) #10
  %245 = call noundef i32 @_ZL15customMatmulRunP15cublasLtContextPN8nvinfer114pluginInternal24cublasLtMatmulDescOpaqueEPKvS6_PNS2_26cublasLtMatrixLayoutOpaqueES6_S8_S6_S6_S8_PvS8_RKNS2_18cublasLtMatmulAlgoES9_mRNS1_6plugin4bert23customMatMultPerfType_tEP11CUstream_stRP10CUevent_stSL_(ptr noundef %0, ptr noundef %238, ptr noundef %6, ptr noundef %7, ptr noundef %239, ptr noundef %9, ptr noundef %240, ptr noundef %11, ptr noundef %12, ptr noundef %241, ptr noundef %12, ptr noundef %241, ptr noundef nonnull align 8 dereferenceable(64) %38, ptr noundef %14, i64 noundef %242, ptr noundef nonnull align 8 dereferenceable(96) %244, ptr noundef %22, ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33)
  %246 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %243) #10
  %247 = getelementptr inbounds i8, ptr %246, i64 64
  store i32 %245, ptr %247, align 8, !tbaa !27
  %248 = icmp eq i32 %245, 0
  %249 = zext i1 %248 to i32
  %spec.select300 = add nsw i32 %.4459, %249
  br label %.loopexit

.loopexit:                                        ; preds = %231, %237
  %.7 = phi i32 [ %spec.select300, %237 ], [ %.6, %231 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #10
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %250 = icmp ult i64 %indvars.iv, 9
  %251 = select i1 %.not288, i1 %250, i1 false
  %252 = icmp slt i32 %.7, 6000
  %253 = select i1 %251, i1 %252, i1 false
  br i1 %253, label %.lr.ph460, label %._crit_edge.loopexit, !llvm.loop !29

._crit_edge477:                                   ; preds = %._crit_edge472, %.lr.ph476, %.preheader308
  %.1.lcssa = phi i32 [ %.0480, %.preheader308 ], [ %.0480, %.lr.ph476 ], [ %.2.lcssa, %._crit_edge472 ]
  call void @_ZdaPv(ptr noundef nonnull %152) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #10
  br label %254

254:                                              ; preds = %136, %._crit_edge477
  %.8 = phi i32 [ %.1.lcssa, %._crit_edge477 ], [ %.0480, %136 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  br label %255

255:                                              ; preds = %129, %254
  %.9 = phi i32 [ %.8, %254 ], [ %.0480, %129 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #10
  %indvars.iv.next613 = add nuw nsw i64 %indvars.iv612, 1
  %256 = load i32, ptr %35, align 4, !tbaa !13
  %257 = sext i32 %256 to i64
  %258 = icmp slt i64 %indvars.iv.next613, %257
  %259 = icmp slt i32 %.9, 6000
  %260 = select i1 %258, i1 %259, i1 false
  br i1 %260, label %129, label %.critedge, !llvm.loop !30

261:                                              ; preds = %.critedge
  %262 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorIN8nvinfer16plugin4bert23customMatMultPerfType_tESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef 0) #10
  %263 = load i32, ptr %3, align 4, !tbaa !13
  %264 = load i32, ptr %4, align 4, !tbaa !13
  %265 = load i32, ptr %5, align 4, !tbaa !13
  call void @_ZL18printPerfStructureRKN8nvinfer16plugin4bert23customMatMultPerfType_tEiii(ptr noundef nonnull align 8 dereferenceable(96) %262, i32 noundef %263, i32 noundef %264, i32 noundef %265)
  br label %266

266:                                              ; preds = %.critedge, %261
  %267 = load ptr, ptr %31, align 8, !tbaa !11
  %268 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper31cublasLtMatmulPreferenceDestroyEPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %267)
  %.not268 = icmp eq i32 %268, 0
  br i1 %.not268, label %270, label %269

269:                                              ; preds = %266
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 354, i32 noundef %268, ptr noundef null) #11
  unreachable

270:                                              ; preds = %266
  %271 = load ptr, ptr %30, align 8, !tbaa !11
  %272 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %271)
  %.not269 = icmp eq i32 %272, 0
  br i1 %.not269, label %274, label %273

273:                                              ; preds = %270
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 355, i32 noundef %272, ptr noundef null) #11
  unreachable

274:                                              ; preds = %270
  %275 = load ptr, ptr %29, align 8, !tbaa !11
  %276 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %275)
  %.not270 = icmp eq i32 %276, 0
  br i1 %.not270, label %278, label %277

277:                                              ; preds = %274
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 356, i32 noundef %276, ptr noundef null) #11
  unreachable

278:                                              ; preds = %274
  %279 = load ptr, ptr %28, align 8, !tbaa !11
  %280 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %279)
  %.not271 = icmp eq i32 %280, 0
  br i1 %.not271, label %282, label %281

281:                                              ; preds = %278
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 357, i32 noundef %280, ptr noundef null) #11
  unreachable

282:                                              ; preds = %278
  %283 = load ptr, ptr %27, align 8, !tbaa !11
  %284 = call noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper25cublasLtMatmulDescDestroyEPNS0_24cublasLtMatmulDescOpaqueE(ptr noundef nonnull align 8 dereferenceable(160) %50, ptr noundef %283)
  %.not272 = icmp eq i32 %284, 0
  br i1 %.not272, label %286, label %285

285:                                              ; preds = %282
  call void @_ZN8nvinfer16plugin16throwCublasErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 358, i32 noundef %284, ptr noundef null) #11
  unreachable

286:                                              ; preds = %282
  %287 = load ptr, ptr %32, align 8, !tbaa !11
  %288 = call i32 @cudaEventDestroy(ptr noundef %287)
  %.not273 = icmp eq i32 %288, 0
  br i1 %.not273, label %291, label %289

289:                                              ; preds = %286
  %290 = call ptr @cudaGetErrorString(i32 noundef %288)
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 359, i32 noundef %288, ptr noundef %290) #11
  unreachable

291:                                              ; preds = %286
  %292 = load ptr, ptr %33, align 8, !tbaa !11
  %293 = call i32 @cudaEventDestroy(ptr noundef %292)
  %.not274 = icmp eq i32 %293, 0
  br i1 %.not274, label %296, label %294

294:                                              ; preds = %291
  %295 = call ptr @cudaGetErrorString(i32 noundef %293)
  call void @_ZN8nvinfer16plugin14throwCudaErrorEPKcS2_iiS2_(ptr noundef nonnull @.str, ptr noundef nonnull @__func__._ZN8nvinfer16plugin4bert12LtGemmSearchEP15cublasLtContextNS_14pluginInternal15cublasOperationES5_RKiS7_S7_PKvS9_S7_S9_S7_S9_PvS7_SA_mNS4_17cublasComputeTypeE14cudaDataType_tSC_SC_SC_RSt6vectorINS1_23customMatMultPerfType_tESaISE_EEP11CUstream_st, i32 noundef 360, i32 noundef %293, ptr noundef %295) #11
  unreachable

296:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %36) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #10
  ret void
}

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

declare noundef nonnull align 8 dereferenceable(160) ptr @_ZN8nvinfer114pluginInternal18getCublasLtWrapperEv() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulPreferenceCreateEPPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) local_unnamed_addr #2

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

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

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulPreferenceSetAttributeEPNS0_30cublasLtMatmulPreferenceOpaqueENS0_34cublasLtMatmulPreferenceAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulDescCreateEPPNS0_24cublasLtMatmulDescOpaqueENS0_17cublasComputeTypeE14cudaDataType_t(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper30cublasLtMatmulDescSetAttributeEPNS0_24cublasLtMatmulDescOpaqueENS0_28cublasLtMatmulDescAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper26cublasLtMatrixLayoutCreateEPPNS0_26cublasLtMatrixLayoutOpaqueE14cudaDataType_tmml(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper24cublasLtMatmulAlgoGetIdsEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPiS6_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_PFRSoS7_E(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EEERNS0_9LogStreamIXT_EEES6_i(ptr noundef nonnull align 8 dereferenceable(152), i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN8nvinfer16pluginlsILNS_7ILogger8SeverityE4EA16_cEERNS0_9LogStreamIXT_EEES7_RKT0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 1 dereferenceable(16)) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZL15cudaEventCreatePP10CUevent_stj(ptr noundef, i32 noundef) local_unnamed_addr #5

declare ptr @cudaGetErrorString(i32 noundef) local_unnamed_addr #2

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

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper22cublasLtMatmulAlgoInitEP15cublasLtContextNS0_17cublasComputeTypeE14cudaDataType_tS5_S5_S5_S5_iPNS0_18cublasLtMatmulAlgoE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper33cublasLtMatmulAlgoCapGetAttributeEPKNS0_18cublasLtMatmulAlgoENS0_31cublasLtMatmulAlgoCapAttributesEPvmPm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #6

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper36cublasLtMatmulAlgoConfigSetAttributeEPNS0_18cublasLtMatmulAlgoENS0_34cublasLtMatmulAlgoConfigAttributesEPKvm(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, i32 noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL15customMatmulRunP15cublasLtContextPN8nvinfer114pluginInternal24cublasLtMatmulDescOpaqueEPKvS6_PNS2_26cublasLtMatrixLayoutOpaqueES6_S8_S6_S6_S8_PvS8_RKNS2_18cublasLtMatmulAlgoES9_mRNS1_6plugin4bert23customMatMultPerfType_tEP11CUstream_stRP10CUevent_stSL_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN8nvinfer16plugin4bert23customMatMultPerfType_tESt6vectorIS5_SaIS5_EEEEPFbRKS5_SC_EEvT_SF_T0_(ptr, ptr, ptr noundef) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL11timeCompareRKN8nvinfer16plugin4bert23customMatMultPerfType_tES4_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL18printPerfStructureRKN8nvinfer16plugin4bert23customMatMultPerfType_tEiii(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper31cublasLtMatmulPreferenceDestroyEPNS0_30cublasLtMatmulPreferenceOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper27cublasLtMatrixLayoutDestroyEPNS0_26cublasLtMatrixLayoutOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) local_unnamed_addr #2

declare noundef i32 @_ZN8nvinfer114pluginInternal15CublasLtWrapper25cublasLtMatmulDescDestroyEPNS0_24cublasLtMatmulDescOpaqueE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) local_unnamed_addr #2

declare i32 @cudaEventDestroy(ptr noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #9

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #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 = { nobuiltin allocsize(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 #7 = { 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 = { nobuiltin nounwind "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 #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin 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 = !{!"_ZTSN8nvinfer114pluginInternal15cublasOperationE", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !19, i64 68}
!16 = !{!"_ZTSN8nvinfer16plugin4bert23customMatMultPerfType_tE", !17, i64 0, !18, i64 64, !19, i64 68, !10, i64 72, !20, i64 80, !21, i64 84, !14, i64 88, !19, i64 92}
!17 = !{!"_ZTSN8nvinfer114pluginInternal18cublasLtMatmulAlgoE", !7, i64 0}
!18 = !{!"_ZTSN8nvinfer114pluginInternal12CublasStatusE", !7, i64 0}
!19 = !{!"float", !7, i64 0}
!20 = !{!"_ZTSN8nvinfer114pluginInternal10CublasMathE", !7, i64 0}
!21 = !{!"_ZTSN8nvinfer114pluginInternal23cublasLtReductionSchemeE", !7, i64 0}
!22 = distinct !{!22, !23, !24}
!23 = !{!"llvm.loop.mustprogress"}
!24 = !{!"llvm.loop.unswitch.partial.disable"}
!25 = distinct !{!25, !23}
!26 = distinct !{!26, !23}
!27 = !{!16, !18, i64 64}
!28 = distinct !{!28, !23}
!29 = distinct !{!29, !23}
!30 = distinct !{!30, !23}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass,TailCallElimPass