; LLVM IR from NVIDIA/DALI :: dali/operators/image/resize (resize_attr)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"struct.std::pair" = type { i32, i32 }
%"class.dali::ResizeAttr" = type { ptr, %"class.std::vector.58", %"class.std::vector.63", i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i8, i32, %"class.dali::TensorLayout", i32, %"class.std::vector.63", %"class.std::vector.63", %"class.std::vector.63", %"class.std::vector.63", %"class.std::vector.63", %"class.std::vector.63" }
%"class.std::vector.58" = type { %"struct.std::_Vector_base.59" }
%"struct.std::_Vector_base.59" = type { %"struct.std::_Vector_base<dali::ResizeParams, std::allocator<dali::ResizeParams>>::_Vector_impl" }
%"struct.std::_Vector_base<dali::ResizeParams, std::allocator<dali::ResizeParams>>::_Vector_impl" = type { %"struct.std::_Vector_base<dali::ResizeParams, std::allocator<dali::ResizeParams>>::_Vector_impl_data" }
%"struct.std::_Vector_base<dali::ResizeParams, std::allocator<dali::ResizeParams>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.dali::TensorLayout" = type { [16 x i8] }
%"class.std::vector.63" = type { %"struct.std::_Vector_base.64" }
%"struct.std::_Vector_base.64" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.2 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@__PRETTY_FUNCTION__._ZN4dali10ResizeAttr22GetRequestedOutputSizeERKNS_6OpSpecERKNS_17ArgumentWorkspaceE = external hidden unnamed_addr constant [97 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN4dali20GetShapeLikeArgumentIffEESt4pairIiiERSt6vectorIT0_SaIS4_EERKNS_6OpSpecERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_17ArgumentWorkspaceEii(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(328), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(256), i32 noundef, i32 noundef) #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4dali10ResizeAttr22GetRequestedOutputSizeERKNS_6OpSpecERKNS_17ArgumentWorkspaceE(ptr noundef nonnull align 8 dereferenceable(248) %0, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(256) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca [3 x ptr], align 16
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"struct.std::pair", align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %29 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  %30 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 18
  %31 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %31, ptr %7, align 4, !tbaa !23
  %32 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 19
  %33 = load i32, ptr %7, align 4, !tbaa !23
  %34 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %35 = load i32, ptr %34, align 4, !tbaa !24
  %36 = mul nsw i32 %33, %35
  %37 = sext i32 %36 to i64
  call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %37)
  %38 = call noundef zeroext i1 @_ZNK4dali10ResizeAttr19HasSeparateSizeArgsEv(ptr noundef nonnull align 8 dereferenceable(248) %29)
  br i1 %38, label %39, label %176

39:                                               ; preds = %3
  %40 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 20
  %41 = load i32, ptr %7, align 4, !tbaa !23
  %42 = sext i32 %41 to i64
  call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %42)
  %43 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 21
  %44 = load i32, ptr %7, align 4, !tbaa !23
  %45 = sext i32 %44 to i64
  call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %45)
  %46 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 22
  %47 = load i32, ptr %7, align 4, !tbaa !23
  %48 = sext i32 %47 to i64
  call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %48)
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #5
  call void @llvm.memset.p0.i64(ptr align 16 %8, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  store i32 0, ptr %9, align 4, !tbaa !23
  %49 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %50 = load i32, ptr %49, align 4, !tbaa !24
  %51 = icmp sge i32 %50, 3
  br i1 %51, label %52, label %59

52:                                               ; preds = %39
  %53 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 22
  %54 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #5
  %55 = load i32, ptr %9, align 4, !tbaa !23
  %56 = add nsw i32 %55, 1
  store i32 %56, ptr %9, align 4, !tbaa !23
  %57 = sext i32 %55 to i64
  %58 = getelementptr inbounds [3 x ptr], ptr %8, i64 0, i64 %57
  store ptr %54, ptr %58, align 8, !tbaa !5
  br label %59

59:                                               ; preds = %52, %39
  %60 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %61 = load i32, ptr %60, align 4, !tbaa !24
  %62 = icmp sge i32 %61, 2
  br i1 %62, label %63, label %70

63:                                               ; preds = %59
  %64 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 21
  %65 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %64) #5
  %66 = load i32, ptr %9, align 4, !tbaa !23
  %67 = add nsw i32 %66, 1
  store i32 %67, ptr %9, align 4, !tbaa !23
  %68 = sext i32 %66 to i64
  %69 = getelementptr inbounds [3 x ptr], ptr %8, i64 0, i64 %68
  store ptr %65, ptr %69, align 8, !tbaa !5
  br label %70

