; LLVM IR from ermig1979/Simd :: src/Simd/SimdBaseImageLoadJpeg.ll (ZN4Simd4Base15ImageJpegLoader10FromStreamEv)

; 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.Simd::Base::ImageJpegLoader" = type { %"class.Simd::ImageLoader", ptr }
%"class.Simd::ImageLoader" = type { ptr, %"struct.Simd::ImageLoaderParam", %"class.Simd::InputMemoryStream", %"struct.Simd::View" }
%"struct.Simd::ImageLoaderParam" = type { ptr, i64, i32, i32 }
%"class.Simd::InputMemoryStream" = type { ptr, i64, i64, i64, i64 }
%"struct.Simd::View" = type <{ i64, i64, i64, i32, [4 x i8], ptr, i8, [7 x i8] }>
%"struct.Simd::Base::JpegContext" = type { ptr, i32, i32, i32, i32, [4 x %"struct.Simd::Base::JpegHuffman"], [4 x %"struct.Simd::Base::JpegHuffman"], [4 x [64 x i16]], i32, i32, i32, i32, i32, i32, [4 x %"struct.Simd::Base::JpegImgComp"], i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i32], i32, i32, %"struct.Simd::Array", ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.Simd::Base::JpegHuffman" = type { [512 x i8], [256 x i16], [256 x i8], [257 x i8], [18 x i32], [17 x i32], [512 x i16] }
%"struct.Simd::Base::JpegImgComp" = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"struct.Simd::Array", %"struct.Simd::Array", ptr, %"struct.Simd::Array.0", ptr, i32, i32 }
%"struct.Simd::Array.0" = type { ptr, i64 }
%"struct.Simd::Array" = type { ptr, i64 }

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN4Simd4Base15ImageJpegLoader10FromStreamEv(ptr noundef nonnull align 8 dereferenceable(128) %0) unnamed_addr #1 align 2 {
  %2 = alloca i1, align 1
  %3 = alloca ptr, align 8
  %4 = alloca i64, align 8
  %5 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  %6 = load ptr, ptr %3, align 8
  %7 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %8 = load ptr, ptr %7, align 8, !tbaa !9
  %9 = call noundef i32 @_ZN4Simd4BaseL10JpegDecodeEPNS0_11JpegContextE(ptr noundef %8)
  %10 = icmp ne i32 %9, 0
  br i1 %10, label %12, label %11

11:                                               ; preds = %1
  store i1 false, ptr %2, align 1
  br label %415

12:                                               ; preds = %1
  %13 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %14 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %15 = load ptr, ptr %14, align 8, !tbaa !9
  %16 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %15, i32 0, i32 1
  %17 = load i32, ptr %16, align 8, !tbaa !20
  %18 = zext i32 %17 to i64
  %19 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %20 = load ptr, ptr %19, align 8, !tbaa !9
  %21 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %20, i32 0, i32 2
  %22 = load i32, ptr %21, align 4, !tbaa !24
  %23 = zext i32 %22 to i64
  %24 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %25 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %24, i32 0, i32 3
  %26 = load i32, ptr %25, align 4, !tbaa !25
  %27 = call noundef i64 @_ZN4Simd9AllocatorIhE9AlignmentEv()
  call void @_ZN4Simd4ViewINS_9AllocatorEE8RecreateEmmNS2_6FormatEPvm(ptr noundef nonnull align 8 dereferenceable(41) %13, i64 noundef %18, i64 noundef %23, i32 noundef %26, ptr noundef null, i64 noundef %27)
  %28 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %29 = load ptr, ptr %28, align 8, !tbaa !9
  %30 = call noundef zeroext i1 @_ZN4Simd4Base11CanCopyGrayERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832) %29)
  br i1 %30, label %31, label %66

31:                                               ; preds = %12
  %32 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %33 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %32, i32 0, i32 3
  %34 = load i32, ptr %33, align 4, !tbaa !25
  %35 = icmp eq i32 %34, 1
  br i1 %35, label %36, label %66

36:                                               ; preds = %31
  %37 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %38 = load ptr, ptr %37, align 8, !tbaa !9
  %39 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %38, i32 0, i32 14
  %40 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %39, i64 0, i64 0
  %41 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %40, i32 0, i32 13
  %42 = load ptr, ptr %41, align 8, !tbaa !26
  %43 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %44 = load ptr, ptr %43, align 8, !tbaa !9
  %45 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %44, i32 0, i32 14
  %46 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %45, i64 0, i64 0
  %47 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %46, i32 0, i32 9
  %48 = load i32, ptr %47, align 4, !tbaa !29
  %49 = sext i32 %48 to i64
  %50 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %51 = load ptr, ptr %50, align 8, !tbaa !9
  %52 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %51, i32 0, i32 1
  %53 = load i32, ptr %52, align 8, !tbaa !20
  %54 = zext i32 %53 to i64
  %55 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %56 = load ptr, ptr %55, align 8, !tbaa !9
  %57 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %56, i32 0, i32 2
  %58 = load i32, ptr %57, align 4, !tbaa !24
  %59 = zext i32 %58 to i64
  %60 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %61 = getelementptr inbounds %"struct.Simd::View", ptr %60, i32 0, i32 5
  %62 = load ptr, ptr %61, align 8, !tbaa !30
  %63 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %64 = getelementptr inbounds %"struct.Simd::View", ptr %63, i32 0, i32 2
  %65 = load i64, ptr %64, align 8, !tbaa !31
  call void @_ZN4Simd4Base4CopyEPKhmmmmPhm(ptr noundef %42, i64 noundef %49, i64 noundef %54, i64 noundef %59, i64 noundef 1, ptr noundef %62, i64 noundef %65)
  store i1 true, ptr %2, align 1
  br label %415

66:                                               ; preds = %31, %12
  %67 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %68 = load ptr, ptr %67, align 8, !tbaa !9
  %69 = call noundef zeroext i1 @_ZN4Simd4Base8IsYuv420ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832) %68)
  br i1 %69, label %70, label %195

70:                                               ; preds = %66
  %71 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %72 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %71, i32 0, i32 3
  %73 = load i32, ptr %72, align 4, !tbaa !25
  switch i32 %73, label %194 [
    i32 3, label %74
    i32 16, label %74
    i32 4, label %134
    i32 17, label %134
  ]

