; LLVM IR from GPUOpen-LibrariesAndSDKs/TAN :: tan/tanlibrary/src/clFFT-master/src/library/generator.transpose/ZN25clfft_t_80cec06a (21bc9d12)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.FFTKernelGenKeyParams = type { i64, [16 x i64], [16 x i64], [16 x i64], i32, i32, i32, i32, double, double, i64, i64, i64, i64, i8, i8, i8, i64, i8, i8, i8, i32, i64, i64, i32, i64, i64, i32, i8, %struct.clfftCallbackParam_, i8, %struct.clfftCallbackParam_, i64 }
%struct.clfftCallbackParam_ = type { i32, ptr, ptr }

@.str.32 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [130 x i8], align 1
@__PRETTY_FUNCTION__._ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_ = external hidden unnamed_addr constant [245 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef) #0

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

; 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)) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_(ptr noundef nonnull align 8 dereferenceable(600) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(128) %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %7) #1 {
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  %18 = load ptr, ptr %15, align 8, !tbaa !5
  %19 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %18, i64 noundef 0)
  %20 = getelementptr inbounds i8, ptr %19, i64 16
  %21 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef @.str.32)
  %22 = load ptr, ptr %11, align 8, !tbaa !5
  %23 = load i64, ptr %22, align 8, !tbaa !9
  %24 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %21, i64 noundef %23)
  %25 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef @.str.33)
  %26 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %27 = load ptr, ptr %15, align 8, !tbaa !5
  %28 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %27, i64 noundef 0)
  %29 = getelementptr inbounds i8, ptr %28, i64 16
  %30 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef @.str.34)
  %31 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %32 = load ptr, ptr %15, align 8, !tbaa !5
  %33 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %32, i64 noundef 0)
  %34 = getelementptr inbounds i8, ptr %33, i64 16
  %35 = load ptr, ptr %14, align 8, !tbaa !5
  %36 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(32) %35)
  %37 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef @.str.35)
  %38 = load ptr, ptr %10, align 8, !tbaa !5
  %39 = getelementptr inbounds i8, ptr %38, i64 8
  %40 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %39, i32 0, i32 5
  %41 = load i32, ptr %40, align 4, !tbaa !11
  switch i32 %41, label %89 [
    i32 1, label %42
    i32 2, label %56
    i32 3, label %74
    i32 4, label %74
    i32 5, label %75
  ]

42:                                               ; preds = %8
  %43 = load ptr, ptr %13, align 8, !tbaa !5
  %44 = load ptr, ptr %16, align 8, !tbaa !5
  %45 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %43)
  %46 = load ptr, ptr %13, align 8, !tbaa !5
  %47 = load ptr, ptr %17, align 8, !tbaa !5
  %48 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %46)
  %49 = load ptr, ptr %15, align 8, !tbaa !5
  %50 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %49, i64 noundef 0)
  %51 = getelementptr inbounds i8, ptr %50, i64 16
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef @.str.36)
  %53 = load ptr, ptr %16, align 8, !tbaa !5
  %54 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(32) %53)
  %55 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef @.str.37)
  br label %90

56:                                               ; preds = %8
  %57 = load ptr, ptr %12, align 8, !tbaa !5
  %58 = load ptr, ptr %16, align 8, !tbaa !5
  %59 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %57)
  %60 = load ptr, ptr %12, align 8, !tbaa !5
  %61 = load ptr, ptr %17, align 8, !tbaa !5
  %62 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %60)
  %63 = load ptr, ptr %15, align 8, !tbaa !5
  %64 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %63, i64 noundef 0)
  %65 = getelementptr inbounds i8, ptr %64, i64 16
  %66 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef @.str.36)
  %67 = load ptr, ptr %16, align 8, !tbaa !5
  %68 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(32) %67)
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef @.str.38)
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef @.str.39)
  %71 = load ptr, ptr %16, align 8, !tbaa !5
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(32) %71)
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef @.str.40)
  br label %90

74:                                               ; preds = %8, %8
  store i32 4098, ptr %9, align 4
  br label %224

75:                                               ; preds = %8
  %76 = load ptr, ptr %12, align 8, !tbaa !5
  %77 = load ptr, ptr %16, align 8, !tbaa !5
  %78 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %76)
  %79 = load ptr, ptr %12, align 8, !tbaa !5
  %80 = load ptr, ptr %17, align 8, !tbaa !5
  %81 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %79)
  %82 = load ptr, ptr %15, align 8, !tbaa !5
  %83 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %82, i64 noundef 0)
  %84 = getelementptr inbounds i8, ptr %83, i64 16
  %85 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef @.str.36)
  %86 = load ptr, ptr %16, align 8, !tbaa !5
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(32) %86)
  %88 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef @.str.37)
  br label %90