70:                                               ; preds = %63, %59
  %71 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 20
  %72 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %71) #5
  %73 = load i32, ptr %9, align 4, !tbaa !23
  %74 = add nsw i32 %73, 1
  store i32 %74, ptr %9, align 4, !tbaa !23
  %75 = sext i32 %73 to i64
  %76 = getelementptr inbounds [3 x ptr], ptr %8, i64 0, i64 %75
  store ptr %72, ptr %76, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  %77 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 8
  %78 = load i8, ptr %77, align 1, !tbaa !25, !range !26, !noundef !27
  %79 = trunc i8 %78 to i1
  br i1 %79, label %80, label %96

80:                                               ; preds = %70
  %81 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 20
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %82 unwind label %87

82:                                               ; preds = %80
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = load ptr, ptr %6, align 8, !tbaa !5
  %85 = load i32, ptr %7, align 4, !tbaa !23
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(328) %83, ptr noundef nonnull align 8 dereferenceable(256) %84, i32 noundef %85)
          to label %86 unwind label %91

86:                                               ; preds = %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  br label %96

87:                                               ; preds = %80
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %12, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %13, align 4
  br label %95

91:                                               ; preds = %82
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %12, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %95

95:                                               ; preds = %91, %87
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  br label %175

96:                                               ; preds = %86, %70
  %97 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 9
  %98 = load i8, ptr %97, align 2, !tbaa !28, !range !26, !noundef !27
  %99 = trunc i8 %98 to i1
  br i1 %99, label %100, label %116

100:                                              ; preds = %96
  %101 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 21
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %102 unwind label %107

102:                                              ; preds = %100
  %103 = load ptr, ptr %5, align 8, !tbaa !5
  %104 = load ptr, ptr %6, align 8, !tbaa !5
  %105 = load i32, ptr %7, align 4, !tbaa !23
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %101, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(328) %103, ptr noundef nonnull align 8 dereferenceable(256) %104, i32 noundef %105)
          to label %106 unwind label %111

106:                                              ; preds = %102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %116

107:                                              ; preds = %100
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %12, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %13, align 4
  br label %115

111:                                              ; preds = %102
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %12, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %115

115:                                              ; preds = %111, %107
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %175

116:                                              ; preds = %106, %96
  %117 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 10
  %118 = load i8, ptr %117, align 1, !tbaa !29, !range !26, !noundef !27
  %119 = trunc i8 %118 to i1
  br i1 %119, label %120, label %136

120:                                              ; preds = %116
  %121 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 22
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %122 unwind label %127

122:                                              ; preds = %120
  %123 = load ptr, ptr %5, align 8, !tbaa !5
  %124 = load ptr, ptr %6, align 8, !tbaa !5
  %125 = load i32, ptr %7, align 4, !tbaa !23
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %121, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(328) %123, ptr noundef nonnull align 8 dereferenceable(256) %124, i32 noundef %125)
          to label %126 unwind label %131

126:                                              ; preds = %122
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %136

127:                                              ; preds = %120
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %12, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %13, align 4
  br label %135

131:                                              ; preds = %122
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %12, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %135

135:                                              ; preds = %131, %127
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %175

136:                                              ; preds = %126, %116
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  store i32 0, ptr %18, align 4, !tbaa !23
  br label %137

137:                                              ; preds = %171, %136
  %138 = load i32, ptr %18, align 4, !tbaa !23
  %139 = load i32, ptr %7, align 4, !tbaa !23
  %140 = icmp slt i32 %138, %139
  br i1 %140, label %142, label %141

141:                                              ; preds = %137
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %174

142:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  store i32 0, ptr %20, align 4, !tbaa !23
  br label %143

143:                                              ; preds = %167, %142
  %144 = load i32, ptr %20, align 4, !tbaa !23
  %145 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %146 = load i32, ptr %145, align 4, !tbaa !24
  %147 = icmp slt i32 %144, %146
  br i1 %147, label %149, label %148