74:                                               ; preds = %70, %70
  %75 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %76 = load ptr, ptr %75, align 8, !tbaa !9
  %77 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %76, i32 0, i32 37
  %78 = load ptr, ptr %77, align 8, !tbaa !32
  %79 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %80 = load ptr, ptr %79, align 8, !tbaa !9
  %81 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %80, i32 0, i32 14
  %82 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %81, i64 0, i64 0
  %83 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %82, i32 0, i32 13
  %84 = load ptr, ptr %83, align 8, !tbaa !26
  %85 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %86 = load ptr, ptr %85, align 8, !tbaa !9
  %87 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %86, i32 0, i32 14
  %88 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %87, i64 0, i64 0
  %89 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %88, i32 0, i32 9
  %90 = load i32, ptr %89, align 4, !tbaa !29
  %91 = sext i32 %90 to i64
  %92 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %93 = load ptr, ptr %92, align 8, !tbaa !9
  %94 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %93, i32 0, i32 14
  %95 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %94, i64 0, i64 1
  %96 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %95, i32 0, i32 13
  %97 = load ptr, ptr %96, align 8, !tbaa !26
  %98 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %99 = load ptr, ptr %98, align 8, !tbaa !9
  %100 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %99, i32 0, i32 14
  %101 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %100, i64 0, i64 1
  %102 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %101, i32 0, i32 9
  %103 = load i32, ptr %102, align 4, !tbaa !29
  %104 = sext i32 %103 to i64
  %105 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %106 = load ptr, ptr %105, align 8, !tbaa !9
  %107 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %106, i32 0, i32 14
  %108 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %107, i64 0, i64 2
  %109 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %108, i32 0, i32 13
  %110 = load ptr, ptr %109, align 8, !tbaa !26
  %111 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %112 = load ptr, ptr %111, align 8, !tbaa !9
  %113 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %112, i32 0, i32 14
  %114 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %113, i64 0, i64 2
  %115 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %114, i32 0, i32 9
  %116 = load i32, ptr %115, align 4, !tbaa !29
  %117 = sext i32 %116 to i64
  %118 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %119 = load ptr, ptr %118, align 8, !tbaa !9
  %120 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %119, i32 0, i32 1
  %121 = load i32, ptr %120, align 8, !tbaa !20
  %122 = zext i32 %121 to i64
  %123 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %124 = load ptr, ptr %123, align 8, !tbaa !9
  %125 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %124, i32 0, i32 2
  %126 = load i32, ptr %125, align 4, !tbaa !24
  %127 = zext i32 %126 to i64
  %128 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %129 = getelementptr inbounds %"struct.Simd::View", ptr %128, i32 0, i32 5
  %130 = load ptr, ptr %129, align 8, !tbaa !30
  %131 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %132 = getelementptr inbounds %"struct.Simd::View", ptr %131, i32 0, i32 2
  %133 = load i64, ptr %132, align 8, !tbaa !31
  call void %78(ptr noundef %84, i64 noundef %91, ptr noundef %97, i64 noundef %104, ptr noundef %110, i64 noundef %117, i64 noundef %122, i64 noundef %127, ptr noundef %130, i64 noundef %133, i32 noundef 3)
  store i1 true, ptr %2, align 1
  br label %415

134:                                              ; preds = %70, %70
  %135 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %136 = load ptr, ptr %135, align 8, !tbaa !9
  %137 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %136, i32 0, i32 39
  %138 = load ptr, ptr %137, align 8, !tbaa !33
  %139 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %140 = load ptr, ptr %139, align 8, !tbaa !9
  %141 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %140, i32 0, i32 14
  %142 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %141, i64 0, i64 0
  %143 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %142, i32 0, i32 13
  %144 = load ptr, ptr %143, align 8, !tbaa !26
  %145 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %146 = load ptr, ptr %145, align 8, !tbaa !9
  %147 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %146, i32 0, i32 14
  %148 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %147, i64 0, i64 0
  %149 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %148, i32 0, i32 9
  %150 = load i32, ptr %149, align 4, !tbaa !29
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %153 = load ptr, ptr %152, align 8, !tbaa !9
  %154 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %153, i32 0, i32 14
  %155 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %154, i64 0, i64 1
  %156 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %155, i32 0, i32 13
  %157 = load ptr, ptr %156, align 8, !tbaa !26
  %158 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %159 = load ptr, ptr %158, align 8, !tbaa !9
  %160 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %159, i32 0, i32 14
  %161 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %160, i64 0, i64 1
  %162 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %161, i32 0, i32 9
  %163 = load i32, ptr %162, align 4, !tbaa !29
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %166 = load ptr, ptr %165, align 8, !tbaa !9
  %167 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %166, i32 0, i32 14
  %168 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %167, i64 0, i64 2
  %169 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %168, i32 0, i32 13
  %170 = load ptr, ptr %169, align 8, !tbaa !26
  %171 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %172 = load ptr, ptr %171, align 8, !tbaa !9
  %173 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %172, i32 0, i32 14
  %174 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %173, i64 0, i64 2
  %175 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %174, i32 0, i32 9
  %176 = load i32, ptr %175, align 4, !tbaa !29
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %179 = load ptr, ptr %178, align 8, !tbaa !9
  %180 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %179, i32 0, i32 1
  %181 = load i32, ptr %180, align 8, !tbaa !20
  %182 = zext i32 %181 to i64
  %183 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %184 = load ptr, ptr %183, align 8, !tbaa !9
  %185 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %184, i32 0, i32 2
  %186 = load i32, ptr %185, align 4, !tbaa !24
  %187 = zext i32 %186 to i64
  %188 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %189 = getelementptr inbounds %"struct.Simd::View", ptr %188, i32 0, i32 5
  %190 = load ptr, ptr %189, align 8, !tbaa !30
  %191 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %192 = getelementptr inbounds %"struct.Simd::View", ptr %191, i32 0, i32 2
  %193 = load i64, ptr %192, align 8, !tbaa !31
  call void %138(ptr noundef %144, i64 noundef %151, ptr noundef %157, i64 noundef %164, ptr noundef %170, i64 noundef %177, i64 noundef %182, i64 noundef %187, ptr noundef %190, i64 noundef %193, i8 noundef zeroext -1, i32 noundef 3)
  store i1 true, ptr %2, align 1
  br label %415