89:                                               ; preds = %8
  store i32 4098, ptr %9, align 4
  br label %224

90:                                               ; preds = %75, %56, %42
  %91 = load ptr, ptr %10, align 8, !tbaa !5
  %92 = getelementptr inbounds i8, ptr %91, i64 8
  %93 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %92, i32 0, i32 4
  %94 = load i32, ptr %93, align 8, !tbaa !23
  %95 = icmp eq i32 %94, 2
  br i1 %95, label %96, label %150

96:                                               ; preds = %90
  %97 = load ptr, ptr %10, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %97, i64 8
  %99 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %98, i32 0, i32 6
  %100 = load i32, ptr %99, align 8, !tbaa !24
  switch i32 %100, label %148 [
    i32 1, label %101
    i32 2, label %115
    i32 3, label %133
    i32 4, label %133
    i32 5, label %134
  ]

101:                                              ; preds = %96
  %102 = load ptr, ptr %13, align 8, !tbaa !5
  %103 = load ptr, ptr %16, align 8, !tbaa !5
  %104 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %102)
  %105 = load ptr, ptr %13, align 8, !tbaa !5
  %106 = load ptr, ptr %17, align 8, !tbaa !5
  %107 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %105)
  %108 = load ptr, ptr %15, align 8, !tbaa !5
  %109 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %108, i64 noundef 0)
  %110 = getelementptr inbounds i8, ptr %109, i64 16
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef @.str.39)
  %112 = load ptr, ptr %17, align 8, !tbaa !5
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(32) %112)
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef @.str.41)
  br label %149

115:                                              ; preds = %96
  %116 = load ptr, ptr %12, align 8, !tbaa !5
  %117 = load ptr, ptr %16, align 8, !tbaa !5
  %118 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %116)
  %119 = load ptr, ptr %12, align 8, !tbaa !5
  %120 = load ptr, ptr %17, align 8, !tbaa !5
  %121 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %119)
  %122 = load ptr, ptr %15, align 8, !tbaa !5
  %123 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %122, i64 noundef 0)
  %124 = getelementptr inbounds i8, ptr %123, i64 16
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef @.str.39)
  %126 = load ptr, ptr %17, align 8, !tbaa !5
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull align 8 dereferenceable(32) %126)
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef @.str.42)
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef @.str.39)
  %130 = load ptr, ptr %17, align 8, !tbaa !5
  %131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(32) %130)
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef @.str.43)
  br label %149

133:                                              ; preds = %96, %96
  store i32 4098, ptr %9, align 4
  br label %224

134:                                              ; preds = %96
  %135 = load ptr, ptr %12, align 8, !tbaa !5
  %136 = load ptr, ptr %16, align 8, !tbaa !5
  %137 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %135)
  %138 = load ptr, ptr %12, align 8, !tbaa !5
  %139 = load ptr, ptr %17, align 8, !tbaa !5
  %140 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 8 dereferenceable(32) %138)
  %141 = load ptr, ptr %15, align 8, !tbaa !5
  %142 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %141, i64 noundef 0)
  %143 = getelementptr inbounds i8, ptr %142, i64 16
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef @.str.39)
  %145 = load ptr, ptr %17, align 8, !tbaa !5
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull align 8 dereferenceable(32) %145)
  %147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef @.str.41)
  br label %149

148:                                              ; preds = %96
  store i32 4098, ptr %9, align 4
  br label %224

149:                                              ; preds = %134, %115, %101
  br label %150

150:                                              ; preds = %149, %90
  %151 = load ptr, ptr %10, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %151, i64 8
  %153 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %152, i32 0, i32 28
  %154 = load i8, ptr %153, align 4, !tbaa !25, !range !26, !noundef !27
  %155 = trunc i8 %154 to i1
  br i1 %155, label %156, label %184

156:                                              ; preds = %150
  %157 = load ptr, ptr %10, align 8, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %157, i64 8
  %159 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %158, i32 0, i32 30
  %160 = load i8, ptr %159, align 8, !tbaa !28, !range !26, !noundef !27
  %161 = trunc i8 %160 to i1
  %162 = xor i1 %161, true
  br i1 %162, label %163, label %164

163:                                              ; preds = %156
  br label %166

164:                                              ; preds = %156
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.45, i32 noundef 224, ptr noundef @__PRETTY_FUNCTION__._ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_) #3
  unreachable

165:                                              ; No predecessors!
  br label %166

