; LLVM IR from aap/librw :: src/ps2/ps2raster.ll (ZN2rw3ps215getRasterFormatEPNS_6RasterE)

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

%"struct.rw::Error" = type { i32, i32 }
%"struct.rw::Raster" = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32 }

@_ZN2rw3ps212cameraFormatE = external dso_local global i32, align 4
@_ZN2rw3ps211cameraDepthE = external dso_local global i32, align 4
@_ZN2rw3ps212cameraZDepthE = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [36 x i8], align 1
@__PRETTY_FUNCTION__._ZN2rw3ps215getRasterFormatEPNS_6RasterE = external hidden unnamed_addr constant [41 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: 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 i32 @_ZN2rw3ps215getRasterFormatEPNS_6RasterE(ptr noundef %0) #1 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"struct.rw::Error", align 4
  %8 = alloca i32, align 4
  %9 = alloca %"struct.rw::Error", align 4
  %10 = alloca %"struct.rw::Error", align 4
  %11 = alloca %"struct.rw::Error", align 4
  %12 = alloca %"struct.rw::Error", align 4
  %13 = alloca %"struct.rw::Error", align 4
  %14 = alloca %"struct.rw::Error", align 4
  %15 = alloca %"struct.rw::Error", align 4
  %16 = alloca %"struct.rw::Error", align 4
  %17 = alloca %"struct.rw::Error", align 4
  %18 = alloca %"struct.rw::Error", align 4
  %19 = alloca %"struct.rw::Error", align 4
  %20 = alloca %"struct.rw::Error", align 4
  %21 = alloca %"struct.rw::Error", align 4
  %22 = alloca %"struct.rw::Error", align 4
  %23 = alloca %"struct.rw::Error", align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  %24 = load ptr, ptr %3, align 8, !tbaa !5
  %25 = getelementptr inbounds %"struct.rw::Raster", ptr %24, i32 0, i32 4
  %26 = load i32, ptr %25, align 8, !tbaa !9
  %27 = and i32 %26, 3840
  store i32 %27, ptr %5, align 4, !tbaa !12
  %28 = load ptr, ptr %3, align 8, !tbaa !5
  %29 = getelementptr inbounds %"struct.rw::Raster", ptr %28, i32 0, i32 4
  %30 = load i32, ptr %29, align 8, !tbaa !9
  %31 = and i32 %30, 24576
  store i32 %31, ptr %4, align 4, !tbaa !12
  %32 = load ptr, ptr %3, align 8, !tbaa !5
  %33 = getelementptr inbounds %"struct.rw::Raster", ptr %32, i32 0, i32 4
  %34 = load i32, ptr %33, align 8, !tbaa !9
  %35 = and i32 %34, 36864
  store i32 %35, ptr %6, align 4, !tbaa !12
  %36 = load ptr, ptr %3, align 8, !tbaa !5
  %37 = getelementptr inbounds %"struct.rw::Raster", ptr %36, i32 0, i32 1
  %38 = load i32, ptr %37, align 4, !tbaa !13
  switch i32 %38, label %400 [
    i32 1, label %39
    i32 2, label %122
    i32 0, label %187
    i32 5, label %187
    i32 4, label %205
  ]

39:                                               ; preds = %1
  %40 = load i32, ptr %4, align 4, !tbaa !12
  %41 = icmp ne i32 %40, 0
  br i1 %41, label %45, label %42

42:                                               ; preds = %39
  %43 = load i32, ptr %6, align 4, !tbaa !12
  %44 = icmp ne i32 %43, 0
  br i1 %44, label %45, label %56

45:                                               ; preds = %42, %39
  br label %46

46:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  %47 = getelementptr inbounds %"struct.rw::Error", ptr %7, i32 0, i32 0
  store i32 2816, ptr %47, align 4, !tbaa !14
  %48 = getelementptr inbounds %"struct.rw::Error", ptr %7, i32 0, i32 1
  store i32 -2147483638, ptr %48, align 4, !tbaa !16
  %49 = load ptr, ptr @stderr, align 8, !tbaa !5
  %50 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %49, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 123) #5
  %51 = load ptr, ptr @stderr, align 8, !tbaa !5
  %52 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %53 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef @.str.3, ptr noundef %52) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  br label %54

54:                                               ; preds = %46
  br label %55

55:                                               ; preds = %54
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

56:                                               ; preds = %42
  %57 = load ptr, ptr %3, align 8, !tbaa !5
  %58 = getelementptr inbounds %"struct.rw::Raster", ptr %57, i32 0, i32 7
  %59 = load i32, ptr %58, align 4, !tbaa !17
  %60 = icmp ne i32 %59, 0
  br i1 %60, label %61, label %78

61:                                               ; preds = %56
  %62 = load ptr, ptr %3, align 8, !tbaa !5
  %63 = getelementptr inbounds %"struct.rw::Raster", ptr %62, i32 0, i32 7
  %64 = load i32, ptr %63, align 4, !tbaa !17
  %65 = load i32, ptr @_ZN2rw3ps212cameraZDepthE, align 4, !tbaa !12
  %66 = icmp ne i32 %64, %65
  br i1 %66, label %67, label %78

67:                                               ; preds = %61
  br label %68

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  %69 = getelementptr inbounds %"struct.rw::Error", ptr %9, i32 0, i32 0
  store i32 2816, ptr %69, align 4, !tbaa !14
  %70 = getelementptr inbounds %"struct.rw::Error", ptr %9, i32 0, i32 1
  store i32 -2147483638, ptr %70, align 4, !tbaa !16
  %71 = load ptr, ptr @stderr, align 8, !tbaa !5
  %72 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %71, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 127) #5
  %73 = load ptr, ptr @stderr, align 8, !tbaa !5
  %74 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %75 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %73, ptr noundef @.str.3, ptr noundef %74) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  br label %76

76:                                               ; preds = %68
  br label %77

77:                                               ; preds = %76
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