194:                                              ; preds = %70
  br label %195

195:                                              ; preds = %194, %66
  %196 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = call noundef zeroext i1 @_ZN4Simd4Base8IsYuv444ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832) %197)
  br i1 %198, label %199, label %324

199:                                              ; preds = %195
  %200 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %201 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %200, i32 0, i32 3
  %202 = load i32, ptr %201, align 4, !tbaa !25
  switch i32 %202, label %323 [
    i32 3, label %203
    i32 16, label %203
    i32 4, label %263
    i32 17, label %263
  ]

203:                                              ; preds = %199, %199
  %204 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %205 = load ptr, ptr %204, align 8, !tbaa !9
  %206 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %205, i32 0, i32 36
  %207 = load ptr, ptr %206, align 8, !tbaa !34
  %208 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %209 = load ptr, ptr %208, align 8, !tbaa !9
  %210 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %209, i32 0, i32 14
  %211 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %210, i64 0, i64 0
  %212 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %211, i32 0, i32 13
  %213 = load ptr, ptr %212, align 8, !tbaa !26
  %214 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %215 = load ptr, ptr %214, align 8, !tbaa !9
  %216 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %215, i32 0, i32 14
  %217 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %216, i64 0, i64 0
  %218 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %217, i32 0, i32 9
  %219 = load i32, ptr %218, align 4, !tbaa !29
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %222 = load ptr, ptr %221, align 8, !tbaa !9
  %223 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %222, i32 0, i32 14
  %224 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %223, i64 0, i64 1
  %225 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %224, i32 0, i32 13
  %226 = load ptr, ptr %225, align 8, !tbaa !26
  %227 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %228 = load ptr, ptr %227, align 8, !tbaa !9
  %229 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %228, i32 0, i32 14
  %230 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %229, i64 0, i64 1
  %231 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %230, i32 0, i32 9
  %232 = load i32, ptr %231, align 4, !tbaa !29
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %235 = load ptr, ptr %234, align 8, !tbaa !9
  %236 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %235, i32 0, i32 14
  %237 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %236, i64 0, i64 2
  %238 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %237, i32 0, i32 13
  %239 = load ptr, ptr %238, align 8, !tbaa !26
  %240 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %241 = load ptr, ptr %240, align 8, !tbaa !9
  %242 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %241, i32 0, i32 14
  %243 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %242, i64 0, i64 2
  %244 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %243, i32 0, i32 9
  %245 = load i32, ptr %244, align 4, !tbaa !29
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %248 = load ptr, ptr %247, align 8, !tbaa !9
  %249 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %248, i32 0, i32 1
  %250 = load i32, ptr %249, align 8, !tbaa !20
  %251 = zext i32 %250 to i64
  %252 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %253 = load ptr, ptr %252, align 8, !tbaa !9
  %254 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %253, i32 0, i32 2
  %255 = load i32, ptr %254, align 4, !tbaa !24
  %256 = zext i32 %255 to i64
  %257 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %258 = getelementptr inbounds %"struct.Simd::View", ptr %257, i32 0, i32 5
  %259 = load ptr, ptr %258, align 8, !tbaa !30
  %260 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %261 = getelementptr inbounds %"struct.Simd::View", ptr %260, i32 0, i32 2
  %262 = load i64, ptr %261, align 8, !tbaa !31
  call void %207(ptr noundef %213, i64 noundef %220, ptr noundef %226, i64 noundef %233, ptr noundef %239, i64 noundef %246, i64 noundef %251, i64 noundef %256, ptr noundef %259, i64 noundef %262, i32 noundef 3)
  store i1 true, ptr %2, align 1
  br label %415

263:                                              ; preds = %199, %199
  %264 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %265 = load ptr, ptr %264, align 8, !tbaa !9
  %266 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %265, i32 0, i32 38
  %267 = load ptr, ptr %266, align 8, !tbaa !35
  %268 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %269 = load ptr, ptr %268, align 8, !tbaa !9
  %270 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %269, i32 0, i32 14
  %271 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %270, i64 0, i64 0
  %272 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %271, i32 0, i32 13
  %273 = load ptr, ptr %272, align 8, !tbaa !26
  %274 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %275 = load ptr, ptr %274, align 8, !tbaa !9
  %276 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %275, i32 0, i32 14
  %277 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %276, i64 0, i64 0
  %278 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %277, i32 0, i32 9
  %279 = load i32, ptr %278, align 4, !tbaa !29
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %282 = load ptr, ptr %281, align 8, !tbaa !9
  %283 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %282, i32 0, i32 14
  %284 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %283, i64 0, i64 1
  %285 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %284, i32 0, i32 13
  %286 = load ptr, ptr %285, align 8, !tbaa !26
  %287 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %288 = load ptr, ptr %287, align 8, !tbaa !9
  %289 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %288, i32 0, i32 14
  %290 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %289, i64 0, i64 1
  %291 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %290, i32 0, i32 9
  %292 = load i32, ptr %291, align 4, !tbaa !29
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %295 = load ptr, ptr %294, align 8, !tbaa !9
  %296 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %295, i32 0, i32 14
  %297 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %296, i64 0, i64 2
  %298 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %297, i32 0, i32 13
  %299 = load ptr, ptr %298, align 8, !tbaa !26
  %300 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %301 = load ptr, ptr %300, align 8, !tbaa !9
  %302 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %301, i32 0, i32 14
  %303 = getelementptr inbounds [4 x %"struct.Simd::Base::JpegImgComp"], ptr %302, i64 0, i64 2
  %304 = getelementptr inbounds %"struct.Simd::Base::JpegImgComp", ptr %303, i32 0, i32 9
  %305 = load i32, ptr %304, align 4, !tbaa !29
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %308 = load ptr, ptr %307, align 8, !tbaa !9
  %309 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %308, i32 0, i32 1
  %310 = load i32, ptr %309, align 8, !tbaa !20
  %311 = zext i32 %310 to i64
  %312 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %313 = load ptr, ptr %312, align 8, !tbaa !9
  %314 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %313, i32 0, i32 2
  %315 = load i32, ptr %314, align 4, !tbaa !24
  %316 = zext i32 %315 to i64
  %317 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %318 = getelementptr inbounds %"struct.Simd::View", ptr %317, i32 0, i32 5
  %319 = load ptr, ptr %318, align 8, !tbaa !30
  %320 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %321 = getelementptr inbounds %"struct.Simd::View", ptr %320, i32 0, i32 2
  %322 = load i64, ptr %321, align 8, !tbaa !31
  call void %267(ptr noundef %273, i64 noundef %280, ptr noundef %286, i64 noundef %293, ptr noundef %299, i64 noundef %306, i64 noundef %311, i64 noundef %316, ptr noundef %319, i64 noundef %322, i8 noundef zeroext -1, i32 noundef 3)
  store i1 true, ptr %2, align 1
  br label %415