148:                                              ; preds = %143
  store i32 5, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  br label %170

149:                                              ; preds = %143
  %150 = load i32, ptr %20, align 4, !tbaa !23
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds [3 x ptr], ptr %8, i64 0, i64 %151
  %153 = load ptr, ptr %152, align 8, !tbaa !5
  %154 = load i32, ptr %18, align 4, !tbaa !23
  %155 = sext i32 %154 to i64
  %156 = getelementptr inbounds float, ptr %153, i64 %155
  %157 = load float, ptr %156, align 4, !tbaa !30
  %158 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 19
  %159 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %160 = load i32, ptr %159, align 4, !tbaa !24
  %161 = load i32, ptr %18, align 4, !tbaa !23
  %162 = mul nsw i32 %160, %161
  %163 = load i32, ptr %20, align 4, !tbaa !23
  %164 = add nsw i32 %162, %163
  %165 = sext i32 %164 to i64
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %158, i64 noundef %165) #5
  store float %157, ptr %166, align 4, !tbaa !30
  br label %167

167:                                              ; preds = %149
  %168 = load i32, ptr %20, align 4, !tbaa !23
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr %20, align 4, !tbaa !23
  br label %143, !llvm.loop !32

170:                                              ; preds = %148
  br label %171

171:                                              ; preds = %170
  %172 = load i32, ptr %18, align 4, !tbaa !23
  %173 = add nsw i32 %172, 1
  store i32 %173, ptr %18, align 4, !tbaa !23
  br label %137, !llvm.loop !34

174:                                              ; preds = %141
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  br label %268

175:                                              ; preds = %135, %115, %95
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #5
  br label %269

176:                                              ; preds = %3
  %177 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 6
  %178 = load i8, ptr %177, align 1, !tbaa !35, !range !26, !noundef !27
  %179 = trunc i8 %178 to i1
  br i1 %179, label %184, label %180

180:                                              ; preds = %176
  %181 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 7
  %182 = load i8, ptr %181, align 4, !tbaa !36, !range !26, !noundef !27
  %183 = trunc i8 %182 to i1
  br i1 %183, label %184, label %241

184:                                              ; preds = %180, %176
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %185 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 6
  %186 = load i8, ptr %185, align 1, !tbaa !35, !range !26, !noundef !27
  %187 = trunc i8 %186 to i1
  %188 = zext i1 %187 to i64
  %189 = select i1 %187, ptr @.str.10, ptr @.str.12
  store ptr %189, ptr %21, align 8, !tbaa !5
  %190 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 20
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #5
  %191 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %191, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %192 unwind label %202

192:                                              ; preds = %184
  %193 = load ptr, ptr %5, align 8, !tbaa !5
  %194 = load ptr, ptr %6, align 8, !tbaa !5
  %195 = load i32, ptr %7, align 4, !tbaa !23
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %190, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(328) %193, ptr noundef nonnull align 8 dereferenceable(256) %194, i32 noundef %195)
          to label %196 unwind label %206

196:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  store i32 0, ptr %24, align 4, !tbaa !23
  br label %197

197:                                              ; preds = %237, %196
  %198 = load i32, ptr %24, align 4, !tbaa !23
  %199 = load i32, ptr %7, align 4, !tbaa !23
  %200 = icmp slt i32 %198, %199
  br i1 %200, label %211, label %201

201:                                              ; preds = %197
  store i32 8, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %240

202:                                              ; preds = %184
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %12, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %13, align 4
  br label %210

206:                                              ; preds = %192
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %12, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %210

210:                                              ; preds = %206, %202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %269

211:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 0, ptr %25, align 4, !tbaa !23
  br label %212

212:                                              ; preds = %233, %211
  %213 = load i32, ptr %25, align 4, !tbaa !23
  %214 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %215 = load i32, ptr %214, align 4, !tbaa !24
  %216 = icmp slt i32 %213, %215
  br i1 %216, label %218, label %217

217:                                              ; preds = %212
  store i32 11, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %236