78:                                               ; preds = %61, %56
  %79 = load i32, ptr @_ZN2rw3ps212cameraZDepthE, align 4, !tbaa !12
  %80 = load ptr, ptr %3, align 8, !tbaa !5
  %81 = getelementptr inbounds %"struct.rw::Raster", ptr %80, i32 0, i32 7
  store i32 %79, ptr %81, align 4, !tbaa !17
  %82 = load i32, ptr %5, align 4, !tbaa !12
  %83 = icmp ne i32 %82, 0
  br i1 %83, label %84, label %112

84:                                               ; preds = %78
  %85 = load ptr, ptr %3, align 8, !tbaa !5
  %86 = getelementptr inbounds %"struct.rw::Raster", ptr %85, i32 0, i32 7
  %87 = load i32, ptr %86, align 4, !tbaa !17
  %88 = icmp eq i32 %87, 16
  br i1 %88, label %89, label %92

89:                                               ; preds = %84
  %90 = load i32, ptr %5, align 4, !tbaa !12
  %91 = icmp ne i32 %90, 1792
  br i1 %91, label %100, label %92

92:                                               ; preds = %89, %84
  %93 = load ptr, ptr %3, align 8, !tbaa !5
  %94 = getelementptr inbounds %"struct.rw::Raster", ptr %93, i32 0, i32 7
  %95 = load i32, ptr %94, align 4, !tbaa !17
  %96 = icmp eq i32 %95, 32
  br i1 %96, label %97, label %111

97:                                               ; preds = %92
  %98 = load i32, ptr %5, align 4, !tbaa !12
  %99 = icmp ne i32 %98, 2304
  br i1 %99, label %100, label %111

100:                                              ; preds = %97, %89
  br label %101

101:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #5
  %102 = getelementptr inbounds %"struct.rw::Error", ptr %10, i32 0, i32 0
  store i32 2816, ptr %102, align 4, !tbaa !14
  %103 = getelementptr inbounds %"struct.rw::Error", ptr %10, i32 0, i32 1
  store i32 -2147483638, ptr %103, align 4, !tbaa !16
  %104 = load ptr, ptr @stderr, align 8, !tbaa !5
  %105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %104, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 134) #5
  %106 = load ptr, ptr @stderr, align 8, !tbaa !5
  %107 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %106, ptr noundef @.str.3, ptr noundef %107) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  br label %109

109:                                              ; preds = %101
  br label %110

110:                                              ; preds = %109
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

111:                                              ; preds = %97, %92
  br label %112

112:                                              ; preds = %111, %78
  %113 = load ptr, ptr %3, align 8, !tbaa !5
  %114 = getelementptr inbounds %"struct.rw::Raster", ptr %113, i32 0, i32 7
  %115 = load i32, ptr %114, align 4, !tbaa !17
  %116 = icmp eq i32 %115, 16
  %117 = zext i1 %116 to i64
  %118 = select i1 %116, i32 1792, i32 2304
  store i32 %118, ptr %5, align 4, !tbaa !12
  %119 = load i32, ptr %5, align 4, !tbaa !12
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = getelementptr inbounds %"struct.rw::Raster", ptr %120, i32 0, i32 4
  store i32 %119, ptr %121, align 8, !tbaa !9
  br label %411

122:                                              ; preds = %1
  %123 = load i32, ptr %4, align 4, !tbaa !12
  %124 = icmp ne i32 %123, 0
  br i1 %124, label %128, label %125

125:                                              ; preds = %122
  %126 = load i32, ptr %6, align 4, !tbaa !12
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %139

128:                                              ; preds = %125, %122
  br label %129

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  %130 = getelementptr inbounds %"struct.rw::Error", ptr %11, i32 0, i32 0
  store i32 2816, ptr %130, align 4, !tbaa !14
  %131 = getelementptr inbounds %"struct.rw::Error", ptr %11, i32 0, i32 1
  store i32 -2147483638, ptr %131, align 4, !tbaa !16
  %132 = load ptr, ptr @stderr, align 8, !tbaa !5
  %133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %132, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 143) #5
  %134 = load ptr, ptr @stderr, align 8, !tbaa !5
  %135 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %134, ptr noundef @.str.3, ptr noundef %135) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  br label %137

137:                                              ; preds = %129
  br label %138

138:                                              ; preds = %137
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

139:                                              ; preds = %125
  %140 = load ptr, ptr %3, align 8, !tbaa !5
  %141 = getelementptr inbounds %"struct.rw::Raster", ptr %140, i32 0, i32 7
  %142 = load i32, ptr %141, align 4, !tbaa !17
  %143 = icmp ne i32 %142, 0
  br i1 %143, label %144, label %161

144:                                              ; preds = %139
  %145 = load ptr, ptr %3, align 8, !tbaa !5
  %146 = getelementptr inbounds %"struct.rw::Raster", ptr %145, i32 0, i32 7
  %147 = load i32, ptr %146, align 4, !tbaa !17
  %148 = load i32, ptr @_ZN2rw3ps211cameraDepthE, align 4, !tbaa !12
  %149 = icmp ne i32 %147, %148
  br i1 %149, label %150, label %161

150:                                              ; preds = %144
  br label %151

151:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  %152 = getelementptr inbounds %"struct.rw::Error", ptr %12, i32 0, i32 0
  store i32 2816, ptr %152, align 4, !tbaa !14
  %153 = getelementptr inbounds %"struct.rw::Error", ptr %12, i32 0, i32 1
  store i32 -2147483638, ptr %153, align 4, !tbaa !16
  %154 = load ptr, ptr @stderr, align 8, !tbaa !5
  %155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 147) #5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !5
  %157 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef @.str.3, ptr noundef %157) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  br label %159

159:                                              ; preds = %151
  br label %160

160:                                              ; preds = %159
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

161:                                              ; preds = %144, %139
  %162 = load i32, ptr @_ZN2rw3ps211cameraDepthE, align 4, !tbaa !12
  %163 = load ptr, ptr %3, align 8, !tbaa !5
  %164 = getelementptr inbounds %"struct.rw::Raster", ptr %163, i32 0, i32 7
  store i32 %162, ptr %164, align 4, !tbaa !17
  %165 = load i32, ptr %5, align 4, !tbaa !12
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %167, label %182