323:                                              ; preds = %199
  br label %324

324:                                              ; preds = %323, %195
  %325 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %326 = load ptr, ptr %325, align 8, !tbaa !9
  %327 = call noundef i32 @_ZN4Simd4BaseL10JpegToRgbaEPNS0_11JpegContextE(ptr noundef %326)
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %414

329:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  %330 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %331 = load ptr, ptr %330, align 8, !tbaa !9
  %332 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %331, i32 0, i32 1
  %333 = load i32, ptr %332, align 8, !tbaa !20
  %334 = mul i32 4, %333
  %335 = zext i32 %334 to i64
  store i64 %335, ptr %4, align 8, !tbaa !36
  %336 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %337 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %336, i32 0, i32 3
  %338 = load i32, ptr %337, align 4, !tbaa !25
  %339 = icmp eq i32 %338, 17
  br i1 %339, label %340, label %363

340:                                              ; preds = %329
  %341 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %342 = load ptr, ptr %341, align 8, !tbaa !9
  %343 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %342, i32 0, i32 32
  %344 = getelementptr inbounds %"struct.Simd::Array", ptr %343, i32 0, i32 0
  %345 = load ptr, ptr %344, align 8, !tbaa !37
  %346 = load i64, ptr %4, align 8, !tbaa !36
  %347 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %348 = load ptr, ptr %347, align 8, !tbaa !9
  %349 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %348, i32 0, i32 1
  %350 = load i32, ptr %349, align 8, !tbaa !20
  %351 = zext i32 %350 to i64
  %352 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %353 = load ptr, ptr %352, align 8, !tbaa !9
  %354 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %353, i32 0, i32 2
  %355 = load i32, ptr %354, align 4, !tbaa !24
  %356 = zext i32 %355 to i64
  %357 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %358 = getelementptr inbounds %"struct.Simd::View", ptr %357, i32 0, i32 5
  %359 = load ptr, ptr %358, align 8, !tbaa !30
  %360 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %361 = getelementptr inbounds %"struct.Simd::View", ptr %360, i32 0, i32 2
  %362 = load i64, ptr %361, align 8, !tbaa !31
  call void @_ZN4Simd4Base4CopyEPKhmmmmPhm(ptr noundef %345, i64 noundef %346, i64 noundef %351, i64 noundef %356, i64 noundef 4, ptr noundef %359, i64 noundef %362)
  br label %412

363:                                              ; preds = %329
  %364 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %365 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %364, i32 0, i32 3
  %366 = load i32, ptr %365, align 4, !tbaa !25
  %367 = icmp eq i32 %366, 1
  br i1 %367, label %383, label %368

368:                                              ; preds = %363
  %369 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %370 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %369, i32 0, i32 3
  %371 = load i32, ptr %370, align 4, !tbaa !25
  %372 = icmp eq i32 %371, 3
  br i1 %372, label %383, label %373

373:                                              ; preds = %368
  %374 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %375 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %374, i32 0, i32 3
  %376 = load i32, ptr %375, align 4, !tbaa !25
  %377 = icmp eq i32 %376, 4
  br i1 %377, label %383, label %378

378:                                              ; preds = %373
  %379 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 1
  %380 = getelementptr inbounds %"struct.Simd::ImageLoaderParam", ptr %379, i32 0, i32 3
  %381 = load i32, ptr %380, align 4, !tbaa !25
  %382 = icmp eq i32 %381, 16
  br i1 %382, label %383, label %410

383:                                              ; preds = %378, %373, %368, %363
  %384 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %385 = load ptr, ptr %384, align 8, !tbaa !9
  %386 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %385, i32 0, i32 40
  %387 = load ptr, ptr %386, align 8, !tbaa !38
  %388 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %389 = load ptr, ptr %388, align 8, !tbaa !9
  %390 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %389, i32 0, i32 32
  %391 = getelementptr inbounds %"struct.Simd::Array", ptr %390, i32 0, i32 0
  %392 = load ptr, ptr %391, align 8, !tbaa !37
  %393 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %394 = load ptr, ptr %393, align 8, !tbaa !9
  %395 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %394, i32 0, i32 1
  %396 = load i32, ptr %395, align 8, !tbaa !20
  %397 = zext i32 %396 to i64
  %398 = getelementptr inbounds %"class.Simd::Base::ImageJpegLoader", ptr %6, i32 0, i32 1
  %399 = load ptr, ptr %398, align 8, !tbaa !9
  %400 = getelementptr inbounds %"struct.Simd::Base::JpegContext", ptr %399, i32 0, i32 2
  %401 = load i32, ptr %400, align 4, !tbaa !24
  %402 = zext i32 %401 to i64
  %403 = load i64, ptr %4, align 8, !tbaa !36
  %404 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %405 = getelementptr inbounds %"struct.Simd::View", ptr %404, i32 0, i32 5
  %406 = load ptr, ptr %405, align 8, !tbaa !30
  %407 = getelementptr inbounds %"class.Simd::ImageLoader", ptr %6, i32 0, i32 3
  %408 = getelementptr inbounds %"struct.Simd::View", ptr %407, i32 0, i32 2
  %409 = load i64, ptr %408, align 8, !tbaa !31
  call void %387(ptr noundef %392, i64 noundef %397, i64 noundef %402, i64 noundef %403, ptr noundef %406, i64 noundef %409)
  br label %411