166:                                              ; preds = %165, %163
  %167 = load ptr, ptr %10, align 8, !tbaa !5
  %168 = getelementptr inbounds i8, ptr %167, i64 8
  %169 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %168, i32 0, i32 29
  %170 = getelementptr inbounds %struct.clfftCallbackParam_, ptr %169, i32 0, i32 0
  %171 = load i32, ptr %170, align 8, !tbaa !29
  %172 = icmp sgt i32 %171, 0
  br i1 %172, label %173, label %178

173:                                              ; preds = %166
  %174 = load ptr, ptr %15, align 8, !tbaa !5
  %175 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %174, i64 noundef 0)
  %176 = getelementptr inbounds i8, ptr %175, i64 16
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef @.str.46)
  br label %183

178:                                              ; preds = %166
  %179 = load ptr, ptr %15, align 8, !tbaa !5
  %180 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %179, i64 noundef 0)
  %181 = getelementptr inbounds i8, ptr %180, i64 16
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef @.str.47)
  br label %183

183:                                              ; preds = %178, %173
  br label %184

184:                                              ; preds = %183, %150
  %185 = load ptr, ptr %10, align 8, !tbaa !5
  %186 = getelementptr inbounds i8, ptr %185, i64 8
  %187 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %186, i32 0, i32 30
  %188 = load i8, ptr %187, align 8, !tbaa !28, !range !26, !noundef !27
  %189 = trunc i8 %188 to i1
  br i1 %189, label %190, label %218

190:                                              ; preds = %184
  %191 = load ptr, ptr %10, align 8, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %191, i64 8
  %193 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %192, i32 0, i32 28
  %194 = load i8, ptr %193, align 4, !tbaa !25, !range !26, !noundef !27
  %195 = trunc i8 %194 to i1
  %196 = xor i1 %195, true
  br i1 %196, label %197, label %198

197:                                              ; preds = %190
  br label %200

198:                                              ; preds = %190
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.45, i32 noundef 237, ptr noundef @__PRETTY_FUNCTION__._ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_) #3
  unreachable

199:                                              ; No predecessors!
  br label %200

200:                                              ; preds = %199, %197
  %201 = load ptr, ptr %10, align 8, !tbaa !5
  %202 = getelementptr inbounds i8, ptr %201, i64 8
  %203 = getelementptr inbounds %struct.FFTKernelGenKeyParams, ptr %202, i32 0, i32 31
  %204 = getelementptr inbounds %struct.clfftCallbackParam_, ptr %203, i32 0, i32 0
  %205 = load i32, ptr %204, align 8, !tbaa !30
  %206 = icmp sgt i32 %205, 0
  br i1 %206, label %207, label %212

207:                                              ; preds = %200
  %208 = load ptr, ptr %15, align 8, !tbaa !5
  %209 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %208, i64 noundef 0)
  %210 = getelementptr inbounds i8, ptr %209, i64 16
  %211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef @.str.49)
  br label %217

212:                                              ; preds = %200
  %213 = load ptr, ptr %15, align 8, !tbaa !5
  %214 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %213, i64 noundef 0)
  %215 = getelementptr inbounds i8, ptr %214, i64 16
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef @.str.50)
  br label %217

217:                                              ; preds = %212, %207
  br label %218

218:                                              ; preds = %217, %184
  %219 = load ptr, ptr %15, align 8, !tbaa !5
  %220 = call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %219, i64 noundef 0)
  %221 = getelementptr inbounds i8, ptr %220, i64 16
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %221, ptr noundef @.str.51)
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  store i32 0, ptr %9, align 4
  br label %224

224:                                              ; preds = %218, %148, %133, %89, %74
  %225 = load i32, ptr %9, align 4
  ret i32 %225
}

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

attributes #0 = { 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 #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn 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 #3 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !14, i64 396}
!12 = !{!"_ZTS21FFTKernelGenKeyParams", !10, i64 0, !7, i64 8, !7, i64 136, !7, i64 264, !13, i64 392, !14, i64 396, !14, i64 400, !15, i64 404, !16, i64 408, !16, i64 416, !10, i64 424, !10, i64 432, !10, i64 440, !10, i64 448, !17, i64 456, !17, i64 457, !17, i64 458, !10, i64 464, !17, i64 472, !17, i64 473, !17, i64 474, !18, i64 476, !10, i64 480, !10, i64 488, !19, i64 496, !10, i64 504, !10, i64 512, !20, i64 520, !17, i64 524, !21, i64 528, !17, i64 552, !21, i64 560, !10, i64 584}
!13 = !{!"_ZTS20clfftResultLocation_", !7, i64 0}
!14 = !{!"_ZTS12clfftLayout_", !7, i64 0}
!15 = !{!"_ZTS15clfftPrecision_", !7, i64 0}
!16 = !{!"double", !7, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{!"_ZTS16BlockComputeType", !7, i64 0}
!19 = !{!"_ZTS28NonSquareTransposeKernelType", !7, i64 0}
!20 = !{!"_ZTS23NON_SQUARE_KERNEL_ORDER", !7, i64 0}
!21 = !{!"_ZTS19clfftCallbackParam_", !22, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"int", !7, i64 0}
!23 = !{!12, !13, i64 392}
!24 = !{!12, !14, i64 400}
!25 = !{!12, !17, i64 524}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!12, !17, i64 552}
!29 = !{!12, !22, i64 528}
!30 = !{!12, !22, i64 560}


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