167:                                              ; preds = %161
  %168 = load i32, ptr %5, align 4, !tbaa !12
  %169 = load i32, ptr @_ZN2rw3ps212cameraFormatE, align 4, !tbaa !12
  %170 = icmp ne i32 %168, %169
  br i1 %170, label %171, label %182

171:                                              ; preds = %167
  br label %172

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %173 = getelementptr inbounds %"struct.rw::Error", ptr %13, i32 0, i32 0
  store i32 2816, ptr %173, align 4, !tbaa !14
  %174 = getelementptr inbounds %"struct.rw::Error", ptr %13, i32 0, i32 1
  store i32 -2147483638, ptr %174, align 4, !tbaa !16
  %175 = load ptr, ptr @stderr, align 8, !tbaa !5
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 152) #5
  %177 = load ptr, ptr @stderr, align 8, !tbaa !5
  %178 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef @.str.3, ptr noundef %178) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %13)
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  br label %180

180:                                              ; preds = %172
  br label %181

181:                                              ; preds = %180
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

182:                                              ; preds = %167, %161
  %183 = load i32, ptr @_ZN2rw3ps212cameraFormatE, align 4, !tbaa !12
  store i32 %183, ptr %5, align 4, !tbaa !12
  %184 = load i32, ptr %5, align 4, !tbaa !12
  %185 = load ptr, ptr %3, align 8, !tbaa !5
  %186 = getelementptr inbounds %"struct.rw::Raster", ptr %185, i32 0, i32 4
  store i32 %184, ptr %186, align 8, !tbaa !9
  br label %411

187:                                              ; preds = %1, %1
  %188 = load i32, ptr %4, align 4, !tbaa !12
  %189 = icmp ne i32 %188, 0
  br i1 %189, label %193, label %190

190:                                              ; preds = %187
  %191 = load i32, ptr %6, align 4, !tbaa !12
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %193, label %204

193:                                              ; preds = %190, %187
  br label %194

194:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  %195 = getelementptr inbounds %"struct.rw::Error", ptr %14, i32 0, i32 0
  store i32 2816, ptr %195, align 4, !tbaa !14
  %196 = getelementptr inbounds %"struct.rw::Error", ptr %14, i32 0, i32 1
  store i32 -2147483638, ptr %196, align 4, !tbaa !16
  %197 = load ptr, ptr @stderr, align 8, !tbaa !5
  %198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %197, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 161) #5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !5
  %200 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %199, ptr noundef @.str.3, ptr noundef %200) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  br label %202

202:                                              ; preds = %194
  br label %203

203:                                              ; preds = %202
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

204:                                              ; preds = %190
  br label %205

205:                                              ; preds = %204, %1
  %206 = load i32, ptr %5, align 4, !tbaa !12
  %207 = icmp eq i32 %206, 0
  br i1 %207, label %208, label %217

208:                                              ; preds = %205
  %209 = load ptr, ptr %3, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.rw::Raster", ptr %209, i32 0, i32 7
  %211 = load i32, ptr %210, align 4, !tbaa !17
  switch i32 %211, label %215 [
    i32 4, label %212
    i32 8, label %213
    i32 24, label %214
    i32 32, label %214
  ]

212:                                              ; preds = %208
  store i32 256, ptr %5, align 4, !tbaa !12
  store i32 16384, ptr %4, align 4, !tbaa !12
  br label %216

213:                                              ; preds = %208
  store i32 256, ptr %5, align 4, !tbaa !12
  store i32 8192, ptr %4, align 4, !tbaa !12
  br label %216

214:                                              ; preds = %208, %208
  store i32 1280, ptr %5, align 4, !tbaa !12
  store i32 0, ptr %4, align 4, !tbaa !12
  br label %216

215:                                              ; preds = %208
  store i32 256, ptr %5, align 4, !tbaa !12
  store i32 0, ptr %4, align 4, !tbaa !12
  br label %216

216:                                              ; preds = %215, %214, %213, %212
  br label %217

217:                                              ; preds = %216, %205
  %218 = load i32, ptr %5, align 4, !tbaa !12
  %219 = load i32, ptr %4, align 4, !tbaa !12
  %220 = or i32 %218, %219
  %221 = load i32, ptr %6, align 4, !tbaa !12
  %222 = or i32 %220, %221
  %223 = load ptr, ptr %3, align 8, !tbaa !5
  %224 = getelementptr inbounds %"struct.rw::Raster", ptr %223, i32 0, i32 4
  store i32 %222, ptr %224, align 8, !tbaa !9
  %225 = load i32, ptr %4, align 4, !tbaa !12
  %226 = icmp ne i32 %225, 0
  br i1 %226, label %227, label %328

227:                                              ; preds = %217
  %228 = load i32, ptr %4, align 4, !tbaa !12
  %229 = icmp eq i32 %228, 8192
  br i1 %229, label %230, label %271

230:                                              ; preds = %227
  %231 = load ptr, ptr %3, align 8, !tbaa !5
  %232 = getelementptr inbounds %"struct.rw::Raster", ptr %231, i32 0, i32 7
  %233 = load i32, ptr %232, align 4, !tbaa !17
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %251

235:                                              ; preds = %230
  %236 = load ptr, ptr %3, align 8, !tbaa !5
  %237 = getelementptr inbounds %"struct.rw::Raster", ptr %236, i32 0, i32 7
  %238 = load i32, ptr %237, align 4, !tbaa !17
  %239 = icmp ne i32 %238, 8
  br i1 %239, label %240, label %251

240:                                              ; preds = %235
  br label %241

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %242 = getelementptr inbounds %"struct.rw::Error", ptr %15, i32 0, i32 0
  store i32 2816, ptr %242, align 4, !tbaa !14
  %243 = getelementptr inbounds %"struct.rw::Error", ptr %15, i32 0, i32 1
  store i32 -2147483638, ptr %243, align 4, !tbaa !16
  %244 = load ptr, ptr @stderr, align 8, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 196) #5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !5
  %247 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %246, ptr noundef @.str.3, ptr noundef %247) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  br label %249

249:                                              ; preds = %241
  br label %250

250:                                              ; preds = %249
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