410:                                              ; preds = %378
  store i1 false, ptr %2, align 1
  store i32 1, ptr %5, align 4
  br label %413

411:                                              ; preds = %383
  br label %412

412:                                              ; preds = %411, %340
  store i1 true, ptr %2, align 1
  store i32 1, ptr %5, align 4
  br label %413

413:                                              ; preds = %412, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  br label %415

414:                                              ; preds = %324
  store i1 false, ptr %2, align 1
  br label %415

415:                                              ; preds = %414, %413, %263, %203, %134, %74, %36, %11
  %416 = load i1, ptr %2, align 1
  ret i1 %416
}

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN4Simd4BaseL10JpegDecodeEPNS0_11JpegContextE(ptr noundef) #1

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN4Simd4ViewINS_9AllocatorEE8RecreateEmmNS2_6FormatEPvm(ptr noundef nonnull align 8 dereferenceable(41), i64 noundef, i64 noundef, i32 noundef, ptr noundef, i64 noundef) #2 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZN4Simd9AllocatorIhE9AlignmentEv() #2 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4Simd4Base11CanCopyGrayERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832)) #3

declare void @_ZN4Simd4Base4CopyEPKhmmmmPhm(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef) #4

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4Simd4Base8IsYuv420ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832)) #3

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4Simd4Base8IsYuv444ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832)) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN4Simd4BaseL10JpegToRgbaEPNS0_11JpegContextE(ptr noundef) #1

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

!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, !6, i64 120}
!10 = !{!"_ZTSN4Simd4Base15ImageJpegLoaderE", !11, i64 0, !6, i64 120}
!11 = !{!"_ZTSN4Simd11ImageLoaderE", !12, i64 8, !16, i64 32, !17, i64 72}
!12 = !{!"_ZTSN4Simd16ImageLoaderParamE", !6, i64 0, !13, i64 8, !14, i64 16, !15, i64 20}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTS17SimdImageFileType", !7, i64 0}
!15 = !{!"_ZTS19SimdPixelFormatType", !7, i64 0}
!16 = !{!"_ZTSN4Simd17InputMemoryStreamE", !6, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32}
!17 = !{!"_ZTSN4Simd4ViewINS_9AllocatorEEE", !13, i64 0, !13, i64 8, !13, i64 16, !18, i64 24, !6, i64 32, !19, i64 40}
!18 = !{!"_ZTSN4Simd4ViewINS_9AllocatorEE6FormatE", !7, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!21, !22, i64 8}
!21 = !{!"_ZTSN4Simd4Base11JpegContextE", !6, i64 0, !22, i64 8, !22, i64 12, !22, i64 16, !22, i64 20, !7, i64 24, !7, i64 10840, !7, i64 21656, !22, i64 22168, !22, i64 22172, !22, i64 22176, !22, i64 22180, !22, i64 22184, !22, i64 22188, !7, i64 22192, !22, i64 22672, !22, i64 22676, !7, i64 22680, !22, i64 22684, !22, i64 22688, !22, i64 22692, !22, i64 22696, !22, i64 22700, !22, i64 22704, !22, i64 22708, !22, i64 22712, !22, i64 22716, !22, i64 22720, !22, i64 22724, !7, i64 22728, !22, i64 22744, !22, i64 22748, !23, i64 22752, !6, i64 22768, !6, i64 22776, !6, i64 22784, !6, i64 22792, !6, i64 22800, !6, i64 22808, !6, i64 22816, !6, i64 22824}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSN4Simd5ArrayIhEE", !6, i64 0, !13, i64 8}
!24 = !{!21, !22, i64 12}
!25 = !{!11, !15, i64 28}
!26 = !{!27, !6, i64 80}
!27 = !{!"_ZTSN4Simd4Base11JpegImgCompE", !22, i64 0, !22, i64 4, !22, i64 8, !22, i64 12, !22, i64 16, !22, i64 20, !22, i64 24, !22, i64 28, !22, i64 32, !22, i64 36, !22, i64 40, !23, i64 48, !23, i64 64, !6, i64 80, !28, i64 88, !6, i64 104, !22, i64 112, !22, i64 116}
!28 = !{!"_ZTSN4Simd5ArrayIsEE", !6, i64 0, !13, i64 8}
!29 = !{!27, !22, i64 36}
!30 = !{!11, !6, i64 104}
!31 = !{!11, !13, i64 88}
!32 = !{!21, !6, i64 22800}
!33 = !{!21, !6, i64 22816}
!34 = !{!21, !6, i64 22792}
!35 = !{!21, !6, i64 22808}
!36 = !{!13, !13, i64 0}
!37 = !{!21, !6, i64 22752}
!38 = !{!21, !6, i64 22824}


; 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"

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN4Simd4Base15ImageJpegLoader10FromStreamEv(ptr noundef nonnull align 8 dereferenceable(128) %0) unnamed_addr #0 align 2 {
  %2 = getelementptr inbounds i8, ptr %0, i64 120
  %3 = load ptr, ptr %2, align 8, !tbaa !5
  %4 = tail call noundef i32 @_ZN4Simd4BaseL10JpegDecodeEPNS0_11JpegContextE(ptr noundef %3)
  %.not = icmp eq i32 %4, 0
  br i1 %.not, label %197, label %5

5:                                                ; preds = %1
  %6 = getelementptr inbounds i8, ptr %0, i64 72
  %7 = load ptr, ptr %2, align 8, !tbaa !5
  %8 = getelementptr inbounds i8, ptr %7, i64 8
  %9 = load i32, ptr %8, align 8, !tbaa !19
  %10 = zext i32 %9 to i64
  %11 = getelementptr inbounds i8, ptr %7, i64 12
  %12 = load i32, ptr %11, align 4, !tbaa !23
  %13 = zext i32 %12 to i64
  %14 = getelementptr inbounds i8, ptr %0, i64 28
  %15 = load i32, ptr %14, align 4, !tbaa !24
  %16 = tail call noundef i64 @_ZN4Simd9AllocatorIhE9AlignmentEv()
  tail call void @_ZN4Simd4ViewINS_9AllocatorEE8RecreateEmmNS2_6FormatEPvm(ptr noundef nonnull align 8 dereferenceable(41) %6, i64 noundef %10, i64 noundef %13, i32 noundef %15, ptr noundef null, i64 noundef %16)
  %17 = load ptr, ptr %2, align 8, !tbaa !5
  %18 = tail call noundef zeroext i1 @_ZN4Simd4Base11CanCopyGrayERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832) %17)
  %19 = load i32, ptr %14, align 4
  %20 = icmp eq i32 %19, 1
  %or.cond = select i1 %18, i1 %20, i1 false
  %21 = load ptr, ptr %2, align 8, !tbaa !5
  br i1 %or.cond, label %22, label %38