@.str.32 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [130 x i8], align 1
@__PRETTY_FUNCTION__._ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_ = external hidden unnamed_addr constant [245 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef) local_unnamed_addr #0

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

; 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)) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 4099) i32 @_ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(600) %0, ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(128) %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %7) local_unnamed_addr #1 {
  %9 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %10 = getelementptr inbounds i8, ptr %9, i64 16
  %11 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull @.str.32)
  %12 = load i64, ptr %1, align 8, !tbaa !5
  %13 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %12)
  %14 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull @.str.33)
  %15 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %16 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %17 = getelementptr inbounds i8, ptr %16, i64 16
  %18 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull @.str.34)
  %19 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %20 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %21 = getelementptr inbounds i8, ptr %20, i64 16
  %22 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(32) %4)
  %23 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull @.str.35)
  %24 = getelementptr inbounds i8, ptr %0, i64 404
  %25 = load i32, ptr %24, align 4, !tbaa !9
  switch i32 %25, label %111 [
    i32 1, label %26
    i32 2, label %32
    i32 5, label %41
  ]

26:                                               ; preds = %8
  %27 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %28 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %29 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %30 = getelementptr inbounds i8, ptr %29, i64 16
  %31 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull @.str.36)
  br label %47

32:                                               ; preds = %8
  %33 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %34 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %35 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %36 = getelementptr inbounds i8, ptr %35, i64 16
  %37 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull @.str.36)
  %38 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(32) %6)
  %39 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull @.str.38)
  %40 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull @.str.39)
  br label %47

41:                                               ; preds = %8
  %42 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %43 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %44 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %45 = getelementptr inbounds i8, ptr %44, i64 16
  %46 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull @.str.36)
  br label %47

47:                                               ; preds = %41, %32, %26
  %.sink57 = phi ptr [ %46, %41 ], [ %40, %32 ], [ %31, %26 ]
  %.str.37.sink = phi ptr [ @.str.37, %41 ], [ @.str.40, %32 ], [ @.str.37, %26 ]
  %48 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %.sink57, ptr noundef nonnull align 8 dereferenceable(32) %6)
  %49 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull %.str.37.sink)
  %50 = getelementptr inbounds i8, ptr %0, i64 400
  %51 = load i32, ptr %50, align 8, !tbaa !22
  %52 = icmp eq i32 %51, 2
  br i1 %52, label %53, label %77

53:                                               ; preds = %47
  %54 = getelementptr inbounds i8, ptr %0, i64 408
  %55 = load i32, ptr %54, align 8, !tbaa !23
  switch i32 %55, label %111 [
    i32 1, label %56
    i32 2, label %61
    i32 5, label %69
  ]

56:                                               ; preds = %53
  %57 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %58 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %3)
  %59 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %60 = getelementptr inbounds i8, ptr %59, i64 16
  br label %.sink.split

61:                                               ; preds = %53
  %62 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %63 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %64 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %65 = getelementptr inbounds i8, ptr %64, i64 16
  %66 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull @.str.39)
  %67 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(32) %7)
  %68 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull @.str.42)
  br label %.sink.split

69:                                               ; preds = %53
  %70 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %71 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %2)
  %72 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %73 = getelementptr inbounds i8, ptr %72, i64 16
  br label %.sink.split

.sink.split:                                      ; preds = %69, %61, %56
  %.sink = phi ptr [ %60, %56 ], [ %68, %61 ], [ %73, %69 ]
  %.str.41.sink = phi ptr [ @.str.41, %56 ], [ @.str.43, %61 ], [ @.str.41, %69 ]
  %74 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %.sink, ptr noundef nonnull @.str.39)
  %75 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(32) %7)
  %76 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull %.str.41.sink)
  br label %77

77:                                               ; preds = %.sink.split, %47
  %78 = getelementptr inbounds i8, ptr %0, i64 532
  %79 = load i8, ptr %78, align 4, !tbaa !24, !range !25, !noundef !26
  %80 = trunc nuw i8 %79 to i1
  br i1 %80, label %81, label %92