251:                                              ; preds = %235, %230
  %252 = load ptr, ptr %3, align 8, !tbaa !5
  %253 = getelementptr inbounds %"struct.rw::Raster", ptr %252, i32 0, i32 7
  store i32 8, ptr %253, align 4, !tbaa !17
  %254 = load i32, ptr %5, align 4, !tbaa !12
  %255 = icmp ne i32 %254, 256
  br i1 %255, label %256, label %270

256:                                              ; preds = %251
  %257 = load i32, ptr %5, align 4, !tbaa !12
  %258 = icmp ne i32 %257, 1280
  br i1 %258, label %259, label %270

259:                                              ; preds = %256
  br label %260

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  %261 = getelementptr inbounds %"struct.rw::Error", ptr %16, i32 0, i32 0
  store i32 2816, ptr %261, align 4, !tbaa !14
  %262 = getelementptr inbounds %"struct.rw::Error", ptr %16, i32 0, i32 1
  store i32 -2147483638, ptr %262, align 4, !tbaa !16
  %263 = load ptr, ptr @stderr, align 8, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 201) #5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !5
  %266 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef @.str.3, ptr noundef %266) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  br label %268

268:                                              ; preds = %260
  br label %269

269:                                              ; preds = %268
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

270:                                              ; preds = %256, %251
  br label %327

271:                                              ; preds = %227
  %272 = load i32, ptr %4, align 4, !tbaa !12
  %273 = icmp eq i32 %272, 16384
  br i1 %273, label %274, label %315

274:                                              ; preds = %271
  %275 = load ptr, ptr %3, align 8, !tbaa !5
  %276 = getelementptr inbounds %"struct.rw::Raster", ptr %275, i32 0, i32 7
  %277 = load i32, ptr %276, align 4, !tbaa !17
  %278 = icmp ne i32 %277, 0
  br i1 %278, label %279, label %295

279:                                              ; preds = %274
  %280 = load ptr, ptr %3, align 8, !tbaa !5
  %281 = getelementptr inbounds %"struct.rw::Raster", ptr %280, i32 0, i32 7
  %282 = load i32, ptr %281, align 4, !tbaa !17
  %283 = icmp ne i32 %282, 4
  br i1 %283, label %284, label %295

284:                                              ; preds = %279
  br label %285

285:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %286 = getelementptr inbounds %"struct.rw::Error", ptr %17, i32 0, i32 0
  store i32 2816, ptr %286, align 4, !tbaa !14
  %287 = getelementptr inbounds %"struct.rw::Error", ptr %17, i32 0, i32 1
  store i32 -2147483638, ptr %287, align 4, !tbaa !16
  %288 = load ptr, ptr @stderr, align 8, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 206) #5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !5
  %291 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef @.str.3, ptr noundef %291) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  br label %293

293:                                              ; preds = %285
  br label %294

294:                                              ; preds = %293
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

295:                                              ; preds = %279, %274
  %296 = load ptr, ptr %3, align 8, !tbaa !5
  %297 = getelementptr inbounds %"struct.rw::Raster", ptr %296, i32 0, i32 7
  store i32 4, ptr %297, align 4, !tbaa !17
  %298 = load i32, ptr %5, align 4, !tbaa !12
  %299 = icmp ne i32 %298, 256
  br i1 %299, label %300, label %314

300:                                              ; preds = %295
  %301 = load i32, ptr %5, align 4, !tbaa !12
  %302 = icmp ne i32 %301, 1280
  br i1 %302, label %303, label %314

303:                                              ; preds = %300
  br label %304

304:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %305 = getelementptr inbounds %"struct.rw::Error", ptr %18, i32 0, i32 0
  store i32 2816, ptr %305, align 4, !tbaa !14
  %306 = getelementptr inbounds %"struct.rw::Error", ptr %18, i32 0, i32 1
  store i32 -2147483638, ptr %306, align 4, !tbaa !16
  %307 = load ptr, ptr @stderr, align 8, !tbaa !5
  %308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 211) #5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !5
  %310 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef @.str.3, ptr noundef %310) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  br label %312

312:                                              ; preds = %304
  br label %313

313:                                              ; preds = %312
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

314:                                              ; preds = %300, %295
  br label %326

315:                                              ; preds = %271
  br label %316

316:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %317 = getelementptr inbounds %"struct.rw::Error", ptr %19, i32 0, i32 0
  store i32 2816, ptr %317, align 4, !tbaa !14
  %318 = getelementptr inbounds %"struct.rw::Error", ptr %19, i32 0, i32 1
  store i32 -2147483638, ptr %318, align 4, !tbaa !16
  %319 = load ptr, ptr @stderr, align 8, !tbaa !5
  %320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %319, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 215) #5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !5
  %322 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef @.str.3, ptr noundef %322) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  br label %324

324:                                              ; preds = %316
  br label %325

325:                                              ; preds = %324
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

326:                                              ; preds = %314
  br label %327

327:                                              ; preds = %326, %270
  br label %399

328:                                              ; preds = %217
  %329 = load i32, ptr %5, align 4, !tbaa !12
  %330 = icmp eq i32 %329, 256
  br i1 %330, label %331, label %355

331:                                              ; preds = %328
  %332 = load ptr, ptr %3, align 8, !tbaa !5
  %333 = getelementptr inbounds %"struct.rw::Raster", ptr %332, i32 0, i32 7
  %334 = load i32, ptr %333, align 4, !tbaa !17
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %352

336:                                              ; preds = %331
  %337 = load ptr, ptr %3, align 8, !tbaa !5
  %338 = getelementptr inbounds %"struct.rw::Raster", ptr %337, i32 0, i32 7
  %339 = load i32, ptr %338, align 4, !tbaa !17
  %340 = icmp ne i32 %339, 16
  br i1 %340, label %341, label %352

341:                                              ; preds = %336
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %343 = getelementptr inbounds %"struct.rw::Error", ptr %20, i32 0, i32 0
  store i32 2816, ptr %343, align 4, !tbaa !14
  %344 = getelementptr inbounds %"struct.rw::Error", ptr %20, i32 0, i32 1
  store i32 -2147483638, ptr %344, align 4, !tbaa !16
  %345 = load ptr, ptr @stderr, align 8, !tbaa !5
  %346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 220) #5
  %347 = load ptr, ptr @stderr, align 8, !tbaa !5
  %348 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %347, ptr noundef @.str.3, ptr noundef %348) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %20)
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  br label %350