218:                                              ; preds = %212
  %219 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 20
  %220 = load i32, ptr %24, align 4, !tbaa !23
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef %221) #5
  %223 = load float, ptr %222, align 4, !tbaa !30
  %224 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 19
  %225 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %226 = load i32, ptr %225, align 4, !tbaa !24
  %227 = load i32, ptr %24, align 4, !tbaa !23
  %228 = mul nsw i32 %226, %227
  %229 = load i32, ptr %25, align 4, !tbaa !23
  %230 = add nsw i32 %228, %229
  %231 = sext i32 %230 to i64
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %224, i64 noundef %231) #5
  store float %223, ptr %232, align 4, !tbaa !30
  br label %233

233:                                              ; preds = %218
  %234 = load i32, ptr %25, align 4, !tbaa !23
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr %25, align 4, !tbaa !23
  br label %212, !llvm.loop !37

236:                                              ; preds = %217
  br label %237

237:                                              ; preds = %236
  %238 = load i32, ptr %24, align 4, !tbaa !23
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr %24, align 4, !tbaa !23
  br label %197, !llvm.loop !38

240:                                              ; preds = %201
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %267

241:                                              ; preds = %180
  %242 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 3
  %243 = load i8, ptr %242, align 8, !tbaa !39, !range !26, !noundef !27
  %244 = trunc i8 %243 to i1
  br i1 %244, label %245, label %246

245:                                              ; preds = %241
  br label %248

246:                                              ; preds = %241
  call void @__assert_fail(ptr noundef @.str.39, ptr noundef @.str.37, i32 noundef 253, ptr noundef @__PRETTY_FUNCTION__._ZN4dali10ResizeAttr22GetRequestedOutputSizeERKNS_6OpSpecERKNS_17ArgumentWorkspaceE) #6
  unreachable

247:                                              ; No predecessors!
  br label %248

248:                                              ; preds = %247, %245
  %249 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 19
  %250 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %251 unwind label %258

251:                                              ; preds = %248
  %252 = load ptr, ptr %6, align 8, !tbaa !5
  %253 = load i32, ptr %7, align 4, !tbaa !23
  %254 = getelementptr inbounds %"class.dali::ResizeAttr", ptr %29, i32 0, i32 13
  %255 = load i32, ptr %254, align 4, !tbaa !24
  %256 = invoke i64 @_ZN4dali20GetShapeLikeArgumentIffEESt4pairIiiERSt6vectorIT0_SaIS4_EERKNS_6OpSpecERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_17ArgumentWorkspaceEii(ptr noundef nonnull align 8 dereferenceable(24) %249, ptr noundef nonnull align 8 dereferenceable(328) %250, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(256) %252, i32 noundef %253, i32 noundef %255)
          to label %257 unwind label %262

257:                                              ; preds = %251
  store i64 %256, ptr %28, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %267

258:                                              ; preds = %248
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %12, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %13, align 4
  br label %266

262:                                              ; preds = %251
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %12, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %266

266:                                              ; preds = %262, %258
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #5
  br label %269

267:                                              ; preds = %257, %240
  br label %268

268:                                              ; preds = %267, %174
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  ret void

269:                                              ; preds = %266, %210, %175
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %270