22:                                               ; preds = %5
  %23 = getelementptr inbounds i8, ptr %21, i64 22272
  %24 = load ptr, ptr %23, align 8, !tbaa !25
  %25 = getelementptr inbounds i8, ptr %21, i64 22228
  %26 = load i32, ptr %25, align 4, !tbaa !28
  %27 = sext i32 %26 to i64
  %28 = getelementptr inbounds i8, ptr %21, i64 8
  %29 = load i32, ptr %28, align 8, !tbaa !19
  %30 = zext i32 %29 to i64
  %31 = getelementptr inbounds i8, ptr %21, i64 12
  %32 = load i32, ptr %31, align 4, !tbaa !23
  %33 = zext i32 %32 to i64
  %34 = getelementptr inbounds i8, ptr %0, i64 104
  %35 = load ptr, ptr %34, align 8, !tbaa !29
  %36 = getelementptr inbounds i8, ptr %0, i64 88
  %37 = load i64, ptr %36, align 8, !tbaa !30
  tail call void @_ZN4Simd4Base4CopyEPKhmmmmPhm(ptr noundef %24, i64 noundef %27, i64 noundef %30, i64 noundef %33, i64 noundef 1, ptr noundef %35, i64 noundef %37)
  br label %197

38:                                               ; preds = %5
  %39 = tail call noundef zeroext i1 @_ZN4Simd4Base8IsYuv420ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832) %21)
  br i1 %39, label %40, label %100

40:                                               ; preds = %38
  %41 = load i32, ptr %14, align 4, !tbaa !24
  switch i32 %41, label %100 [
    i32 3, label %42
    i32 16, label %42
    i32 4, label %71
    i32 17, label %71
  ]

42:                                               ; preds = %40, %40
  %43 = load ptr, ptr %2, align 8, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %43, i64 22800
  %45 = load ptr, ptr %44, align 8, !tbaa !31
  %46 = getelementptr inbounds i8, ptr %43, i64 22272
  %47 = load ptr, ptr %46, align 8, !tbaa !25
  %48 = getelementptr inbounds i8, ptr %43, i64 22228
  %49 = load i32, ptr %48, align 4, !tbaa !28
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds i8, ptr %43, i64 22392
  %52 = load ptr, ptr %51, align 8, !tbaa !25
  %53 = getelementptr inbounds i8, ptr %43, i64 22348
  %54 = load i32, ptr %53, align 4, !tbaa !28
  %55 = sext i32 %54 to i64
  %56 = getelementptr inbounds i8, ptr %43, i64 22512
  %57 = load ptr, ptr %56, align 8, !tbaa !25
  %58 = getelementptr inbounds i8, ptr %43, i64 22468
  %59 = load i32, ptr %58, align 4, !tbaa !28
  %60 = sext i32 %59 to i64
  %61 = getelementptr inbounds i8, ptr %43, i64 8
  %62 = load i32, ptr %61, align 8, !tbaa !19
  %63 = zext i32 %62 to i64
  %64 = getelementptr inbounds i8, ptr %43, i64 12
  %65 = load i32, ptr %64, align 4, !tbaa !23
  %66 = zext i32 %65 to i64
  %67 = getelementptr inbounds i8, ptr %0, i64 104
  %68 = load ptr, ptr %67, align 8, !tbaa !29
  %69 = getelementptr inbounds i8, ptr %0, i64 88
  %70 = load i64, ptr %69, align 8, !tbaa !30
  tail call void %45(ptr noundef %47, i64 noundef %50, ptr noundef %52, i64 noundef %55, ptr noundef %57, i64 noundef %60, i64 noundef %63, i64 noundef %66, ptr noundef %68, i64 noundef %70, i32 noundef 3)
  br label %197

71:                                               ; preds = %40, %40
  %72 = load ptr, ptr %2, align 8, !tbaa !5
  %73 = getelementptr inbounds i8, ptr %72, i64 22816
  %74 = load ptr, ptr %73, align 8, !tbaa !32
  %75 = getelementptr inbounds i8, ptr %72, i64 22272
  %76 = load ptr, ptr %75, align 8, !tbaa !25
  %77 = getelementptr inbounds i8, ptr %72, i64 22228
  %78 = load i32, ptr %77, align 4, !tbaa !28
  %79 = sext i32 %78 to i64
  %80 = getelementptr inbounds i8, ptr %72, i64 22392
  %81 = load ptr, ptr %80, align 8, !tbaa !25
  %82 = getelementptr inbounds i8, ptr %72, i64 22348
  %83 = load i32, ptr %82, align 4, !tbaa !28
  %84 = sext i32 %83 to i64
  %85 = getelementptr inbounds i8, ptr %72, i64 22512
  %86 = load ptr, ptr %85, align 8, !tbaa !25
  %87 = getelementptr inbounds i8, ptr %72, i64 22468
  %88 = load i32, ptr %87, align 4, !tbaa !28
  %89 = sext i32 %88 to i64
  %90 = getelementptr inbounds i8, ptr %72, i64 8
  %91 = load i32, ptr %90, align 8, !tbaa !19
  %92 = zext i32 %91 to i64
  %93 = getelementptr inbounds i8, ptr %72, i64 12
  %94 = load i32, ptr %93, align 4, !tbaa !23
  %95 = zext i32 %94 to i64
  %96 = getelementptr inbounds i8, ptr %0, i64 104
  %97 = load ptr, ptr %96, align 8, !tbaa !29
  %98 = getelementptr inbounds i8, ptr %0, i64 88
  %99 = load i64, ptr %98, align 8, !tbaa !30
  tail call void %74(ptr noundef %76, i64 noundef %79, ptr noundef %81, i64 noundef %84, ptr noundef %86, i64 noundef %89, i64 noundef %92, i64 noundef %95, ptr noundef %97, i64 noundef %99, i8 noundef zeroext -1, i32 noundef 3)
  br label %197