350:                                              ; preds = %342
  br label %351

351:                                              ; preds = %350
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

352:                                              ; preds = %336, %331
  %353 = load ptr, ptr %3, align 8, !tbaa !5
  %354 = getelementptr inbounds %"struct.rw::Raster", ptr %353, i32 0, i32 7
  store i32 16, ptr %354, align 4, !tbaa !17
  br label %398

355:                                              ; preds = %328
  %356 = load i32, ptr %5, align 4, !tbaa !12
  %357 = icmp eq i32 %356, 1280
  br i1 %357, label %358, label %382

358:                                              ; preds = %355
  %359 = load ptr, ptr %3, align 8, !tbaa !5
  %360 = getelementptr inbounds %"struct.rw::Raster", ptr %359, i32 0, i32 7
  %361 = load i32, ptr %360, align 4, !tbaa !17
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %363, label %379

363:                                              ; preds = %358
  %364 = load ptr, ptr %3, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.rw::Raster", ptr %364, i32 0, i32 7
  %366 = load i32, ptr %365, align 4, !tbaa !17
  %367 = icmp ne i32 %366, 32
  br i1 %367, label %368, label %379

368:                                              ; preds = %363
  br label %369

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %370 = getelementptr inbounds %"struct.rw::Error", ptr %21, i32 0, i32 0
  store i32 2816, ptr %370, align 4, !tbaa !14
  %371 = getelementptr inbounds %"struct.rw::Error", ptr %21, i32 0, i32 1
  store i32 -2147483638, ptr %371, align 4, !tbaa !16
  %372 = load ptr, ptr @stderr, align 8, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %372, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 226) #5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !5
  %375 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.3, ptr noundef %375) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %377

377:                                              ; preds = %369
  br label %378

378:                                              ; preds = %377
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

379:                                              ; preds = %363, %358
  %380 = load ptr, ptr %3, align 8, !tbaa !5
  %381 = getelementptr inbounds %"struct.rw::Raster", ptr %380, i32 0, i32 7
  store i32 32, ptr %381, align 4, !tbaa !17
  br label %397

382:                                              ; preds = %355
  %383 = load i32, ptr %5, align 4, !tbaa !12
  %384 = icmp eq i32 %383, 1536
  br i1 %384, label %385, label %386

385:                                              ; preds = %382
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.2, i32 noundef 231, ptr noundef @__PRETTY_FUNCTION__._ZN2rw3ps215getRasterFormatEPNS_6RasterE) #6
  unreachable

386:                                              ; preds = %382
  br label %387

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %388 = getelementptr inbounds %"struct.rw::Error", ptr %22, i32 0, i32 0
  store i32 2816, ptr %388, align 4, !tbaa !14
  %389 = getelementptr inbounds %"struct.rw::Error", ptr %22, i32 0, i32 1
  store i32 -2147483638, ptr %389, align 4, !tbaa !16
  %390 = load ptr, ptr @stderr, align 8, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %390, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 238) #5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !5
  %393 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %392, ptr noundef @.str.3, ptr noundef %393) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  br label %395

395:                                              ; preds = %387
  br label %396

396:                                              ; preds = %395
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

397:                                              ; preds = %379
  br label %398

398:                                              ; preds = %397, %352
  br label %399

399:                                              ; preds = %398, %327
  br label %411

400:                                              ; preds = %1
  br label %401

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %402 = getelementptr inbounds %"struct.rw::Error", ptr %23, i32 0, i32 0
  store i32 2816, ptr %402, align 4, !tbaa !14
  %403 = getelementptr inbounds %"struct.rw::Error", ptr %23, i32 0, i32 1
  store i32 -2147483638, ptr %403, align 4, !tbaa !16
  %404 = load ptr, ptr @stderr, align 8, !tbaa !5
  %405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 243) #5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !5
  %407 = call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %406, ptr noundef @.str.3, ptr noundef %407) #5
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %409

409:                                              ; preds = %401
  br label %410

410:                                              ; preds = %409
  store i32 0, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

411:                                              ; preds = %399, %182, %112
  store i32 1, ptr %2, align 4
  store i32 1, ptr %8, align 4
  br label %412

412:                                              ; preds = %411, %410, %396, %378, %351, %325, %313, %294, %269, %250, %203, %181, %160, %138, %110, %77, %55
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  %413 = load i32, ptr %2, align 4
  ret i32 %413
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #2

declare noundef ptr @_ZN2rw9dbgsprintEjz(i32 noundef, ...) #3