270:                                              ; preds = %269
  %271 = load ptr, ptr %12, align 8
  %272 = load i32, ptr %13, align 4
  %273 = insertvalue { ptr, i32 } poison, ptr %271, 0
  %274 = insertvalue { ptr, i32 } %273, i32 %272, 1
  resume { ptr, i32 } %274
}

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(328), ptr noundef nonnull align 8 dereferenceable(256), i32 noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }
attributes #6 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !20, i64 100}
!10 = !{!"_ZTSN4dali10ResizeAttrE", !11, i64 8, !15, i64 32, !19, i64 56, !19, i64 57, !19, i64 58, !19, i64 59, !19, i64 60, !19, i64 61, !19, i64 62, !19, i64 63, !19, i64 64, !19, i64 65, !20, i64 68, !20, i64 72, !19, i64 76, !21, i64 80, !22, i64 84, !20, i64 100, !15, i64 104, !15, i64 128, !15, i64 152, !15, i64 176, !15, i64 200, !15, i64 224}
!11 = !{!"_ZTSSt6vectorIN4dali12ResizeParamsESaIS1_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIN4dali12ResizeParamsESaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIN4dali12ResizeParamsESaIS1_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN4dali12ResizeParamsESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!15 = !{!"_ZTSSt6vectorIfSaIfEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = !{!"_ZTSN4dali10ResizeModeE", !7, i64 0}
!22 = !{!"_ZTSN4dali12TensorLayoutE", !7, i64 0}
!23 = !{!20, !20, i64 0}
!24 = !{!10, !20, i64 68}
!25 = !{!10, !19, i64 61}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!10, !19, i64 62}
!29 = !{!10, !19, i64 63}
!30 = !{!31, !31, i64 0}
!31 = !{!"float", !7, i64 0}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !33}
!35 = !{!10, !19, i64 59}
!36 = !{!10, !19, i64 60}
!37 = distinct !{!37, !33}
!38 = distinct !{!38, !33}
!39 = !{!10, !19, i64 56}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@.str.2 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [10 x i8], align 1
@__PRETTY_FUNCTION__._ZN4dali10ResizeAttr22GetRequestedOutputSizeERKNS_6OpSpecERKNS_17ArgumentWorkspaceE = external hidden unnamed_addr constant [97 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4dali10ResizeAttr19HasSeparateSizeArgsEv(ptr noundef nonnull align 8 dereferenceable(248)) 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 #3

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN4dali20GetShapeLikeArgumentIffEESt4pairIiiERSt6vectorIT0_SaIS4_EERKNS_6OpSpecERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_17ArgumentWorkspaceEii(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(328), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(256), i32 noundef, i32 noundef) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4dali10ResizeAttr22GetRequestedOutputSizeERKNS_6OpSpecERKNS_17ArgumentWorkspaceE(ptr noundef nonnull align 8 dereferenceable(248) %0, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(256) %2) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca [3 x ptr], align 16
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = getelementptr inbounds i8, ptr %0, i64 100
  %16 = load i32, ptr %15, align 4, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %0, i64 104
  %18 = getelementptr inbounds i8, ptr %0, i64 68
  %19 = load i32, ptr %18, align 4, !tbaa !22
  %20 = mul nsw i32 %19, %16
  %21 = sext i32 %20 to i64
  tail call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %21)
  %22 = tail call noundef zeroext i1 @_ZNK4dali10ResizeAttr19HasSeparateSizeArgsEv(ptr noundef nonnull align 8 dereferenceable(248) %0)
  br i1 %22, label %23, label %102

23:                                               ; preds = %3
  %24 = getelementptr inbounds i8, ptr %0, i64 128
  %25 = sext i32 %16 to i64
  tail call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %25)
  %26 = getelementptr inbounds i8, ptr %0, i64 152
  tail call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %25)
  %27 = getelementptr inbounds i8, ptr %0, i64 176
  tail call void @_ZNSt6vectorIfSaIfEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %25)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %28 = load i32, ptr %18, align 4, !tbaa !22
  %29 = icmp sgt i32 %28, 2
  br i1 %29, label %30, label %32

30:                                               ; preds = %23
  %31 = tail call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %27) #5
  store ptr %31, ptr %4, align 16, !tbaa !23
  %.pr = load i32, ptr %18, align 4, !tbaa !22
  br label %32

32:                                               ; preds = %30, %23
  %33 = phi i32 [ %.pr, %30 ], [ %28, %23 ]
  %.0 = phi i32 [ 1, %30 ], [ 0, %23 ]
  %34 = icmp sgt i32 %33, 1
  br i1 %34, label %35, label %40

35:                                               ; preds = %32
  %36 = tail call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #5
  %37 = add nuw nsw i32 %.0, 1
  %38 = zext nneg i32 %.0 to i64
  %39 = getelementptr inbounds [3 x ptr], ptr %4, i64 0, i64 %38
  store ptr %36, ptr %39, align 8, !tbaa !23
  br label %40

40:                                               ; preds = %35, %32
  %.1 = phi i32 [ %37, %35 ], [ %.0, %32 ]
  %41 = tail call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #5
  %42 = zext nneg i32 %.1 to i64
  %43 = getelementptr inbounds [3 x ptr], ptr %4, i64 0, i64 %42
  store ptr %41, ptr %43, align 8, !tbaa !23
  %44 = getelementptr inbounds i8, ptr %0, i64 61
  %45 = load i8, ptr %44, align 1, !tbaa !24, !range !25, !noundef !26
  %46 = trunc nuw i8 %45 to i1
  br i1 %46, label %47, label %55

47:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %48 unwind label %50

48:                                               ; preds = %47
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, i32 noundef %16)
          to label %49 unwind label %52

49:                                               ; preds = %48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  br label %55

50:                                               ; preds = %47
  %51 = landingpad { ptr, i32 }
          cleanup
  br label %54

52:                                               ; preds = %48
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %54

54:                                               ; preds = %52, %50
  %.pn59 = phi { ptr, i32 } [ %53, %52 ], [ %51, %50 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  br label %101

55:                                               ; preds = %49, %40
  %56 = getelementptr inbounds i8, ptr %0, i64 62
  %57 = load i8, ptr %56, align 2, !tbaa !27, !range !25, !noundef !26
  %58 = trunc nuw i8 %57 to i1
  br i1 %58, label %59, label %67

59:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %60 unwind label %62

60:                                               ; preds = %59
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, i32 noundef %16)
          to label %61 unwind label %64

61:                                               ; preds = %60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %67

62:                                               ; preds = %59
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %66

64:                                               ; preds = %60
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %66

66:                                               ; preds = %64, %62
  %.pn61 = phi { ptr, i32 } [ %65, %64 ], [ %63, %62 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %101

67:                                               ; preds = %61, %55
  %68 = getelementptr inbounds i8, ptr %0, i64 63
  %69 = load i8, ptr %68, align 1, !tbaa !28, !range !25, !noundef !26
  %70 = trunc nuw i8 %69 to i1
  br i1 %70, label %71, label %79

71:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %72 unwind label %74

72:                                               ; preds = %71
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, i32 noundef %16)
          to label %73 unwind label %76

73:                                               ; preds = %72
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  br label %79

74:                                               ; preds = %71
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %78

76:                                               ; preds = %72
  %77 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %78

78:                                               ; preds = %76, %74
  %.pn63 = phi { ptr, i32 } [ %77, %76 ], [ %75, %74 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  br label %101

79:                                               ; preds = %73, %67
  %80 = icmp sgt i32 %16, 0
  br i1 %80, label %.preheader.lr.ph, label %._crit_edge74

.preheader.lr.ph:                                 ; preds = %79
  %81 = load i32, ptr %18, align 4, !tbaa !22
  %82 = icmp sgt i32 %81, 0
  br i1 %82, label %.preheader.preheader, label %._crit_edge74

.preheader.preheader:                             ; preds = %.preheader.lr.ph
  %wide.trip.count84 = zext nneg i32 %16 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %._crit_edge72
  %83 = phi i32 [ %81, %.preheader.preheader ], [ %86, %._crit_edge72 ]
  %indvars.iv81 = phi i64 [ 0, %.preheader.preheader ], [ %indvars.iv.next82, %._crit_edge72 ]
  %84 = icmp sgt i32 %83, 0
  br i1 %84, label %.lr.ph71, label %._crit_edge72

.lr.ph71:                                         ; preds = %.preheader
  %85 = trunc nuw nsw i64 %indvars.iv81 to i32
  br label %87

._crit_edge74:                                    ; preds = %._crit_edge72, %.preheader.lr.ph, %79
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  br label %.loopexit

._crit_edge72:                                    ; preds = %87, %.preheader
  %86 = phi i32 [ %83, %.preheader ], [ %98, %87 ]
  %indvars.iv.next82 = add nuw nsw i64 %indvars.iv81, 1
  %exitcond85.not = icmp eq i64 %indvars.iv.next82, %wide.trip.count84
  br i1 %exitcond85.not, label %._crit_edge74, label %.preheader, !llvm.loop !29

87:                                               ; preds = %.lr.ph71, %87
  %indvars.iv78 = phi i64 [ 0, %.lr.ph71 ], [ %indvars.iv.next79, %87 ]
  %88 = phi i32 [ %83, %.lr.ph71 ], [ %98, %87 ]
  %89 = getelementptr inbounds [3 x ptr], ptr %4, i64 0, i64 %indvars.iv78
  %90 = load ptr, ptr %89, align 8, !tbaa !23
  %91 = getelementptr inbounds float, ptr %90, i64 %indvars.iv81
  %92 = load float, ptr %91, align 4, !tbaa !32
  %93 = mul nsw i32 %88, %85
  %94 = trunc nuw nsw i64 %indvars.iv78 to i32
  %95 = add nsw i32 %93, %94
  %96 = sext i32 %95 to i64
  %97 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %96) #5
  store float %92, ptr %97, align 4, !tbaa !32
  %indvars.iv.next79 = add nuw nsw i64 %indvars.iv78, 1
  %98 = load i32, ptr %18, align 4, !tbaa !22
  %99 = sext i32 %98 to i64
  %100 = icmp slt i64 %indvars.iv.next79, %99
  br i1 %100, label %87, label %._crit_edge72, !llvm.loop !34