81:                                               ; preds = %77
  %82 = getelementptr inbounds i8, ptr %0, i64 560
  %83 = load i8, ptr %82, align 8, !tbaa !27, !range !25, !noundef !26
  %84 = trunc nuw i8 %83 to i1
  br i1 %84, label %85, label %.sink.split59

85:                                               ; preds = %81
  tail call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.45, i32 noundef 224, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_) #3
  unreachable

.sink.split59:                                    ; preds = %81
  %86 = getelementptr inbounds i8, ptr %0, i64 536
  %87 = load i32, ptr %86, align 8, !tbaa !28
  %88 = icmp sgt i32 %87, 0
  %89 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %90 = getelementptr inbounds i8, ptr %89, i64 16
  %.str.46..str.47 = select i1 %88, ptr @.str.46, ptr @.str.47
  %91 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull %.str.46..str.47)
  br label %92

92:                                               ; preds = %.sink.split59, %77
  %93 = getelementptr inbounds i8, ptr %0, i64 560
  %94 = load i8, ptr %93, align 8, !tbaa !27, !range !25, !noundef !26
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %96, label %106

96:                                               ; preds = %92
  %97 = load i8, ptr %78, align 4, !tbaa !24, !range !25, !noundef !26
  %98 = trunc nuw i8 %97 to i1
  br i1 %98, label %99, label %.sink.split60

99:                                               ; preds = %96
  tail call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.45, i32 noundef 237, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN25clfft_transpose_generator21genTransposePrototypeERK18FFTKernelSignatureI21FFTKernelGenKeyParamsL15FFTActionImplID1EERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF_SF_RNS8_18basic_stringstreamIcSB_SC_EERSD_SJ_) #3
  unreachable

.sink.split60:                                    ; preds = %96
  %100 = getelementptr inbounds i8, ptr %0, i64 568
  %101 = load i32, ptr %100, align 8, !tbaa !29
  %102 = icmp sgt i32 %101, 0
  %103 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %104 = getelementptr inbounds i8, ptr %103, i64 16
  %.str.49..str.50 = select i1 %102, ptr @.str.49, ptr @.str.50
  %105 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull %.str.49..str.50)
  br label %106

106:                                              ; preds = %.sink.split60, %92
  %107 = tail call noundef nonnull align 8 dereferenceable(128) ptr @_Z11clKernWriteRNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(128) %5, i64 noundef 0)
  %108 = getelementptr inbounds i8, ptr %107, i64 16
  %109 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull @.str.51)
  %110 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %111

111:                                              ; preds = %53, %8, %106
  %.0 = phi i32 [ 0, %106 ], [ 4098, %8 ], [ 4098, %53 ]
  ret i32 %.0
}

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

attributes #0 = { 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 #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn 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 #3 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !12, i64 396}
!10 = !{!"_ZTS21FFTKernelGenKeyParams", !6, i64 0, !7, i64 8, !7, i64 136, !7, i64 264, !11, i64 392, !12, i64 396, !12, i64 400, !13, i64 404, !14, i64 408, !14, i64 416, !6, i64 424, !6, i64 432, !6, i64 440, !6, i64 448, !15, i64 456, !15, i64 457, !15, i64 458, !6, i64 464, !15, i64 472, !15, i64 473, !15, i64 474, !16, i64 476, !6, i64 480, !6, i64 488, !17, i64 496, !6, i64 504, !6, i64 512, !18, i64 520, !15, i64 524, !19, i64 528, !15, i64 552, !19, i64 560, !6, i64 584}
!11 = !{!"_ZTS20clfftResultLocation_", !7, i64 0}
!12 = !{!"_ZTS12clfftLayout_", !7, i64 0}
!13 = !{!"_ZTS15clfftPrecision_", !7, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTS16BlockComputeType", !7, i64 0}
!17 = !{!"_ZTS28NonSquareTransposeKernelType", !7, i64 0}
!18 = !{!"_ZTS23NON_SQUARE_KERNEL_ORDER", !7, i64 0}
!19 = !{!"_ZTS19clfftCallbackParam_", !20, i64 0, !21, i64 8, !21, i64 16}
!20 = !{!"int", !7, i64 0}
!21 = !{!"any pointer", !7, i64 0}
!22 = !{!10, !11, i64 392}
!23 = !{!10, !12, i64 400}
!24 = !{!10, !15, i64 524}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!10, !15, i64 552}
!28 = !{!10, !20, i64 528}
!29 = !{!10, !20, i64 560}


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