declare void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef) #3

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

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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 #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, !11, i64 16}
!10 = !{!"_ZTSN2rw6RasterE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64, !11, i64 68, !11, i64 72, !6, i64 80, !11, i64 88, !11, i64 92}
!11 = !{!"int", !7, i64 0}
!12 = !{!11, !11, i64 0}
!13 = !{!10, !11, i64 4}
!14 = !{!15, !11, i64 0}
!15 = !{!"_ZTSN2rw5ErrorE", !11, i64 0, !11, i64 4}
!16 = !{!15, !11, i64 4}
!17 = !{!10, !11, i64 28}


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

%"struct.rw::Error" = type { i32, i32 }

@_ZN2rw3ps212cameraFormatE = external dso_local local_unnamed_addr global i32, align 4
@_ZN2rw3ps211cameraDepthE = external dso_local local_unnamed_addr global i32, align 4
@_ZN2rw3ps212cameraZDepthE = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [36 x i8], align 1
@__PRETTY_FUNCTION__._ZN2rw3ps215getRasterFormatEPNS_6RasterE = external hidden unnamed_addr constant [41 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 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 range(i32 0, 2) i32 @_ZN2rw3ps215getRasterFormatEPNS_6RasterE(ptr nocapture noundef %0) local_unnamed_addr #1 {
  %2 = alloca %"struct.rw::Error", align 4
  %3 = alloca %"struct.rw::Error", align 4
  %4 = alloca %"struct.rw::Error", align 4
  %5 = alloca %"struct.rw::Error", align 4
  %6 = alloca %"struct.rw::Error", align 4
  %7 = alloca %"struct.rw::Error", align 4
  %8 = alloca %"struct.rw::Error", align 4
  %9 = alloca %"struct.rw::Error", align 4
  %10 = alloca %"struct.rw::Error", align 4
  %11 = alloca %"struct.rw::Error", align 4
  %12 = alloca %"struct.rw::Error", align 4
  %13 = alloca %"struct.rw::Error", align 4
  %14 = alloca %"struct.rw::Error", align 4
  %15 = alloca %"struct.rw::Error", align 4
  %16 = alloca %"struct.rw::Error", align 4
  %17 = alloca %"struct.rw::Error", align 4
  %18 = getelementptr inbounds i8, ptr %0, i64 16
  %19 = load i32, ptr %18, align 8, !tbaa !5
  %20 = and i32 %19, 3840
  %21 = and i32 %19, 36864
  %22 = getelementptr inbounds i8, ptr %0, i64 4
  %23 = load i32, ptr %22, align 4, !tbaa !11
  switch i32 %23, label %191 [
    i32 1, label %24
    i32 2, label %61
    i32 0, label %91
    i32 5, label %91
    i32 4, label %100
  ]

24:                                               ; preds = %1
  %25 = and i32 %19, 61440
  %or.cond.not = icmp eq i32 %25, 0
  br i1 %or.cond.not, label %33, label %26

26:                                               ; preds = %24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #6
  store i32 2816, ptr %2, align 4, !tbaa !12
  %27 = getelementptr inbounds i8, ptr %2, i64 4
  store i32 -2147483638, ptr %27, align 4, !tbaa !14
  %28 = load ptr, ptr @stderr, align 8, !tbaa !15
  %29 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 123) #7
  %30 = load ptr, ptr @stderr, align 8, !tbaa !15
  %31 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %32 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef nonnull @.str.3, ptr noundef %31) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %2)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #6
  br label %198

33:                                               ; preds = %24
  %34 = getelementptr inbounds i8, ptr %0, i64 28
  %35 = load i32, ptr %34, align 4, !tbaa !16
  %.not90 = icmp eq i32 %35, 0
  %36 = load i32, ptr @_ZN2rw3ps212cameraZDepthE, align 4
  %.not91 = icmp eq i32 %35, %36
  %or.cond = select i1 %.not90, i1 true, i1 %.not91
  br i1 %or.cond, label %44, label %37

37:                                               ; preds = %33
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #6
  store i32 2816, ptr %3, align 4, !tbaa !12
  %38 = getelementptr inbounds i8, ptr %3, i64 4
  store i32 -2147483638, ptr %38, align 4, !tbaa !14
  %39 = load ptr, ptr @stderr, align 8, !tbaa !15
  %40 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %39, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 127) #7
  %41 = load ptr, ptr @stderr, align 8, !tbaa !15
  %42 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %43 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %41, ptr noundef nonnull @.str.3, ptr noundef %42) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %3)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #6
  br label %198

44:                                               ; preds = %33
  store i32 %36, ptr %34, align 4, !tbaa !16
  %.not92 = icmp eq i32 %20, 0
  br i1 %.not92, label %58, label %45

45:                                               ; preds = %44
  %46 = icmp eq i32 %36, 16
  %47 = icmp ne i32 %20, 1792
  %or.cond3 = select i1 %46, i1 %47, i1 false
  br i1 %or.cond3, label %51, label %48

48:                                               ; preds = %45
  %49 = icmp eq i32 %36, 32
  %50 = icmp ne i32 %20, 2304
  %or.cond5 = select i1 %49, i1 %50, i1 false
  br i1 %or.cond5, label %51, label %58

51:                                               ; preds = %45, %48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #6
  store i32 2816, ptr %4, align 4, !tbaa !12
  %52 = getelementptr inbounds i8, ptr %4, i64 4
  store i32 -2147483638, ptr %52, align 4, !tbaa !14
  %53 = load ptr, ptr @stderr, align 8, !tbaa !15
  %54 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %53, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 134) #7
  %55 = load ptr, ptr @stderr, align 8, !tbaa !15
  %56 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %57 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef nonnull @.str.3, ptr noundef %56) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #6
  br label %198

58:                                               ; preds = %48, %44
  %59 = icmp eq i32 %36, 16
  %60 = select i1 %59, i32 1792, i32 2304
  store i32 %60, ptr %18, align 8, !tbaa !5
  br label %198

61:                                               ; preds = %1
  %62 = and i32 %19, 61440
  %or.cond7.not = icmp eq i32 %62, 0
  br i1 %or.cond7.not, label %70, label %63

63:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  store i32 2816, ptr %5, align 4, !tbaa !12
  %64 = getelementptr inbounds i8, ptr %5, i64 4
  store i32 -2147483638, ptr %64, align 4, !tbaa !14
  %65 = load ptr, ptr @stderr, align 8, !tbaa !15
  %66 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %65, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 143) #7
  %67 = load ptr, ptr @stderr, align 8, !tbaa !15
  %68 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %69 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %67, ptr noundef nonnull @.str.3, ptr noundef %68) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %5)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  br label %198

70:                                               ; preds = %61
  %71 = getelementptr inbounds i8, ptr %0, i64 28
  %72 = load i32, ptr %71, align 4, !tbaa !16
  %.not86 = icmp eq i32 %72, 0
  %73 = load i32, ptr @_ZN2rw3ps211cameraDepthE, align 4
  %.not87 = icmp eq i32 %72, %73
  %or.cond93 = select i1 %.not86, i1 true, i1 %.not87
  br i1 %or.cond93, label %81, label %74

74:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  store i32 2816, ptr %6, align 4, !tbaa !12
  %75 = getelementptr inbounds i8, ptr %6, i64 4
  store i32 -2147483638, ptr %75, align 4, !tbaa !14
  %76 = load ptr, ptr @stderr, align 8, !tbaa !15
  %77 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 147) #7
  %78 = load ptr, ptr @stderr, align 8, !tbaa !15
  %79 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %80 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %78, ptr noundef nonnull @.str.3, ptr noundef %79) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  br label %198