101:                                              ; preds = %78, %66, %54
  %.pn63.pn = phi { ptr, i32 } [ %.pn63, %78 ], [ %.pn61, %66 ], [ %.pn59, %54 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  br label %153

102:                                              ; preds = %3
  %103 = getelementptr inbounds i8, ptr %0, i64 59
  %104 = load i8, ptr %103, align 1, !tbaa !35, !range !25, !noundef !26
  %105 = trunc nuw i8 %104 to i1
  br i1 %105, label %110, label %106

106:                                              ; preds = %102
  %107 = getelementptr inbounds i8, ptr %0, i64 60
  %108 = load i8, ptr %107, align 4, !tbaa !36, !range !25, !noundef !26
  %109 = trunc nuw i8 %108 to i1
  br i1 %109, label %110, label %138

110:                                              ; preds = %106, %102
  %111 = phi ptr [ @.str.12, %106 ], [ @.str.10, %102 ]
  %112 = getelementptr inbounds i8, ptr %0, i64 128
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull %111, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %113 unwind label %121

113:                                              ; preds = %110
  invoke void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, i32 noundef %16)
          to label %114 unwind label %123

114:                                              ; preds = %113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  %115 = icmp sgt i32 %16, 0
  br i1 %115, label %.preheader67.lr.ph, label %.loopexit

.preheader67.lr.ph:                               ; preds = %114
  %116 = load i32, ptr %18, align 4, !tbaa !22
  %117 = icmp sgt i32 %116, 0
  br i1 %117, label %.preheader67.preheader, label %.loopexit

.preheader67.preheader:                           ; preds = %.preheader67.lr.ph
  %wide.trip.count = zext nneg i32 %16 to i64
  br label %.preheader67

.preheader67:                                     ; preds = %.preheader67.preheader, %._crit_edge
  %118 = phi i32 [ %116, %.preheader67.preheader ], [ %126, %._crit_edge ]
  %indvars.iv = phi i64 [ 0, %.preheader67.preheader ], [ %indvars.iv.next, %._crit_edge ]
  %119 = icmp sgt i32 %118, 0
  br i1 %119, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader67
  %120 = trunc nuw nsw i64 %indvars.iv to i32
  br label %127

121:                                              ; preds = %110
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %125

123:                                              ; preds = %113
  %124 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %125

125:                                              ; preds = %123, %121
  %.pn57 = phi { ptr, i32 } [ %124, %123 ], [ %122, %121 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  br label %153

._crit_edge:                                      ; preds = %127, %.preheader67
  %126 = phi i32 [ %118, %.preheader67 ], [ %136, %127 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit, label %.preheader67, !llvm.loop !37

127:                                              ; preds = %.lr.ph, %127
  %.04268 = phi i32 [ 0, %.lr.ph ], [ %135, %127 ]
  %128 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %indvars.iv) #5
  %129 = load float, ptr %128, align 4, !tbaa !32
  %130 = load i32, ptr %18, align 4, !tbaa !22
  %131 = mul nsw i32 %130, %120
  %132 = add nsw i32 %131, %.04268
  %133 = sext i32 %132 to i64
  %134 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %133) #5
  store float %129, ptr %134, align 4, !tbaa !32
  %135 = add nuw nsw i32 %.04268, 1
  %136 = load i32, ptr %18, align 4, !tbaa !22
  %137 = icmp slt i32 %135, %136
  br i1 %137, label %127, label %._crit_edge, !llvm.loop !38