100:                                              ; preds = %40, %38
  %101 = load ptr, ptr %2, align 8, !tbaa !5
  %102 = tail call noundef zeroext i1 @_ZN4Simd4Base8IsYuv444ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832) %101)
  br i1 %102, label %103, label %163

103:                                              ; preds = %100
  %104 = load i32, ptr %14, align 4, !tbaa !24
  switch i32 %104, label %163 [
    i32 3, label %105
    i32 16, label %105
    i32 4, label %134
    i32 17, label %134
  ]

105:                                              ; preds = %103, %103
  %106 = load ptr, ptr %2, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i64 22792
  %108 = load ptr, ptr %107, align 8, !tbaa !33
  %109 = getelementptr inbounds i8, ptr %106, i64 22272
  %110 = load ptr, ptr %109, align 8, !tbaa !25
  %111 = getelementptr inbounds i8, ptr %106, i64 22228
  %112 = load i32, ptr %111, align 4, !tbaa !28
  %113 = sext i32 %112 to i64
  %114 = getelementptr inbounds i8, ptr %106, i64 22392
  %115 = load ptr, ptr %114, align 8, !tbaa !25
  %116 = getelementptr inbounds i8, ptr %106, i64 22348
  %117 = load i32, ptr %116, align 4, !tbaa !28
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds i8, ptr %106, i64 22512
  %120 = load ptr, ptr %119, align 8, !tbaa !25
  %121 = getelementptr inbounds i8, ptr %106, i64 22468
  %122 = load i32, ptr %121, align 4, !tbaa !28
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds i8, ptr %106, i64 8
  %125 = load i32, ptr %124, align 8, !tbaa !19
  %126 = zext i32 %125 to i64
  %127 = getelementptr inbounds i8, ptr %106, i64 12
  %128 = load i32, ptr %127, align 4, !tbaa !23
  %129 = zext i32 %128 to i64
  %130 = getelementptr inbounds i8, ptr %0, i64 104
  %131 = load ptr, ptr %130, align 8, !tbaa !29
  %132 = getelementptr inbounds i8, ptr %0, i64 88
  %133 = load i64, ptr %132, align 8, !tbaa !30
  tail call void %108(ptr noundef %110, i64 noundef %113, ptr noundef %115, i64 noundef %118, ptr noundef %120, i64 noundef %123, i64 noundef %126, i64 noundef %129, ptr noundef %131, i64 noundef %133, i32 noundef 3)
  br label %197

134:                                              ; preds = %103, %103
  %135 = load ptr, ptr %2, align 8, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %135, i64 22808
  %137 = load ptr, ptr %136, align 8, !tbaa !34
  %138 = getelementptr inbounds i8, ptr %135, i64 22272
  %139 = load ptr, ptr %138, align 8, !tbaa !25
  %140 = getelementptr inbounds i8, ptr %135, i64 22228
  %141 = load i32, ptr %140, align 4, !tbaa !28
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds i8, ptr %135, i64 22392
  %144 = load ptr, ptr %143, align 8, !tbaa !25
  %145 = getelementptr inbounds i8, ptr %135, i64 22348
  %146 = load i32, ptr %145, align 4, !tbaa !28
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds i8, ptr %135, i64 22512
  %149 = load ptr, ptr %148, align 8, !tbaa !25
  %150 = getelementptr inbounds i8, ptr %135, i64 22468
  %151 = load i32, ptr %150, align 4, !tbaa !28
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds i8, ptr %135, i64 8
  %154 = load i32, ptr %153, align 8, !tbaa !19
  %155 = zext i32 %154 to i64
  %156 = getelementptr inbounds i8, ptr %135, i64 12
  %157 = load i32, ptr %156, align 4, !tbaa !23
  %158 = zext i32 %157 to i64
  %159 = getelementptr inbounds i8, ptr %0, i64 104
  %160 = load ptr, ptr %159, align 8, !tbaa !29
  %161 = getelementptr inbounds i8, ptr %0, i64 88
  %162 = load i64, ptr %161, align 8, !tbaa !30
  tail call void %137(ptr noundef %139, i64 noundef %142, ptr noundef %144, i64 noundef %147, ptr noundef %149, i64 noundef %152, i64 noundef %155, i64 noundef %158, ptr noundef %160, i64 noundef %162, i8 noundef zeroext -1, i32 noundef 3)
  br label %197

163:                                              ; preds = %103, %100
  %164 = load ptr, ptr %2, align 8, !tbaa !5
  %165 = tail call noundef i32 @_ZN4Simd4BaseL10JpegToRgbaEPNS0_11JpegContextE(ptr noundef %164)
  %.not4 = icmp eq i32 %165, 0
  br i1 %.not4, label %197, label %166

166:                                              ; preds = %163
  %167 = load ptr, ptr %2, align 8, !tbaa !5
  %168 = getelementptr inbounds i8, ptr %167, i64 8
  %169 = load i32, ptr %168, align 8, !tbaa !19
  %170 = shl i32 %169, 2
  %171 = zext i32 %170 to i64
  %172 = load i32, ptr %14, align 4, !tbaa !24
  switch i32 %172, label %197 [
    i32 17, label %173
    i32 1, label %184
    i32 3, label %184
    i32 4, label %184
    i32 16, label %184
  ]

173:                                              ; preds = %166
  %174 = getelementptr inbounds i8, ptr %167, i64 22752
  %175 = load ptr, ptr %174, align 8, !tbaa !35
  %176 = zext i32 %169 to i64
  %177 = getelementptr inbounds i8, ptr %167, i64 12
  %178 = load i32, ptr %177, align 4, !tbaa !23
  %179 = zext i32 %178 to i64
  %180 = getelementptr inbounds i8, ptr %0, i64 104
  %181 = load ptr, ptr %180, align 8, !tbaa !29
  %182 = getelementptr inbounds i8, ptr %0, i64 88
  %183 = load i64, ptr %182, align 8, !tbaa !30
  tail call void @_ZN4Simd4Base4CopyEPKhmmmmPhm(ptr noundef %175, i64 noundef %171, i64 noundef %176, i64 noundef %179, i64 noundef 4, ptr noundef %181, i64 noundef %183)
  br label %197