81:                                               ; preds = %70
  store i32 %73, ptr %71, align 4, !tbaa !16
  %.not88 = icmp eq i32 %20, 0
  %82 = load i32, ptr @_ZN2rw3ps212cameraFormatE, align 4
  %.not89 = icmp eq i32 %20, %82
  %or.cond94 = select i1 %.not88, i1 true, i1 %.not89
  br i1 %or.cond94, label %90, label %83

83:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  store i32 2816, ptr %7, align 4, !tbaa !12
  %84 = getelementptr inbounds i8, ptr %7, i64 4
  store i32 -2147483638, ptr %84, align 4, !tbaa !14
  %85 = load ptr, ptr @stderr, align 8, !tbaa !15
  %86 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %85, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 152) #7
  %87 = load ptr, ptr @stderr, align 8, !tbaa !15
  %88 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef nonnull @.str.3, ptr noundef %88) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  br label %198

90:                                               ; preds = %81
  store i32 %82, ptr %18, align 8, !tbaa !5
  br label %198

91:                                               ; preds = %1, %1
  %92 = and i32 %19, 61440
  %or.cond9.not = icmp eq i32 %92, 0
  br i1 %or.cond9.not, label %100, label %93

93:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  store i32 2816, ptr %8, align 4, !tbaa !12
  %94 = getelementptr inbounds i8, ptr %8, i64 4
  store i32 -2147483638, ptr %94, align 4, !tbaa !14
  %95 = load ptr, ptr @stderr, align 8, !tbaa !15
  %96 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 161) #7
  %97 = load ptr, ptr @stderr, align 8, !tbaa !15
  %98 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %99 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %97, ptr noundef nonnull @.str.3, ptr noundef %98) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  br label %198

100:                                              ; preds = %91, %1
  %101 = icmp eq i32 %20, 0
  br i1 %101, label %102, label %111

102:                                              ; preds = %100
  %103 = getelementptr inbounds i8, ptr %0, i64 28
  %104 = load i32, ptr %103, align 4, !tbaa !16
  %105 = add i32 %104, -4
  %106 = tail call i32 @llvm.fshl.i32(i32 %105, i32 %105, i32 30)
  switch i32 %106, label %109 [
    i32 0, label %.thread102
    i32 1, label %.thread98
    i32 5, label %.thread
    i32 7, label %.thread
  ]

.thread102:                                       ; preds = %102
  %107 = or disjoint i32 %21, 16640
  store i32 %107, ptr %18, align 8, !tbaa !5
  br label %134

.thread98:                                        ; preds = %102
  %108 = or disjoint i32 %21, 8448
  store i32 %108, ptr %18, align 8, !tbaa !5
  br label %115

109:                                              ; preds = %102
  br label %.thread

.thread:                                          ; preds = %109, %102, %102
  %.069.ph = phi i32 [ 256, %109 ], [ 1280, %102 ], [ 1280, %102 ]
  %110 = or disjoint i32 %21, %.069.ph
  store i32 %110, ptr %18, align 8, !tbaa !5
  br label %160

111:                                              ; preds = %100
  %112 = and i32 %19, 65280
  store i32 %112, ptr %18, align 8, !tbaa !5
  %113 = lshr i32 %19, 13
  %114 = and i32 %113, 3
  switch i32 %114, label %default.unreachable [
    i32 0, label %160
    i32 1, label %115
    i32 2, label %134
    i32 3, label %153
  ]

115:                                              ; preds = %.thread98, %111
  %.069101 = phi i32 [ 256, %.thread98 ], [ %20, %111 ]
  %116 = getelementptr inbounds i8, ptr %0, i64 28
  %117 = load i32, ptr %116, align 4, !tbaa !16
  switch i32 %117, label %118 [
    i32 0, label %125
    i32 8, label %125
  ]

118:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  store i32 2816, ptr %9, align 4, !tbaa !12
  %119 = getelementptr inbounds i8, ptr %9, i64 4
  store i32 -2147483638, ptr %119, align 4, !tbaa !14
  %120 = load ptr, ptr @stderr, align 8, !tbaa !15
  %121 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 196) #7
  %122 = load ptr, ptr @stderr, align 8, !tbaa !15
  %123 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %124 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef nonnull @.str.3, ptr noundef %123) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %198

125:                                              ; preds = %115, %115
  store i32 8, ptr %116, align 4, !tbaa !16
  %126 = and i32 %.069101, 2816
  %or.cond11.not = icmp eq i32 %126, 256
  br i1 %or.cond11.not, label %198, label %127

127:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  store i32 2816, ptr %10, align 4, !tbaa !12
  %128 = getelementptr inbounds i8, ptr %10, i64 4
  store i32 -2147483638, ptr %128, align 4, !tbaa !14
  %129 = load ptr, ptr @stderr, align 8, !tbaa !15
  %130 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 201) #7
  %131 = load ptr, ptr @stderr, align 8, !tbaa !15
  %132 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %133 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %131, ptr noundef nonnull @.str.3, ptr noundef %132) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %198

134:                                              ; preds = %.thread102, %111
  %.069105 = phi i32 [ 256, %.thread102 ], [ %20, %111 ]
  %135 = getelementptr inbounds i8, ptr %0, i64 28
  %136 = load i32, ptr %135, align 4, !tbaa !16
  switch i32 %136, label %137 [
    i32 0, label %144
    i32 4, label %144
  ]

137:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  store i32 2816, ptr %11, align 4, !tbaa !12
  %138 = getelementptr inbounds i8, ptr %11, i64 4
  store i32 -2147483638, ptr %138, align 4, !tbaa !14
  %139 = load ptr, ptr @stderr, align 8, !tbaa !15
  %140 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %139, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 206) #7
  %141 = load ptr, ptr @stderr, align 8, !tbaa !15
  %142 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %143 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %141, ptr noundef nonnull @.str.3, ptr noundef %142) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %198