138:                                              ; preds = %106
  %139 = getelementptr inbounds i8, ptr %0, i64 56
  %140 = load i8, ptr %139, align 8, !tbaa !39, !range !25, !noundef !26
  %141 = trunc nuw i8 %140 to i1
  br i1 %141, label %143, label %142

142:                                              ; preds = %138
  tail call void @__assert_fail(ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.37, i32 noundef 253, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4dali10ResizeAttr22GetRequestedOutputSizeERKNS_6OpSpecERKNS_17ArgumentWorkspaceE) #6
  unreachable

143:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %144 unwind label %148

144:                                              ; preds = %143
  %145 = load i32, ptr %18, align 4, !tbaa !22
  %146 = invoke i64 @_ZN4dali20GetShapeLikeArgumentIffEESt4pairIiiERSt6vectorIT0_SaIS4_EERKNS_6OpSpecERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_17ArgumentWorkspaceEii(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(328) %1, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(256) %2, i32 noundef %16, i32 noundef %145)
          to label %147 unwind label %150

147:                                              ; preds = %144
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  br label %.loopexit

148:                                              ; preds = %143
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %144
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %152

152:                                              ; preds = %150, %148
  %.pn = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  br label %153

.loopexit:                                        ; preds = %._crit_edge, %.preheader67.lr.ph, %114, %147, %._crit_edge74
  ret void

153:                                              ; preds = %152, %125, %101
  %.pn63.pn.pn = phi { ptr, i32 } [ %.pn63.pn, %101 ], [ %.pn57, %125 ], [ %.pn, %152 ]
  resume { ptr, i32 } %.pn63.pn.pn
}

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4dali20GetPerSampleArgumentIfEEvRSt6vectorIT_SaIS2_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_6OpSpecERKNS_17ArgumentWorkspaceEi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(328), ptr noundef nonnull align 8 dereferenceable(256), i32 noundef) local_unnamed_addr #2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }
attributes #6 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !19, i64 100}
!6 = !{!"_ZTSN4dali10ResizeAttrE", !7, i64 8, !14, i64 32, !18, i64 56, !18, i64 57, !18, i64 58, !18, i64 59, !18, i64 60, !18, i64 61, !18, i64 62, !18, i64 63, !18, i64 64, !18, i64 65, !19, i64 68, !19, i64 72, !18, i64 76, !20, i64 80, !21, i64 84, !19, i64 100, !14, i64 104, !14, i64 128, !14, i64 152, !14, i64 176, !14, i64 200, !14, i64 224}
!7 = !{!"_ZTSSt6vectorIN4dali12ResizeParamsESaIS1_EE", !8, i64 0}
!8 = !{!"_ZTSSt12_Vector_baseIN4dali12ResizeParamsESaIS1_EE", !9, i64 0}
!9 = !{!"_ZTSNSt12_Vector_baseIN4dali12ResizeParamsESaIS1_EE12_Vector_implE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseIN4dali12ResizeParamsESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!11 = !{!"any pointer", !12, i64 0}
!12 = !{!"omnipotent char", !13, i64 0}
!13 = !{!"Simple C++ TBAA"}
!14 = !{!"_ZTSSt6vectorIfSaIfEE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!18 = !{!"bool", !12, i64 0}
!19 = !{!"int", !12, i64 0}
!20 = !{!"_ZTSN4dali10ResizeModeE", !12, i64 0}
!21 = !{!"_ZTSN4dali12TensorLayoutE", !12, i64 0}
!22 = !{!6, !19, i64 68}
!23 = !{!11, !11, i64 0}
!24 = !{!6, !18, i64 61}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!6, !18, i64 62}
!28 = !{!6, !18, i64 63}
!29 = distinct !{!29, !30, !31}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!"llvm.loop.unswitch.partial.disable"}
!32 = !{!33, !33, i64 0}
!33 = !{!"float", !12, i64 0}
!34 = distinct !{!34, !30}
!35 = !{!6, !18, i64 59}
!36 = !{!6, !18, i64 60}
!37 = distinct !{!37, !30, !31}
!38 = distinct !{!38, !30}
!39 = !{!6, !18, i64 56}


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