184:                                              ; preds = %166, %166, %166, %166
  %185 = getelementptr inbounds i8, ptr %167, i64 22824
  %186 = load ptr, ptr %185, align 8, !tbaa !36
  %187 = getelementptr inbounds i8, ptr %167, i64 22752
  %188 = load ptr, ptr %187, align 8, !tbaa !35
  %189 = zext i32 %169 to i64
  %190 = getelementptr inbounds i8, ptr %167, i64 12
  %191 = load i32, ptr %190, align 4, !tbaa !23
  %192 = zext i32 %191 to i64
  %193 = getelementptr inbounds i8, ptr %0, i64 104
  %194 = load ptr, ptr %193, align 8, !tbaa !29
  %195 = getelementptr inbounds i8, ptr %0, i64 88
  %196 = load i64, ptr %195, align 8, !tbaa !30
  tail call void %186(ptr noundef %188, i64 noundef %189, i64 noundef %192, i64 noundef %171, ptr noundef %194, i64 noundef %196)
  br label %197

197:                                              ; preds = %163, %166, %184, %173, %1, %134, %105, %71, %42, %22
  %.1 = phi i1 [ true, %22 ], [ true, %134 ], [ true, %105 ], [ true, %71 ], [ true, %42 ], [ false, %1 ], [ false, %166 ], [ true, %184 ], [ true, %173 ], [ false, %163 ]
  ret i1 %.1
}

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN4Simd4BaseL10JpegDecodeEPNS0_11JpegContextE(ptr noundef) local_unnamed_addr #0

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN4Simd4ViewINS_9AllocatorEE8RecreateEmmNS2_6FormatEPvm(ptr noundef nonnull align 8 dereferenceable(41), i64 noundef, i64 noundef, i32 noundef, ptr noundef, i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZN4Simd9AllocatorIhE9AlignmentEv() local_unnamed_addr #1 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4Simd4Base11CanCopyGrayERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832)) local_unnamed_addr #2

declare void @_ZN4Simd4Base4CopyEPKhmmmmPhm(ptr noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4Simd4Base8IsYuv420ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832)) local_unnamed_addr #2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN4Simd4Base8IsYuv444ERKNS0_11JpegContextE(ptr noundef nonnull align 8 dereferenceable(22832)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN4Simd4BaseL10JpegToRgbaEPNS0_11JpegContextE(ptr noundef) local_unnamed_addr #0

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

!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, !9, i64 120}
!6 = !{!"_ZTSN4Simd4Base15ImageJpegLoaderE", !7, i64 0, !9, i64 120}
!7 = !{!"_ZTSN4Simd11ImageLoaderE", !8, i64 8, !15, i64 32, !16, i64 72}
!8 = !{!"_ZTSN4Simd16ImageLoaderParamE", !9, i64 0, !12, i64 8, !13, i64 16, !14, i64 20}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"_ZTS17SimdImageFileType", !10, i64 0}
!14 = !{!"_ZTS19SimdPixelFormatType", !10, i64 0}
!15 = !{!"_ZTSN4Simd17InputMemoryStreamE", !9, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32}
!16 = !{!"_ZTSN4Simd4ViewINS_9AllocatorEEE", !12, i64 0, !12, i64 8, !12, i64 16, !17, i64 24, !9, i64 32, !18, i64 40}
!17 = !{!"_ZTSN4Simd4ViewINS_9AllocatorEE6FormatE", !10, i64 0}
!18 = !{!"bool", !10, i64 0}
!19 = !{!20, !21, i64 8}
!20 = !{!"_ZTSN4Simd4Base11JpegContextE", !9, i64 0, !21, i64 8, !21, i64 12, !21, i64 16, !21, i64 20, !10, i64 24, !10, i64 10840, !10, i64 21656, !21, i64 22168, !21, i64 22172, !21, i64 22176, !21, i64 22180, !21, i64 22184, !21, i64 22188, !10, i64 22192, !21, i64 22672, !21, i64 22676, !10, i64 22680, !21, i64 22684, !21, i64 22688, !21, i64 22692, !21, i64 22696, !21, i64 22700, !21, i64 22704, !21, i64 22708, !21, i64 22712, !21, i64 22716, !21, i64 22720, !21, i64 22724, !10, i64 22728, !21, i64 22744, !21, i64 22748, !22, i64 22752, !9, i64 22768, !9, i64 22776, !9, i64 22784, !9, i64 22792, !9, i64 22800, !9, i64 22808, !9, i64 22816, !9, i64 22824}
!21 = !{!"int", !10, i64 0}
!22 = !{!"_ZTSN4Simd5ArrayIhEE", !9, i64 0, !12, i64 8}
!23 = !{!20, !21, i64 12}
!24 = !{!7, !14, i64 28}
!25 = !{!26, !9, i64 80}
!26 = !{!"_ZTSN4Simd4Base11JpegImgCompE", !21, i64 0, !21, i64 4, !21, i64 8, !21, i64 12, !21, i64 16, !21, i64 20, !21, i64 24, !21, i64 28, !21, i64 32, !21, i64 36, !21, i64 40, !22, i64 48, !22, i64 64, !9, i64 80, !27, i64 88, !9, i64 104, !21, i64 112, !21, i64 116}
!27 = !{!"_ZTSN4Simd5ArrayIsEE", !9, i64 0, !12, i64 8}
!28 = !{!26, !21, i64 36}
!29 = !{!7, !9, i64 104}
!30 = !{!7, !12, i64 88}
!31 = !{!20, !9, i64 22800}
!32 = !{!20, !9, i64 22816}
!33 = !{!20, !9, i64 22792}
!34 = !{!20, !9, i64 22808}
!35 = !{!20, !9, i64 22752}
!36 = !{!20, !9, i64 22824}


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