144:                                              ; preds = %134, %134
  store i32 4, ptr %135, align 4, !tbaa !16
  %145 = and i32 %.069105, 2816
  %or.cond13.not = icmp eq i32 %145, 256
  br i1 %or.cond13.not, label %198, label %146

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  store i32 2816, ptr %12, align 4, !tbaa !12
  %147 = getelementptr inbounds i8, ptr %12, i64 4
  store i32 -2147483638, ptr %147, align 4, !tbaa !14
  %148 = load ptr, ptr @stderr, align 8, !tbaa !15
  %149 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 211) #7
  %150 = load ptr, ptr @stderr, align 8, !tbaa !15
  %151 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %152 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %150, ptr noundef nonnull @.str.3, ptr noundef %151) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %198

default.unreachable:                              ; preds = %111
  unreachable

153:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  store i32 2816, ptr %13, align 4, !tbaa !12
  %154 = getelementptr inbounds i8, ptr %13, i64 4
  store i32 -2147483638, ptr %154, align 4, !tbaa !14
  %155 = load ptr, ptr @stderr, align 8, !tbaa !15
  %156 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 215) #7
  %157 = load ptr, ptr @stderr, align 8, !tbaa !15
  %158 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %159 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull @.str.3, ptr noundef %158) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %13)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %198

160:                                              ; preds = %.thread, %111
  %.06997 = phi i32 [ %.069.ph, %.thread ], [ %20, %111 ]
  switch i32 %.06997, label %184 [
    i32 256, label %161
    i32 1280, label %172
    i32 1536, label %183
  ]

161:                                              ; preds = %160
  %162 = getelementptr inbounds i8, ptr %0, i64 28
  %163 = load i32, ptr %162, align 4, !tbaa !16
  switch i32 %163, label %164 [
    i32 0, label %171
    i32 16, label %171
  ]

164:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  store i32 2816, ptr %14, align 4, !tbaa !12
  %165 = getelementptr inbounds i8, ptr %14, i64 4
  store i32 -2147483638, ptr %165, align 4, !tbaa !14
  %166 = load ptr, ptr @stderr, align 8, !tbaa !15
  %167 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 220) #7
  %168 = load ptr, ptr @stderr, align 8, !tbaa !15
  %169 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %170 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef nonnull @.str.3, ptr noundef %169) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  br label %198

171:                                              ; preds = %161, %161
  store i32 16, ptr %162, align 4, !tbaa !16
  br label %198

172:                                              ; preds = %160
  %173 = getelementptr inbounds i8, ptr %0, i64 28
  %174 = load i32, ptr %173, align 4, !tbaa !16
  switch i32 %174, label %175 [
    i32 0, label %182
    i32 32, label %182
  ]

175:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  store i32 2816, ptr %15, align 4, !tbaa !12
  %176 = getelementptr inbounds i8, ptr %15, i64 4
  store i32 -2147483638, ptr %176, align 4, !tbaa !14
  %177 = load ptr, ptr @stderr, align 8, !tbaa !15
  %178 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 226) #7
  %179 = load ptr, ptr @stderr, align 8, !tbaa !15
  %180 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %181 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull @.str.3, ptr noundef %180) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %198

182:                                              ; preds = %172, %172
  store i32 32, ptr %173, align 4, !tbaa !16
  br label %198

183:                                              ; preds = %160
  tail call void @__assert_fail(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, i32 noundef 231, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN2rw3ps215getRasterFormatEPNS_6RasterE) #8
  unreachable

184:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  store i32 2816, ptr %16, align 4, !tbaa !12
  %185 = getelementptr inbounds i8, ptr %16, i64 4
  store i32 -2147483638, ptr %185, align 4, !tbaa !14
  %186 = load ptr, ptr @stderr, align 8, !tbaa !15
  %187 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 238) #7
  %188 = load ptr, ptr @stderr, align 8, !tbaa !15
  %189 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %190 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef nonnull @.str.3, ptr noundef %189) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  br label %198

191:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  store i32 2816, ptr %17, align 4, !tbaa !12
  %192 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 -2147483638, ptr %192, align 4, !tbaa !14
  %193 = load ptr, ptr @stderr, align 8, !tbaa !15
  %194 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 243) #7
  %195 = load ptr, ptr @stderr, align 8, !tbaa !15
  %196 = tail call noundef ptr (i32, ...) @_ZN2rw9dbgsprintEjz(i32 noundef -2147483638)
  %197 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull @.str.3, ptr noundef %196) #7
  call void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef nonnull %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  br label %198

198:                                              ; preds = %58, %90, %171, %182, %125, %144, %191, %184, %175, %164, %153, %146, %137, %127, %118, %93, %83, %74, %63, %51, %37, %26
  %.0 = phi i32 [ 0, %191 ], [ 0, %118 ], [ 0, %127 ], [ 0, %137 ], [ 0, %146 ], [ 0, %153 ], [ 0, %164 ], [ 0, %175 ], [ 0, %184 ], [ 0, %93 ], [ 0, %63 ], [ 0, %74 ], [ 0, %83 ], [ 0, %26 ], [ 0, %37 ], [ 0, %51 ], [ 1, %144 ], [ 1, %125 ], [ 1, %182 ], [ 1, %171 ], [ 1, %90 ], [ 1, %58 ]
  ret i32 %.0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #2

declare noundef ptr @_ZN2rw9dbgsprintEjz(i32 noundef, ...) local_unnamed_addr #3

declare void @_ZN2rw8setErrorEPNS_5ErrorE(ptr noundef) local_unnamed_addr #3

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

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

attributes #0 = { mustprogress 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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }
attributes #7 = { cold nounwind }
attributes #8 = { 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, !7, i64 16}
!6 = !{!"_ZTSN2rw6RasterE", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !7, i64 64, !7, i64 68, !7, i64 72, !10, i64 80, !7, i64 88, !7, i64 92}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!6, !7, i64 4}
!12 = !{!13, !7, i64 0}
!13 = !{!"_ZTSN2rw5ErrorE", !7, i64 0, !7, i64 4}
!14 = !{!13, !7, i64 4}
!15 = !{!10, !10, i64 0}
!16 = !{!6, !7, i64 28}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass