; ModuleID = './core.bc' | |
source_filename = "src/core.c" | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%struct.image = type { i8*, i64, i64 } | |
; Function Attrs: alwaysinline norecurse nounwind readnone uwtable | |
define i8* @at(i8* readnone, i64, i64, i64) local_unnamed_addr #0 { | |
%5 = mul nsw i64 %3, %1 | |
%6 = add nsw i64 %5, %2 | |
%7 = getelementptr inbounds i8, i8* %0, i64 %6 | |
ret i8* %7 | |
} | |
; Function Attrs: alwaysinline nounwind uwtable | |
define i64 @core_isqrt(i64) local_unnamed_addr #1 { | |
%2 = sitofp i64 %0 to double | |
%3 = tail call double @sqrt(double %2) #5 | |
%4 = fptosi double %3 to i64 | |
ret i64 %4 | |
} | |
; Function Attrs: alwaysinline nounwind | |
declare double @sqrt(double) local_unnamed_addr #2 | |
; Function Attrs: alwaysinline inlinehint nounwind uwtable | |
define i64 @core_input_at(i64, i64, %struct.image* nocapture readonly, i64, i64) local_unnamed_addr #3 { | |
%6 = getelementptr inbounds %struct.image, %struct.image* %2, i64 %4, i32 1 | |
%7 = load i64, i64* %6, align 8 | |
%8 = icmp sle i64 %7, %0 | |
%9 = icmp slt i64 %0, 0 | |
%or.cond = or i1 %9, %8 | |
br i1 %or.cond, label %21, label %10 | |
; <label>:10: ; preds = %5 | |
%11 = getelementptr inbounds %struct.image, %struct.image* %2, i64 %4, i32 2 | |
%12 = load i64, i64* %11, align 8 | |
%13 = icmp sle i64 %12, %1 | |
%14 = icmp slt i64 %1, 0 | |
%or.cond1 = or i1 %14, %13 | |
br i1 %or.cond1, label %21, label %15 | |
; <label>:15: ; preds = %10 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 %4, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%16 = mul nsw i64 %7, %1 | |
%17 = add nsw i64 %16, %0 | |
%18 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %17 | |
%19 = load i8, i8* %18, align 1 | |
%20 = zext i8 %19 to i64 | |
br label %21 | |
; <label>:21: ; preds = %10, %5, %15 | |
%.0 = phi i64 [ %20, %15 ], [ 0, %5 ], [ 0, %10 ] | |
ret i64 %.0 | |
} | |
; Function Attrs: alwaysinline nounwind uwtable | |
define void @jitfunction(i64, i64, i8*, i8** nocapture readonly, i64) local_unnamed_addr #1 { | |
%6 = alloca %struct.image, i64 %4, align 16 | |
%7 = icmp eq i64 %4, 0 | |
br i1 %7, label %.preheader312, label %.lr.ph318.preheader | |
.lr.ph318.preheader: ; preds = %5 | |
br label %.lr.ph318 | |
.preheader312.loopexit: ; preds = %.lr.ph318 | |
br label %.preheader312 | |
.preheader312: ; preds = %.preheader312.loopexit, %5 | |
%8 = icmp sgt i64 %0, 0 | |
br i1 %8, label %.preheader.lr.ph, label %._crit_edge315 | |
.preheader.lr.ph: ; preds = %.preheader312 | |
%9 = icmp sgt i64 %1, 0 | |
%10 = getelementptr inbounds %struct.image, %struct.image* %6, i64 0, i32 1 | |
%11 = getelementptr inbounds %struct.image, %struct.image* %6, i64 0, i32 2 | |
%.sroa.0214.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %6, i64 0, i32 0 | |
br label %.preheader | |
.lr.ph318: ; preds = %.lr.ph318.preheader, %.lr.ph318 | |
%.02316 = phi i64 [ %19, %.lr.ph318 ], [ 0, %.lr.ph318.preheader ] | |
%12 = getelementptr inbounds i8*, i8** %3, i64 %.02316 | |
%13 = bitcast i8** %12 to i64* | |
%14 = load i64, i64* %13, align 8 | |
%15 = getelementptr inbounds %struct.image, %struct.image* %6, i64 %.02316 | |
%16 = bitcast %struct.image* %15 to i64* | |
store i64 %14, i64* %16, align 8 | |
%17 = getelementptr inbounds %struct.image, %struct.image* %6, i64 %.02316, i32 1 | |
store i64 %0, i64* %17, align 8 | |
%18 = getelementptr inbounds %struct.image, %struct.image* %6, i64 %.02316, i32 2 | |
store i64 %1, i64* %18, align 8 | |
%19 = add nuw i64 %.02316, 1 | |
%exitcond = icmp eq i64 %19, %4 | |
br i1 %exitcond, label %.preheader312.loopexit, label %.lr.ph318 | |
.preheader: ; preds = %.preheader.lr.ph, %._crit_edge | |
%indvars.iv320 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next321.pre-phi, %._crit_edge ] | |
br i1 %9, label %.lr.ph, label %.preheader.._crit_edge_crit_edge | |
.preheader.._crit_edge_crit_edge: ; preds = %.preheader | |
%.pre322 = add nuw i64 %indvars.iv320, 1 | |
br label %._crit_edge | |
.lr.ph: ; preds = %.preheader | |
%add.i.i.i = add nsw i64 %indvars.iv320, -1 | |
%20 = icmp slt i64 %indvars.iv320, 1 | |
%add22.i.i.i = add nuw nsw i64 %indvars.iv320, 1 | |
%.pre = load i64, i64* %10, align 8 | |
%21 = icmp sgt i64 %indvars.iv320, %.pre | |
%or.cond = or i1 %20, %21 | |
%22 = icmp sge i64 %add22.i.i.i, %.pre | |
%23 = icmp sge i64 %indvars.iv320, %.pre | |
br label %24 | |
; <label>:24: ; preds = %.lr.ph, %function.exit | |
%indvars.iv = phi i64 [ 0, %.lr.ph ], [ %add7.i.i.i332, %function.exit ] | |
%add1.i.i.i = add nsw i64 %indvars.iv, -1 | |
br i1 %or.cond, label %image_source.exit43.i.i.i.thread333, label %25 | |
image_source.exit43.i.i.i.thread333: ; preds = %24 | |
%add7.i.i.i334 = add nuw i64 %indvars.iv, 1 | |
br label %image_source.exit42.i.i.i | |
; <label>:25: ; preds = %24 | |
%26 = load i64, i64* %11, align 16 | |
%27 = icmp sgt i64 %indvars.iv, %26 | |
%28 = icmp slt i64 %indvars.iv, 1 | |
%or.cond39 = or i1 %28, %27 | |
br i1 %or.cond39, label %35, label %29 | |
; <label>:29: ; preds = %25 | |
%.sroa.0111.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%30 = mul nsw i64 %.pre, %add1.i.i.i | |
%31 = add nsw i64 %30, %add.i.i.i | |
%32 = getelementptr inbounds i8, i8* %.sroa.0111.0.copyload, i64 %31 | |
%33 = load i8, i8* %32, align 1 | |
%34 = zext i8 %33 to i64 | |
br label %35 | |
; <label>:35: ; preds = %25, %29 | |
%.03.ph = phi i64 [ 0, %25 ], [ %34, %29 ] | |
%36 = load i64, i64* %11, align 16 | |
%37 = icmp slt i64 %indvars.iv, %36 | |
br i1 %37, label %38, label %44 | |
; <label>:38: ; preds = %35 | |
%.sroa.0150.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%39 = mul nsw i64 %.pre, %indvars.iv | |
%40 = add nsw i64 %39, %add.i.i.i | |
%41 = getelementptr inbounds i8, i8* %.sroa.0150.0.copyload, i64 %40 | |
%42 = load i8, i8* %41, align 1 | |
%43 = zext i8 %42 to i64 | |
br label %44 | |
; <label>:44: ; preds = %35, %38 | |
%.013.ph = phi i64 [ 0, %35 ], [ %43, %38 ] | |
%add7.i.i.i326 = add nuw i64 %indvars.iv, 1 | |
%45 = load i64, i64* %11, align 16 | |
%46 = icmp slt i64 %add7.i.i.i326, %45 | |
br i1 %46, label %47, label %image_source.exit42.i.i.i | |
; <label>:47: ; preds = %44 | |
%.sroa.0142.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%48 = mul nsw i64 %.pre, %add7.i.i.i326 | |
%49 = add nsw i64 %48, %add.i.i.i | |
%50 = getelementptr inbounds i8, i8* %.sroa.0142.0.copyload, i64 %49 | |
%51 = load i8, i8* %50, align 1 | |
%52 = zext i8 %51 to i64 | |
br label %image_source.exit42.i.i.i | |
image_source.exit42.i.i.i: ; preds = %image_source.exit43.i.i.i.thread333, %44, %47 | |
%add7.i.i.i332 = phi i64 [ %add7.i.i.i326, %47 ], [ %add7.i.i.i326, %44 ], [ %add7.i.i.i334, %image_source.exit43.i.i.i.thread333 ] | |
%.013330 = phi i64 [ %.013.ph, %47 ], [ %.013.ph, %44 ], [ 0, %image_source.exit43.i.i.i.thread333 ] | |
%.03324328 = phi i64 [ %.03.ph, %47 ], [ %.03.ph, %44 ], [ 0, %image_source.exit43.i.i.i.thread333 ] | |
%.012 = phi i64 [ %52, %47 ], [ 0, %44 ], [ 0, %image_source.exit43.i.i.i.thread333 ] | |
br i1 %22, label %compiled_fn.exit.i.i, label %53 | |
; <label>:53: ; preds = %image_source.exit42.i.i.i | |
%54 = load i64, i64* %11, align 16 | |
%55 = icmp sgt i64 %indvars.iv, %54 | |
%56 = icmp slt i64 %indvars.iv, 1 | |
%or.cond51 = or i1 %56, %55 | |
br i1 %or.cond51, label %63, label %57 | |
; <label>:57: ; preds = %53 | |
%.sroa.0134.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%58 = mul nsw i64 %.pre, %add1.i.i.i | |
%59 = add nsw i64 %58, %add22.i.i.i | |
%60 = getelementptr inbounds i8, i8* %.sroa.0134.0.copyload, i64 %59 | |
%61 = load i8, i8* %60, align 1 | |
%62 = zext i8 %61 to i64 | |
br label %63 | |
; <label>:63: ; preds = %53, %57 | |
%.07.ph = phi i64 [ 0, %53 ], [ %62, %57 ] | |
%64 = load i64, i64* %11, align 16 | |
%65 = icmp slt i64 %indvars.iv, %64 | |
br i1 %65, label %66, label %72 | |
; <label>:66: ; preds = %63 | |
%.sroa.0126.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%67 = mul nsw i64 %.pre, %indvars.iv | |
%68 = add nsw i64 %67, %add22.i.i.i | |
%69 = getelementptr inbounds i8, i8* %.sroa.0126.0.copyload, i64 %68 | |
%70 = load i8, i8* %69, align 1 | |
%71 = zext i8 %70 to i64 | |
br label %72 | |
; <label>:72: ; preds = %63, %66 | |
%.06.ph = phi i64 [ 0, %63 ], [ %71, %66 ] | |
%73 = load i64, i64* %11, align 16 | |
%74 = icmp slt i64 %add7.i.i.i332, %73 | |
br i1 %74, label %75, label %compiled_fn.exit.i.i | |
; <label>:75: ; preds = %72 | |
%.sroa.0118.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%76 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%77 = add nsw i64 %76, %add22.i.i.i | |
%78 = getelementptr inbounds i8, i8* %.sroa.0118.0.copyload, i64 %77 | |
%79 = load i8, i8* %78, align 1 | |
%80 = zext i8 %79 to i64 | |
br label %compiled_fn.exit.i.i | |
compiled_fn.exit.i.i: ; preds = %image_source.exit42.i.i.i, %72, %75 | |
%.06341 = phi i64 [ %.06.ph, %75 ], [ %.06.ph, %72 ], [ 0, %image_source.exit42.i.i.i ] | |
%.07336339 = phi i64 [ %.07.ph, %75 ], [ %.07.ph, %72 ], [ 0, %image_source.exit42.i.i.i ] | |
%.05 = phi i64 [ %80, %75 ], [ 0, %72 ], [ 0, %image_source.exit42.i.i.i ] | |
%tmp = sub nsw i64 %.06341, %.013330 | |
%tmp302 = shl nsw i64 %tmp, 1 | |
%sum = add nuw nsw i64 %.012, %.03324328 | |
%add26.i.i.i = sub nsw i64 %.07336339, %sum | |
%add30.i.i.i = add nsw i64 %add26.i.i.i, %.05 | |
%add35.i.i.i = add nsw i64 %add30.i.i.i, %tmp302 | |
br i1 %or.cond, label %image_source.exit42.i19.i.i, label %81 | |
; <label>:81: ; preds = %compiled_fn.exit.i.i | |
%82 = load i64, i64* %11, align 16 | |
%83 = icmp sgt i64 %indvars.iv, %82 | |
%84 = icmp slt i64 %indvars.iv, 1 | |
%or.cond57 = or i1 %84, %83 | |
br i1 %or.cond57, label %91, label %85 | |
; <label>:85: ; preds = %81 | |
%.sroa.0158.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%86 = mul nsw i64 %.pre, %add1.i.i.i | |
%87 = add nsw i64 %86, %add.i.i.i | |
%88 = getelementptr inbounds i8, i8* %.sroa.0158.0.copyload, i64 %87 | |
%89 = load i8, i8* %88, align 1 | |
%90 = zext i8 %89 to i64 | |
br label %91 | |
; <label>:91: ; preds = %81, %85 | |
%.014.ph = phi i64 [ 0, %81 ], [ %90, %85 ] | |
%92 = load i64, i64* %11, align 16 | |
%93 = icmp slt i64 %indvars.iv, %92 | |
br i1 %93, label %94, label %100 | |
; <label>:94: ; preds = %91 | |
%.sroa.0198.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%95 = mul nsw i64 %.pre, %indvars.iv | |
%96 = add nsw i64 %95, %add.i.i.i | |
%97 = getelementptr inbounds i8, i8* %.sroa.0198.0.copyload, i64 %96 | |
%98 = load i8, i8* %97, align 1 | |
%99 = zext i8 %98 to i64 | |
br label %100 | |
; <label>:100: ; preds = %91, %94 | |
%.024.ph = phi i64 [ 0, %91 ], [ %99, %94 ] | |
%101 = load i64, i64* %11, align 16 | |
%102 = icmp slt i64 %add7.i.i.i332, %101 | |
br i1 %102, label %103, label %image_source.exit42.i19.i.i | |
; <label>:103: ; preds = %100 | |
%.sroa.0190.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%104 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%105 = add nsw i64 %104, %add.i.i.i | |
%106 = getelementptr inbounds i8, i8* %.sroa.0190.0.copyload, i64 %105 | |
%107 = load i8, i8* %106, align 1 | |
%108 = zext i8 %107 to i64 | |
br label %image_source.exit42.i19.i.i | |
image_source.exit42.i19.i.i: ; preds = %compiled_fn.exit.i.i, %100, %103 | |
%.024349 = phi i64 [ %.024.ph, %103 ], [ %.024.ph, %100 ], [ 0, %compiled_fn.exit.i.i ] | |
%.014344347 = phi i64 [ %.014.ph, %103 ], [ %.014.ph, %100 ], [ 0, %compiled_fn.exit.i.i ] | |
%.023 = phi i64 [ %108, %103 ], [ 0, %100 ], [ 0, %compiled_fn.exit.i.i ] | |
br i1 %22, label %compiled_fn.exit35.i.i, label %109 | |
; <label>:109: ; preds = %image_source.exit42.i19.i.i | |
%110 = load i64, i64* %11, align 16 | |
%111 = icmp sgt i64 %indvars.iv, %110 | |
%112 = icmp slt i64 %indvars.iv, 1 | |
%or.cond69 = or i1 %112, %111 | |
br i1 %or.cond69, label %119, label %113 | |
; <label>:113: ; preds = %109 | |
%.sroa.0182.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%114 = mul nsw i64 %.pre, %add1.i.i.i | |
%115 = add nsw i64 %114, %add22.i.i.i | |
%116 = getelementptr inbounds i8, i8* %.sroa.0182.0.copyload, i64 %115 | |
%117 = load i8, i8* %116, align 1 | |
%118 = zext i8 %117 to i64 | |
br label %119 | |
; <label>:119: ; preds = %109, %113 | |
%.018.ph = phi i64 [ 0, %109 ], [ %118, %113 ] | |
%120 = load i64, i64* %11, align 16 | |
%121 = icmp slt i64 %indvars.iv, %120 | |
br i1 %121, label %122, label %128 | |
; <label>:122: ; preds = %119 | |
%.sroa.0174.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%123 = mul nsw i64 %.pre, %indvars.iv | |
%124 = add nsw i64 %123, %add22.i.i.i | |
%125 = getelementptr inbounds i8, i8* %.sroa.0174.0.copyload, i64 %124 | |
%126 = load i8, i8* %125, align 1 | |
%127 = zext i8 %126 to i64 | |
br label %128 | |
; <label>:128: ; preds = %119, %122 | |
%.017.ph = phi i64 [ 0, %119 ], [ %127, %122 ] | |
%129 = load i64, i64* %11, align 16 | |
%130 = icmp slt i64 %add7.i.i.i332, %129 | |
br i1 %130, label %131, label %compiled_fn.exit35.i.i | |
; <label>:131: ; preds = %128 | |
%.sroa.0166.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%132 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%133 = add nsw i64 %132, %add22.i.i.i | |
%134 = getelementptr inbounds i8, i8* %.sroa.0166.0.copyload, i64 %133 | |
%135 = load i8, i8* %134, align 1 | |
%136 = zext i8 %135 to i64 | |
br label %compiled_fn.exit35.i.i | |
compiled_fn.exit35.i.i: ; preds = %image_source.exit42.i19.i.i, %128, %131 | |
%.017357 = phi i64 [ %.017.ph, %131 ], [ %.017.ph, %128 ], [ 0, %image_source.exit42.i19.i.i ] | |
%.018352355 = phi i64 [ %.018.ph, %131 ], [ %.018.ph, %128 ], [ 0, %image_source.exit42.i19.i.i ] | |
%.015 = phi i64 [ %136, %131 ], [ 0, %128 ], [ 0, %image_source.exit42.i19.i.i ] | |
%tmp304 = sub nsw i64 %.017357, %.024349 | |
%tmp305 = shl nsw i64 %tmp304, 1 | |
%sum319 = add nuw nsw i64 %.023, %.014344347 | |
%add26.i26.i.i = sub nsw i64 %.018352355, %sum319 | |
%add30.i30.i.i = add nsw i64 %add26.i26.i.i, %.015 | |
%add35.i34.i.i = add nsw i64 %add30.i30.i.i, %tmp305 | |
%mul.i.i = mul nsw i64 %add35.i34.i.i, %add35.i.i.i | |
br i1 %or.cond, label %image_source.1.exit42.i62.i.i, label %137 | |
; <label>:137: ; preds = %compiled_fn.exit35.i.i | |
%138 = load i64, i64* %11, align 16 | |
%139 = icmp sgt i64 %indvars.iv, %138 | |
%140 = icmp slt i64 %indvars.iv, 1 | |
%or.cond75 = or i1 %140, %139 | |
br i1 %or.cond75, label %147, label %141 | |
; <label>:141: ; preds = %137 | |
%.sroa.0254.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%142 = mul nsw i64 %.pre, %add1.i.i.i | |
%143 = add nsw i64 %142, %add.i.i.i | |
%144 = getelementptr inbounds i8, i8* %.sroa.0254.0.copyload, i64 %143 | |
%145 = load i8, i8* %144, align 1 | |
%146 = zext i8 %145 to i64 | |
br label %147 | |
; <label>:147: ; preds = %137, %141 | |
%.036.ph = phi i64 [ 0, %137 ], [ %146, %141 ] | |
%148 = load i64, i64* %11, align 16 | |
%149 = icmp slt i64 %add7.i.i.i332, %148 | |
br i1 %149, label %150, label %image_source.1.exit42.i62.i.i | |
; <label>:150: ; preds = %147 | |
%.sroa.0294.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%151 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%152 = add nsw i64 %151, %add.i.i.i | |
%153 = getelementptr inbounds i8, i8* %.sroa.0294.0.copyload, i64 %152 | |
%154 = load i8, i8* %153, align 1 | |
%155 = zext i8 %154 to i64 | |
br label %image_source.1.exit42.i62.i.i | |
image_source.1.exit42.i62.i.i: ; preds = %compiled_fn.exit35.i.i, %147, %150 | |
%.036360 = phi i64 [ %.036.ph, %150 ], [ %.036.ph, %147 ], [ 0, %compiled_fn.exit35.i.i ] | |
%.010 = phi i64 [ %155, %150 ], [ 0, %147 ], [ 0, %compiled_fn.exit35.i.i ] | |
br i1 %23, label %image_source.1.exit39.i72.i.i, label %156 | |
; <label>:156: ; preds = %image_source.1.exit42.i62.i.i | |
%157 = load i64, i64* %11, align 16 | |
%158 = icmp sgt i64 %indvars.iv, %157 | |
%159 = icmp slt i64 %indvars.iv, 1 | |
%or.cond81 = or i1 %159, %158 | |
br i1 %or.cond81, label %166, label %160 | |
; <label>:160: ; preds = %156 | |
%.sroa.0286.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%161 = mul nsw i64 %.pre, %add1.i.i.i | |
%162 = add nsw i64 %161, %indvars.iv320 | |
%163 = getelementptr inbounds i8, i8* %.sroa.0286.0.copyload, i64 %162 | |
%164 = load i8, i8* %163, align 1 | |
%165 = zext i8 %164 to i64 | |
br label %166 | |
; <label>:166: ; preds = %156, %160 | |
%.016.ph = phi i64 [ 0, %156 ], [ %165, %160 ] | |
%167 = load i64, i64* %11, align 16 | |
%168 = icmp slt i64 %add7.i.i.i332, %167 | |
br i1 %168, label %169, label %image_source.1.exit39.i72.i.i | |
; <label>:169: ; preds = %166 | |
%.sroa.0278.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%170 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%171 = add nsw i64 %170, %indvars.iv320 | |
%172 = getelementptr inbounds i8, i8* %.sroa.0278.0.copyload, i64 %171 | |
%173 = load i8, i8* %172, align 1 | |
%174 = zext i8 %173 to i64 | |
br label %image_source.1.exit39.i72.i.i | |
image_source.1.exit39.i72.i.i: ; preds = %image_source.1.exit42.i62.i.i, %166, %169 | |
%.016363 = phi i64 [ %.016.ph, %169 ], [ %.016.ph, %166 ], [ 0, %image_source.1.exit42.i62.i.i ] | |
%.028 = phi i64 [ %174, %169 ], [ 0, %166 ], [ 0, %image_source.1.exit42.i62.i.i ] | |
br i1 %22, label %compiled_fn.2.exit81.i.i, label %175 | |
; <label>:175: ; preds = %image_source.1.exit39.i72.i.i | |
%176 = load i64, i64* %11, align 16 | |
%177 = icmp sgt i64 %indvars.iv, %176 | |
%178 = icmp slt i64 %indvars.iv, 1 | |
%or.cond87 = or i1 %178, %177 | |
br i1 %or.cond87, label %185, label %179 | |
; <label>:179: ; preds = %175 | |
%.sroa.0270.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%180 = mul nsw i64 %.pre, %add1.i.i.i | |
%181 = add nsw i64 %180, %add22.i.i.i | |
%182 = getelementptr inbounds i8, i8* %.sroa.0270.0.copyload, i64 %181 | |
%183 = load i8, i8* %182, align 1 | |
%184 = zext i8 %183 to i64 | |
br label %185 | |
; <label>:185: ; preds = %175, %179 | |
%.034.ph = phi i64 [ 0, %175 ], [ %184, %179 ] | |
%186 = load i64, i64* %11, align 16 | |
%187 = icmp slt i64 %add7.i.i.i332, %186 | |
br i1 %187, label %188, label %compiled_fn.2.exit81.i.i | |
; <label>:188: ; preds = %185 | |
%.sroa.0262.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%189 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%190 = add nsw i64 %189, %add22.i.i.i | |
%191 = getelementptr inbounds i8, i8* %.sroa.0262.0.copyload, i64 %190 | |
%192 = load i8, i8* %191, align 1 | |
%193 = zext i8 %192 to i64 | |
br label %compiled_fn.2.exit81.i.i | |
compiled_fn.2.exit81.i.i: ; preds = %image_source.1.exit39.i72.i.i, %185, %188 | |
%.034366 = phi i64 [ %.034.ph, %188 ], [ %.034.ph, %185 ], [ 0, %image_source.1.exit39.i72.i.i ] | |
%.037 = phi i64 [ %193, %188 ], [ 0, %185 ], [ 0, %image_source.1.exit39.i72.i.i ] | |
%tmp307 = sub nsw i64 %.028, %.016363 | |
%tmp308 = shl nsw i64 %tmp307, 1 | |
%add14.i64.i.i = sub nsw i64 %.010, %.036360 | |
%add21.i69.i.i = sub nsw i64 %add14.i64.i.i, %.034366 | |
%add26.i74.i.i = add nsw i64 %add21.i69.i.i, %.037 | |
%add35.i80.i.i = add nsw i64 %add26.i74.i.i, %tmp308 | |
br i1 %or.cond, label %image_source.1.exit42.i.i.i, label %194 | |
; <label>:194: ; preds = %compiled_fn.2.exit81.i.i | |
%195 = load i64, i64* %11, align 16 | |
%196 = icmp sgt i64 %indvars.iv, %195 | |
%197 = icmp slt i64 %indvars.iv, 1 | |
%or.cond93 = or i1 %197, %196 | |
br i1 %or.cond93, label %204, label %198 | |
; <label>:198: ; preds = %194 | |
%.sroa.0206.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%199 = mul nsw i64 %.pre, %add1.i.i.i | |
%200 = add nsw i64 %199, %add.i.i.i | |
%201 = getelementptr inbounds i8, i8* %.sroa.0206.0.copyload, i64 %200 | |
%202 = load i8, i8* %201, align 1 | |
%203 = zext i8 %202 to i64 | |
br label %204 | |
; <label>:204: ; preds = %194, %198 | |
%.025.ph = phi i64 [ 0, %194 ], [ %203, %198 ] | |
%205 = load i64, i64* %11, align 16 | |
%206 = icmp slt i64 %add7.i.i.i332, %205 | |
br i1 %206, label %207, label %image_source.1.exit42.i.i.i | |
; <label>:207: ; preds = %204 | |
%.sroa.0246.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%208 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%209 = add nsw i64 %208, %add.i.i.i | |
%210 = getelementptr inbounds i8, i8* %.sroa.0246.0.copyload, i64 %209 | |
%211 = load i8, i8* %210, align 1 | |
%212 = zext i8 %211 to i64 | |
br label %image_source.1.exit42.i.i.i | |
image_source.1.exit42.i.i.i: ; preds = %compiled_fn.2.exit81.i.i, %204, %207 | |
%.025369 = phi i64 [ %.025.ph, %207 ], [ %.025.ph, %204 ], [ 0, %compiled_fn.2.exit81.i.i ] | |
%.033 = phi i64 [ %212, %207 ], [ 0, %204 ], [ 0, %compiled_fn.2.exit81.i.i ] | |
br i1 %23, label %image_source.1.exit39.i.i.i, label %213 | |
; <label>:213: ; preds = %image_source.1.exit42.i.i.i | |
%214 = load i64, i64* %11, align 16 | |
%215 = icmp sgt i64 %indvars.iv, %214 | |
%216 = icmp slt i64 %indvars.iv, 1 | |
%or.cond99 = or i1 %216, %215 | |
br i1 %or.cond99, label %223, label %217 | |
; <label>:217: ; preds = %213 | |
%.sroa.0238.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%218 = mul nsw i64 %.pre, %add1.i.i.i | |
%219 = add nsw i64 %218, %indvars.iv320 | |
%220 = getelementptr inbounds i8, i8* %.sroa.0238.0.copyload, i64 %219 | |
%221 = load i8, i8* %220, align 1 | |
%222 = zext i8 %221 to i64 | |
br label %223 | |
; <label>:223: ; preds = %213, %217 | |
%.032.ph = phi i64 [ 0, %213 ], [ %222, %217 ] | |
%224 = load i64, i64* %11, align 16 | |
%225 = icmp slt i64 %add7.i.i.i332, %224 | |
br i1 %225, label %226, label %image_source.1.exit39.i.i.i | |
; <label>:226: ; preds = %223 | |
%.sroa.0230.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%227 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%228 = add nsw i64 %227, %indvars.iv320 | |
%229 = getelementptr inbounds i8, i8* %.sroa.0230.0.copyload, i64 %228 | |
%230 = load i8, i8* %229, align 1 | |
%231 = zext i8 %230 to i64 | |
br label %image_source.1.exit39.i.i.i | |
image_source.1.exit39.i.i.i: ; preds = %image_source.1.exit42.i.i.i, %223, %226 | |
%.032372 = phi i64 [ %.032.ph, %226 ], [ %.032.ph, %223 ], [ 0, %image_source.1.exit42.i.i.i ] | |
%.030 = phi i64 [ %231, %226 ], [ 0, %223 ], [ 0, %image_source.1.exit42.i.i.i ] | |
br i1 %22, label %function.exit, label %232 | |
; <label>:232: ; preds = %image_source.1.exit39.i.i.i | |
%233 = load i64, i64* %11, align 16 | |
%234 = icmp sgt i64 %indvars.iv, %233 | |
%235 = icmp slt i64 %indvars.iv, 1 | |
%or.cond105 = or i1 %235, %234 | |
br i1 %or.cond105, label %242, label %236 | |
; <label>:236: ; preds = %232 | |
%.sroa.0222.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%237 = mul nsw i64 %.pre, %add1.i.i.i | |
%238 = add nsw i64 %237, %add22.i.i.i | |
%239 = getelementptr inbounds i8, i8* %.sroa.0222.0.copyload, i64 %238 | |
%240 = load i8, i8* %239, align 1 | |
%241 = zext i8 %240 to i64 | |
br label %242 | |
; <label>:242: ; preds = %232, %236 | |
%.029.ph = phi i64 [ 0, %232 ], [ %241, %236 ] | |
%243 = load i64, i64* %11, align 16 | |
%244 = icmp slt i64 %add7.i.i.i332, %243 | |
br i1 %244, label %245, label %function.exit | |
; <label>:245: ; preds = %242 | |
%.sroa.0214.0.copyload = load i8*, i8** %.sroa.0214.0..sroa_idx, align 16 | |
%246 = mul nsw i64 %.pre, %add7.i.i.i332 | |
%247 = add nsw i64 %246, %add22.i.i.i | |
%248 = getelementptr inbounds i8, i8* %.sroa.0214.0.copyload, i64 %247 | |
%249 = load i8, i8* %248, align 1 | |
%250 = zext i8 %249 to i64 | |
br label %function.exit | |
function.exit: ; preds = %image_source.1.exit39.i.i.i, %242, %245 | |
%.029375 = phi i64 [ %.029.ph, %245 ], [ %.029.ph, %242 ], [ 0, %image_source.1.exit39.i.i.i ] | |
%.026 = phi i64 [ %250, %245 ], [ 0, %242 ], [ 0, %image_source.1.exit39.i.i.i ] | |
%tmp310 = sub nsw i64 %.030, %.032372 | |
%tmp311 = shl nsw i64 %tmp310, 1 | |
%add14.i.i.i = sub nsw i64 %.033, %.025369 | |
%add21.i.i.i = sub nsw i64 %add14.i.i.i, %.029375 | |
%add26.i47.i.i = add nsw i64 %add21.i.i.i, %.026 | |
%add35.i51.i.i = add nsw i64 %add26.i47.i.i, %tmp311 | |
%mul4.i.i = mul nsw i64 %add35.i51.i.i, %add35.i80.i.i | |
%add.i.i = add i64 %mul4.i.i, %mul.i.i | |
%251 = sitofp i64 %add.i.i to double | |
%252 = tail call double @sqrt(double %251) #5 | |
%253 = fptosi double %252 to i64 | |
%254 = trunc i64 %253 to i8 | |
%255 = mul nsw i64 %indvars.iv, %0 | |
%256 = add nsw i64 %255, %indvars.iv320 | |
%257 = getelementptr inbounds i8, i8* %2, i64 %256 | |
store i8 %254, i8* %257, align 1 | |
%258 = icmp slt i64 %add7.i.i.i332, %1 | |
br i1 %258, label %24, label %._crit_edge.loopexit | |
._crit_edge.loopexit: ; preds = %function.exit | |
br label %._crit_edge | |
._crit_edge: ; preds = %._crit_edge.loopexit, %.preheader.._crit_edge_crit_edge | |
%indvars.iv.next321.pre-phi = phi i64 [ %.pre322, %.preheader.._crit_edge_crit_edge ], [ %add22.i.i.i, %._crit_edge.loopexit ] | |
%259 = icmp slt i64 %indvars.iv.next321.pre-phi, %0 | |
br i1 %259, label %.preheader, label %._crit_edge315.loopexit | |
._crit_edge315.loopexit: ; preds = %._crit_edge | |
br label %._crit_edge315 | |
._crit_edge315: ; preds = %._crit_edge315.loopexit, %.preheader312 | |
ret void | |
} | |
; Function Attrs: alwaysinline nounwind | |
define i64 @function(i64, i64, %struct.image* readonly, i64) local_unnamed_addr #2 { | |
entry: | |
%add.i.i = add i64 %0, -1 | |
%add1.i.i = add i64 %1, -1 | |
%4 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 1 | |
%5 = load i64, i64* %4, align 8 | |
%6 = icmp sge i64 %add.i.i, %5 | |
%7 = icmp slt i64 %add.i.i, 0 | |
%or.cond = or i1 %7, %6 | |
br i1 %or.cond, label %image_source.exit43.i.i.thread314, label %8 | |
image_source.exit43.i.i.thread314: ; preds = %entry | |
%add7.i.i315 = add i64 %1, 1 | |
br label %image_source.exit42.i.i | |
; <label>:8: ; preds = %entry | |
%9 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%10 = load i64, i64* %9, align 8 | |
%11 = icmp sge i64 %add1.i.i, %10 | |
%12 = icmp slt i64 %add1.i.i, 0 | |
%or.cond36 = or i1 %12, %11 | |
br i1 %or.cond36, label %19, label %13 | |
; <label>:13: ; preds = %8 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%14 = mul nsw i64 %5, %add1.i.i | |
%15 = add nsw i64 %14, %add.i.i | |
%16 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %15 | |
%17 = load i8, i8* %16, align 1 | |
%18 = zext i8 %17 to i64 | |
br label %19 | |
; <label>:19: ; preds = %8, %13 | |
%.01.ph = phi i64 [ 0, %8 ], [ %18, %13 ] | |
%20 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%21 = load i64, i64* %20, align 8 | |
%22 = icmp sle i64 %21, %1 | |
%23 = icmp slt i64 %1, 0 | |
%or.cond38 = or i1 %23, %22 | |
br i1 %or.cond38, label %30, label %24 | |
; <label>:24: ; preds = %19 | |
%.sroa.0144.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0144.0.copyload = load i8*, i8** %.sroa.0144.0..sroa_idx, align 8 | |
%25 = mul nsw i64 %5, %1 | |
%26 = add nsw i64 %25, %add.i.i | |
%27 = getelementptr inbounds i8, i8* %.sroa.0144.0.copyload, i64 %26 | |
%28 = load i8, i8* %27, align 1 | |
%29 = zext i8 %28 to i64 | |
br label %30 | |
; <label>:30: ; preds = %19, %24 | |
%.010.ph = phi i64 [ 0, %19 ], [ %29, %24 ] | |
%add7.i.i307 = add i64 %1, 1 | |
%31 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%32 = load i64, i64* %31, align 8 | |
%33 = icmp sge i64 %add7.i.i307, %32 | |
%34 = icmp slt i64 %add7.i.i307, 0 | |
%or.cond40 = or i1 %34, %33 | |
br i1 %or.cond40, label %image_source.exit42.i.i, label %35 | |
; <label>:35: ; preds = %30 | |
%.sroa.0136.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0136.0.copyload = load i8*, i8** %.sroa.0136.0..sroa_idx, align 8 | |
%36 = mul nsw i64 %5, %add7.i.i307 | |
%37 = add nsw i64 %36, %add.i.i | |
%38 = getelementptr inbounds i8, i8* %.sroa.0136.0.copyload, i64 %37 | |
%39 = load i8, i8* %38, align 1 | |
%40 = zext i8 %39 to i64 | |
br label %image_source.exit42.i.i | |
image_source.exit42.i.i: ; preds = %image_source.exit43.i.i.thread314, %30, %35 | |
%add7.i.i313 = phi i64 [ %add7.i.i307, %35 ], [ %add7.i.i307, %30 ], [ %add7.i.i315, %image_source.exit43.i.i.thread314 ] | |
%.010311 = phi i64 [ %.010.ph, %35 ], [ %.010.ph, %30 ], [ 0, %image_source.exit43.i.i.thread314 ] | |
%.01305309 = phi i64 [ %.01.ph, %35 ], [ %.01.ph, %30 ], [ 0, %image_source.exit43.i.i.thread314 ] | |
%.09 = phi i64 [ %40, %35 ], [ 0, %30 ], [ 0, %image_source.exit43.i.i.thread314 ] | |
%41 = icmp slt i64 %0, 0 | |
%add22.i.i = add i64 %0, 1 | |
%42 = icmp sge i64 %add22.i.i, %5 | |
%43 = icmp slt i64 %add22.i.i, 0 | |
%or.cond47 = or i1 %43, %42 | |
br i1 %or.cond47, label %compiled_fn.exit.i, label %44 | |
; <label>:44: ; preds = %image_source.exit42.i.i | |
%45 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%46 = load i64, i64* %45, align 8 | |
%47 = icmp sge i64 %add1.i.i, %46 | |
%48 = icmp slt i64 %add1.i.i, 0 | |
%or.cond48 = or i1 %48, %47 | |
br i1 %or.cond48, label %55, label %49 | |
; <label>:49: ; preds = %44 | |
%.sroa.0128.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0128.0.copyload = load i8*, i8** %.sroa.0128.0..sroa_idx, align 8 | |
%50 = mul nsw i64 %5, %add1.i.i | |
%51 = add nsw i64 %50, %add22.i.i | |
%52 = getelementptr inbounds i8, i8* %.sroa.0128.0.copyload, i64 %51 | |
%53 = load i8, i8* %52, align 1 | |
%54 = zext i8 %53 to i64 | |
br label %55 | |
; <label>:55: ; preds = %44, %49 | |
%.04.ph = phi i64 [ 0, %44 ], [ %54, %49 ] | |
%56 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%57 = load i64, i64* %56, align 8 | |
%58 = icmp sle i64 %57, %1 | |
%59 = icmp slt i64 %1, 0 | |
%or.cond50 = or i1 %59, %58 | |
br i1 %or.cond50, label %66, label %60 | |
; <label>:60: ; preds = %55 | |
%.sroa.0120.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0120.0.copyload = load i8*, i8** %.sroa.0120.0..sroa_idx, align 8 | |
%61 = mul nsw i64 %5, %1 | |
%62 = add nsw i64 %61, %add22.i.i | |
%63 = getelementptr inbounds i8, i8* %.sroa.0120.0.copyload, i64 %62 | |
%64 = load i8, i8* %63, align 1 | |
%65 = zext i8 %64 to i64 | |
br label %66 | |
; <label>:66: ; preds = %55, %60 | |
%.03.ph = phi i64 [ 0, %55 ], [ %65, %60 ] | |
%67 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%68 = load i64, i64* %67, align 8 | |
%69 = icmp sge i64 %add7.i.i313, %68 | |
%70 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond52 = or i1 %70, %69 | |
br i1 %or.cond52, label %compiled_fn.exit.i, label %71 | |
; <label>:71: ; preds = %66 | |
%.sroa.0112.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0112.0.copyload = load i8*, i8** %.sroa.0112.0..sroa_idx, align 8 | |
%72 = mul nsw i64 %5, %add7.i.i313 | |
%73 = add nsw i64 %72, %add22.i.i | |
%74 = getelementptr inbounds i8, i8* %.sroa.0112.0.copyload, i64 %73 | |
%75 = load i8, i8* %74, align 1 | |
%76 = zext i8 %75 to i64 | |
br label %compiled_fn.exit.i | |
compiled_fn.exit.i: ; preds = %image_source.exit42.i.i, %66, %71 | |
%.03322 = phi i64 [ %.03.ph, %71 ], [ %.03.ph, %66 ], [ 0, %image_source.exit42.i.i ] | |
%.04317320 = phi i64 [ %.04.ph, %71 ], [ %.04.ph, %66 ], [ 0, %image_source.exit42.i.i ] | |
%.02 = phi i64 [ %76, %71 ], [ 0, %66 ], [ 0, %image_source.exit42.i.i ] | |
%tmp = sub nsw i64 %.03322, %.010311 | |
%tmp299 = shl nsw i64 %tmp, 1 | |
%sum = add nuw nsw i64 %.09, %.01305309 | |
%add26.i.i = sub nsw i64 %.04317320, %sum | |
%add30.i.i = add nsw i64 %add26.i.i, %.02 | |
%add35.i.i = add nsw i64 %add30.i.i, %tmp299 | |
br i1 %or.cond, label %image_source.exit42.i19.i, label %77 | |
; <label>:77: ; preds = %compiled_fn.exit.i | |
%78 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%79 = load i64, i64* %78, align 8 | |
%80 = icmp sge i64 %add1.i.i, %79 | |
%81 = icmp slt i64 %add1.i.i, 0 | |
%or.cond54 = or i1 %81, %80 | |
br i1 %or.cond54, label %88, label %82 | |
; <label>:82: ; preds = %77 | |
%.sroa.0152.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0152.0.copyload = load i8*, i8** %.sroa.0152.0..sroa_idx, align 8 | |
%83 = mul nsw i64 %5, %add1.i.i | |
%84 = add nsw i64 %83, %add.i.i | |
%85 = getelementptr inbounds i8, i8* %.sroa.0152.0.copyload, i64 %84 | |
%86 = load i8, i8* %85, align 1 | |
%87 = zext i8 %86 to i64 | |
br label %88 | |
; <label>:88: ; preds = %77, %82 | |
%.011.ph = phi i64 [ 0, %77 ], [ %87, %82 ] | |
%89 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%90 = load i64, i64* %89, align 8 | |
%91 = icmp sle i64 %90, %1 | |
%92 = icmp slt i64 %1, 0 | |
%or.cond56 = or i1 %92, %91 | |
br i1 %or.cond56, label %99, label %93 | |
; <label>:93: ; preds = %88 | |
%.sroa.0192.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0192.0.copyload = load i8*, i8** %.sroa.0192.0..sroa_idx, align 8 | |
%94 = mul nsw i64 %5, %1 | |
%95 = add nsw i64 %94, %add.i.i | |
%96 = getelementptr inbounds i8, i8* %.sroa.0192.0.copyload, i64 %95 | |
%97 = load i8, i8* %96, align 1 | |
%98 = zext i8 %97 to i64 | |
br label %99 | |
; <label>:99: ; preds = %88, %93 | |
%.021.ph = phi i64 [ 0, %88 ], [ %98, %93 ] | |
%100 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%101 = load i64, i64* %100, align 8 | |
%102 = icmp sge i64 %add7.i.i313, %101 | |
%103 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond58 = or i1 %103, %102 | |
br i1 %or.cond58, label %image_source.exit42.i19.i, label %104 | |
; <label>:104: ; preds = %99 | |
%.sroa.0184.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0184.0.copyload = load i8*, i8** %.sroa.0184.0..sroa_idx, align 8 | |
%105 = mul nsw i64 %5, %add7.i.i313 | |
%106 = add nsw i64 %105, %add.i.i | |
%107 = getelementptr inbounds i8, i8* %.sroa.0184.0.copyload, i64 %106 | |
%108 = load i8, i8* %107, align 1 | |
%109 = zext i8 %108 to i64 | |
br label %image_source.exit42.i19.i | |
image_source.exit42.i19.i: ; preds = %compiled_fn.exit.i, %99, %104 | |
%.021330 = phi i64 [ %.021.ph, %104 ], [ %.021.ph, %99 ], [ 0, %compiled_fn.exit.i ] | |
%.011325328 = phi i64 [ %.011.ph, %104 ], [ %.011.ph, %99 ], [ 0, %compiled_fn.exit.i ] | |
%.020 = phi i64 [ %109, %104 ], [ 0, %99 ], [ 0, %compiled_fn.exit.i ] | |
br i1 %or.cond47, label %compiled_fn.exit35.i, label %110 | |
; <label>:110: ; preds = %image_source.exit42.i19.i | |
%111 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%112 = load i64, i64* %111, align 8 | |
%113 = icmp sge i64 %add1.i.i, %112 | |
%114 = icmp slt i64 %add1.i.i, 0 | |
%or.cond66 = or i1 %114, %113 | |
br i1 %or.cond66, label %121, label %115 | |
; <label>:115: ; preds = %110 | |
%.sroa.0176.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0176.0.copyload = load i8*, i8** %.sroa.0176.0..sroa_idx, align 8 | |
%116 = mul nsw i64 %5, %add1.i.i | |
%117 = add nsw i64 %116, %add22.i.i | |
%118 = getelementptr inbounds i8, i8* %.sroa.0176.0.copyload, i64 %117 | |
%119 = load i8, i8* %118, align 1 | |
%120 = zext i8 %119 to i64 | |
br label %121 | |
; <label>:121: ; preds = %110, %115 | |
%.015.ph = phi i64 [ 0, %110 ], [ %120, %115 ] | |
%122 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%123 = load i64, i64* %122, align 8 | |
%124 = icmp sle i64 %123, %1 | |
%125 = icmp slt i64 %1, 0 | |
%or.cond68 = or i1 %125, %124 | |
br i1 %or.cond68, label %132, label %126 | |
; <label>:126: ; preds = %121 | |
%.sroa.0168.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0168.0.copyload = load i8*, i8** %.sroa.0168.0..sroa_idx, align 8 | |
%127 = mul nsw i64 %5, %1 | |
%128 = add nsw i64 %127, %add22.i.i | |
%129 = getelementptr inbounds i8, i8* %.sroa.0168.0.copyload, i64 %128 | |
%130 = load i8, i8* %129, align 1 | |
%131 = zext i8 %130 to i64 | |
br label %132 | |
; <label>:132: ; preds = %121, %126 | |
%.014.ph = phi i64 [ 0, %121 ], [ %131, %126 ] | |
%133 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%134 = load i64, i64* %133, align 8 | |
%135 = icmp sge i64 %add7.i.i313, %134 | |
%136 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond70 = or i1 %136, %135 | |
br i1 %or.cond70, label %compiled_fn.exit35.i, label %137 | |
; <label>:137: ; preds = %132 | |
%.sroa.0160.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0160.0.copyload = load i8*, i8** %.sroa.0160.0..sroa_idx, align 8 | |
%138 = mul nsw i64 %5, %add7.i.i313 | |
%139 = add nsw i64 %138, %add22.i.i | |
%140 = getelementptr inbounds i8, i8* %.sroa.0160.0.copyload, i64 %139 | |
%141 = load i8, i8* %140, align 1 | |
%142 = zext i8 %141 to i64 | |
br label %compiled_fn.exit35.i | |
compiled_fn.exit35.i: ; preds = %image_source.exit42.i19.i, %132, %137 | |
%.014338 = phi i64 [ %.014.ph, %137 ], [ %.014.ph, %132 ], [ 0, %image_source.exit42.i19.i ] | |
%.015333336 = phi i64 [ %.015.ph, %137 ], [ %.015.ph, %132 ], [ 0, %image_source.exit42.i19.i ] | |
%.013 = phi i64 [ %142, %137 ], [ 0, %132 ], [ 0, %image_source.exit42.i19.i ] | |
%tmp301 = sub nsw i64 %.014338, %.021330 | |
%tmp302 = shl nsw i64 %tmp301, 1 | |
%sum303 = add nuw nsw i64 %.020, %.011325328 | |
%add26.i26.i = sub nsw i64 %.015333336, %sum303 | |
%add30.i30.i = add nsw i64 %add26.i26.i, %.013 | |
%add35.i34.i = add nsw i64 %add30.i30.i, %tmp302 | |
%mul.i = mul nsw i64 %add35.i34.i, %add35.i.i | |
br i1 %or.cond, label %image_source.1.exit42.i62.i, label %143 | |
; <label>:143: ; preds = %compiled_fn.exit35.i | |
%144 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%145 = load i64, i64* %144, align 8 | |
%146 = icmp sge i64 %add1.i.i, %145 | |
%147 = icmp slt i64 %add1.i.i, 0 | |
%or.cond72 = or i1 %147, %146 | |
br i1 %or.cond72, label %154, label %148 | |
; <label>:148: ; preds = %143 | |
%.sroa.0248.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0248.0.copyload = load i8*, i8** %.sroa.0248.0..sroa_idx, align 8 | |
%149 = mul nsw i64 %5, %add1.i.i | |
%150 = add nsw i64 %149, %add.i.i | |
%151 = getelementptr inbounds i8, i8* %.sroa.0248.0.copyload, i64 %150 | |
%152 = load i8, i8* %151, align 1 | |
%153 = zext i8 %152 to i64 | |
br label %154 | |
; <label>:154: ; preds = %143, %148 | |
%.033.ph = phi i64 [ 0, %143 ], [ %153, %148 ] | |
%155 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%156 = load i64, i64* %155, align 8 | |
%157 = icmp sge i64 %add7.i.i313, %156 | |
%158 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond76 = or i1 %158, %157 | |
br i1 %or.cond76, label %image_source.1.exit42.i62.i, label %159 | |
; <label>:159: ; preds = %154 | |
%.sroa.0288.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0288.0.copyload = load i8*, i8** %.sroa.0288.0..sroa_idx, align 8 | |
%160 = mul nsw i64 %5, %add7.i.i313 | |
%161 = add nsw i64 %160, %add.i.i | |
%162 = getelementptr inbounds i8, i8* %.sroa.0288.0.copyload, i64 %161 | |
%163 = load i8, i8* %162, align 1 | |
%164 = zext i8 %163 to i64 | |
br label %image_source.1.exit42.i62.i | |
image_source.1.exit42.i62.i: ; preds = %compiled_fn.exit35.i, %154, %159 | |
%.033341 = phi i64 [ %.033.ph, %159 ], [ %.033.ph, %154 ], [ 0, %compiled_fn.exit35.i ] | |
%.06 = phi i64 [ %164, %159 ], [ 0, %154 ], [ 0, %compiled_fn.exit35.i ] | |
%add10.i60.i = sub nsw i64 %.06, %.033341 | |
%165 = icmp sle i64 %5, %0 | |
%or.cond77 = or i1 %41, %165 | |
br i1 %or.cond77, label %image_source.1.exit39.i72.i, label %166 | |
; <label>:166: ; preds = %image_source.1.exit42.i62.i | |
%167 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%168 = load i64, i64* %167, align 8 | |
%169 = icmp sge i64 %add1.i.i, %168 | |
%170 = icmp slt i64 %add1.i.i, 0 | |
%or.cond78 = or i1 %170, %169 | |
br i1 %or.cond78, label %177, label %171 | |
; <label>:171: ; preds = %166 | |
%.sroa.0280.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0280.0.copyload = load i8*, i8** %.sroa.0280.0..sroa_idx, align 8 | |
%172 = mul nsw i64 %5, %add1.i.i | |
%173 = add nsw i64 %172, %0 | |
%174 = getelementptr inbounds i8, i8* %.sroa.0280.0.copyload, i64 %173 | |
%175 = load i8, i8* %174, align 1 | |
%176 = zext i8 %175 to i64 | |
%phitmp296 = mul nsw i64 %176, -2 | |
br label %177 | |
; <label>:177: ; preds = %166, %171 | |
%.012.ph = phi i64 [ 0, %166 ], [ %phitmp296, %171 ] | |
%add14.i64.i343 = add i64 %add10.i60.i, %.012.ph | |
%178 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%179 = load i64, i64* %178, align 8 | |
%180 = icmp sge i64 %add7.i.i313, %179 | |
%181 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond82 = or i1 %181, %180 | |
br i1 %or.cond82, label %image_source.1.exit39.i72.i, label %182 | |
; <label>:182: ; preds = %177 | |
%.sroa.0272.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0272.0.copyload = load i8*, i8** %.sroa.0272.0..sroa_idx, align 8 | |
%183 = mul nsw i64 %5, %add7.i.i313 | |
%184 = add nsw i64 %183, %0 | |
%185 = getelementptr inbounds i8, i8* %.sroa.0272.0.copyload, i64 %184 | |
%186 = load i8, i8* %185, align 1 | |
%187 = zext i8 %186 to i64 | |
%phitmp297 = shl nuw nsw i64 %187, 1 | |
br label %image_source.1.exit39.i72.i | |
image_source.1.exit39.i72.i: ; preds = %image_source.1.exit42.i62.i, %177, %182 | |
%add14.i64.i345 = phi i64 [ %add14.i64.i343, %182 ], [ %add14.i64.i343, %177 ], [ %add10.i60.i, %image_source.1.exit42.i62.i ] | |
%.024 = phi i64 [ %phitmp297, %182 ], [ 0, %177 ], [ 0, %image_source.1.exit42.i62.i ] | |
%add21.i69.i = add i64 %add14.i64.i345, %.024 | |
br i1 %or.cond47, label %compiled_fn.2.exit81.i, label %188 | |
; <label>:188: ; preds = %image_source.1.exit39.i72.i | |
%189 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%190 = load i64, i64* %189, align 8 | |
%191 = icmp sge i64 %add1.i.i, %190 | |
%192 = icmp slt i64 %add1.i.i, 0 | |
%or.cond84 = or i1 %192, %191 | |
br i1 %or.cond84, label %199, label %193 | |
; <label>:193: ; preds = %188 | |
%.sroa.0264.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0264.0.copyload = load i8*, i8** %.sroa.0264.0..sroa_idx, align 8 | |
%194 = mul nsw i64 %5, %add1.i.i | |
%195 = add nsw i64 %194, %add22.i.i | |
%196 = getelementptr inbounds i8, i8* %.sroa.0264.0.copyload, i64 %195 | |
%197 = load i8, i8* %196, align 1 | |
%198 = zext i8 %197 to i64 | |
br label %199 | |
; <label>:199: ; preds = %188, %193 | |
%.030.ph = phi i64 [ 0, %188 ], [ %198, %193 ] | |
%add26.i74.i348 = sub i64 %add21.i69.i, %.030.ph | |
%200 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%201 = load i64, i64* %200, align 8 | |
%202 = icmp sge i64 %add7.i.i313, %201 | |
%203 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond88 = or i1 %203, %202 | |
br i1 %or.cond88, label %compiled_fn.2.exit81.i, label %204 | |
; <label>:204: ; preds = %199 | |
%.sroa.0256.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0256.0.copyload = load i8*, i8** %.sroa.0256.0..sroa_idx, align 8 | |
%205 = mul nsw i64 %5, %add7.i.i313 | |
%206 = add nsw i64 %205, %add22.i.i | |
%207 = getelementptr inbounds i8, i8* %.sroa.0256.0.copyload, i64 %206 | |
%208 = load i8, i8* %207, align 1 | |
%209 = zext i8 %208 to i64 | |
br label %compiled_fn.2.exit81.i | |
compiled_fn.2.exit81.i: ; preds = %image_source.1.exit39.i72.i, %199, %204 | |
%add26.i74.i350 = phi i64 [ %add26.i74.i348, %204 ], [ %add26.i74.i348, %199 ], [ %add21.i69.i, %image_source.1.exit39.i72.i ] | |
%.034 = phi i64 [ %209, %204 ], [ 0, %199 ], [ 0, %image_source.1.exit39.i72.i ] | |
%add35.i80.i = add i64 %add26.i74.i350, %.034 | |
br i1 %or.cond, label %image_source.1.exit42.i.i, label %210 | |
; <label>:210: ; preds = %compiled_fn.2.exit81.i | |
%211 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%212 = load i64, i64* %211, align 8 | |
%213 = icmp sge i64 %add1.i.i, %212 | |
%214 = icmp slt i64 %add1.i.i, 0 | |
%or.cond90 = or i1 %214, %213 | |
br i1 %or.cond90, label %221, label %215 | |
; <label>:215: ; preds = %210 | |
%.sroa.0200.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0200.0.copyload = load i8*, i8** %.sroa.0200.0..sroa_idx, align 8 | |
%216 = mul nsw i64 %5, %add1.i.i | |
%217 = add nsw i64 %216, %add.i.i | |
%218 = getelementptr inbounds i8, i8* %.sroa.0200.0.copyload, i64 %217 | |
%219 = load i8, i8* %218, align 1 | |
%220 = zext i8 %219 to i64 | |
br label %221 | |
; <label>:221: ; preds = %210, %215 | |
%.022.ph = phi i64 [ 0, %210 ], [ %220, %215 ] | |
%222 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%223 = load i64, i64* %222, align 8 | |
%224 = icmp sge i64 %add7.i.i313, %223 | |
%225 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond94 = or i1 %225, %224 | |
br i1 %or.cond94, label %image_source.1.exit42.i.i, label %226 | |
; <label>:226: ; preds = %221 | |
%.sroa.0240.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0240.0.copyload = load i8*, i8** %.sroa.0240.0..sroa_idx, align 8 | |
%227 = mul nsw i64 %5, %add7.i.i313 | |
%228 = add nsw i64 %227, %add.i.i | |
%229 = getelementptr inbounds i8, i8* %.sroa.0240.0.copyload, i64 %228 | |
%230 = load i8, i8* %229, align 1 | |
%231 = zext i8 %230 to i64 | |
br label %image_source.1.exit42.i.i | |
image_source.1.exit42.i.i: ; preds = %compiled_fn.2.exit81.i, %221, %226 | |
%.022354 = phi i64 [ %.022.ph, %226 ], [ %.022.ph, %221 ], [ 0, %compiled_fn.2.exit81.i ] | |
%.031 = phi i64 [ %231, %226 ], [ 0, %221 ], [ 0, %compiled_fn.2.exit81.i ] | |
%add10.i42.i = sub nsw i64 %.031, %.022354 | |
br i1 %or.cond77, label %image_source.1.exit39.i.i, label %232 | |
; <label>:232: ; preds = %image_source.1.exit42.i.i | |
%233 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%234 = load i64, i64* %233, align 8 | |
%235 = icmp sge i64 %add1.i.i, %234 | |
%236 = icmp slt i64 %add1.i.i, 0 | |
%or.cond96 = or i1 %236, %235 | |
br i1 %or.cond96, label %243, label %237 | |
; <label>:237: ; preds = %232 | |
%.sroa.0232.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0232.0.copyload = load i8*, i8** %.sroa.0232.0..sroa_idx, align 8 | |
%238 = mul nsw i64 %5, %add1.i.i | |
%239 = add nsw i64 %238, %0 | |
%240 = getelementptr inbounds i8, i8* %.sroa.0232.0.copyload, i64 %239 | |
%241 = load i8, i8* %240, align 1 | |
%242 = zext i8 %241 to i64 | |
%phitmp298 = mul nsw i64 %242, -2 | |
br label %243 | |
; <label>:243: ; preds = %232, %237 | |
%.029.ph = phi i64 [ 0, %232 ], [ %phitmp298, %237 ] | |
%add14.i.i356 = add i64 %add10.i42.i, %.029.ph | |
%244 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%245 = load i64, i64* %244, align 8 | |
%246 = icmp sge i64 %add7.i.i313, %245 | |
%247 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond100 = or i1 %247, %246 | |
br i1 %or.cond100, label %image_source.1.exit39.i.i, label %248 | |
; <label>:248: ; preds = %243 | |
%.sroa.0224.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0224.0.copyload = load i8*, i8** %.sroa.0224.0..sroa_idx, align 8 | |
%249 = mul nsw i64 %5, %add7.i.i313 | |
%250 = add nsw i64 %249, %0 | |
%251 = getelementptr inbounds i8, i8* %.sroa.0224.0.copyload, i64 %250 | |
%252 = load i8, i8* %251, align 1 | |
%253 = zext i8 %252 to i64 | |
%phitmp = shl nuw nsw i64 %253, 1 | |
br label %image_source.1.exit39.i.i | |
image_source.1.exit39.i.i: ; preds = %image_source.1.exit42.i.i, %243, %248 | |
%add14.i.i358 = phi i64 [ %add14.i.i356, %248 ], [ %add14.i.i356, %243 ], [ %add10.i42.i, %image_source.1.exit42.i.i ] | |
%.027 = phi i64 [ %phitmp, %248 ], [ 0, %243 ], [ 0, %image_source.1.exit42.i.i ] | |
%add21.i.i = add i64 %add14.i.i358, %.027 | |
br i1 %or.cond47, label %compiled_fn.3.exit, label %254 | |
; <label>:254: ; preds = %image_source.1.exit39.i.i | |
%255 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%256 = load i64, i64* %255, align 8 | |
%257 = icmp sge i64 %add1.i.i, %256 | |
%258 = icmp slt i64 %add1.i.i, 0 | |
%or.cond102 = or i1 %258, %257 | |
br i1 %or.cond102, label %265, label %259 | |
; <label>:259: ; preds = %254 | |
%.sroa.0216.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0216.0.copyload = load i8*, i8** %.sroa.0216.0..sroa_idx, align 8 | |
%260 = mul nsw i64 %5, %add1.i.i | |
%261 = add nsw i64 %260, %add22.i.i | |
%262 = getelementptr inbounds i8, i8* %.sroa.0216.0.copyload, i64 %261 | |
%263 = load i8, i8* %262, align 1 | |
%264 = zext i8 %263 to i64 | |
br label %265 | |
; <label>:265: ; preds = %254, %259 | |
%.026.ph = phi i64 [ 0, %254 ], [ %264, %259 ] | |
%add26.i47.i361 = sub i64 %add21.i.i, %.026.ph | |
%266 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%267 = load i64, i64* %266, align 8 | |
%268 = icmp sge i64 %add7.i.i313, %267 | |
%269 = icmp slt i64 %add7.i.i313, 0 | |
%or.cond106 = or i1 %269, %268 | |
br i1 %or.cond106, label %compiled_fn.3.exit, label %270 | |
; <label>:270: ; preds = %265 | |
%.sroa.0208.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0208.0.copyload = load i8*, i8** %.sroa.0208.0..sroa_idx, align 8 | |
%271 = mul nsw i64 %5, %add7.i.i313 | |
%272 = add nsw i64 %271, %add22.i.i | |
%273 = getelementptr inbounds i8, i8* %.sroa.0208.0.copyload, i64 %272 | |
%274 = load i8, i8* %273, align 1 | |
%275 = zext i8 %274 to i64 | |
br label %compiled_fn.3.exit | |
compiled_fn.3.exit: ; preds = %image_source.1.exit39.i.i, %265, %270 | |
%add26.i47.i363 = phi i64 [ %add26.i47.i361, %270 ], [ %add26.i47.i361, %265 ], [ %add21.i.i, %image_source.1.exit39.i.i ] | |
%.023 = phi i64 [ %275, %270 ], [ 0, %265 ], [ 0, %image_source.1.exit39.i.i ] | |
%add35.i51.i = add i64 %add26.i47.i363, %.023 | |
%mul4.i = mul i64 %add35.i51.i, %add35.i80.i | |
%add.i = add i64 %mul4.i, %mul.i | |
%276 = sitofp i64 %add.i to double | |
%277 = tail call double @sqrt(double %276) #5 | |
%278 = fptosi double %277 to i64 | |
ret i64 %278 | |
} | |
; Function Attrs: alwaysinline nounwind | |
define i64 @image_source(i64, i64, %struct.image* nocapture readonly, i64) local_unnamed_addr #4 { | |
entry: | |
%4 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 1 | |
%5 = load i64, i64* %4, align 8 | |
%6 = icmp sle i64 %5, %0 | |
%7 = icmp slt i64 %0, 0 | |
%or.cond = or i1 %7, %6 | |
br i1 %or.cond, label %core_input_at.exit, label %8 | |
; <label>:8: ; preds = %entry | |
%9 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%10 = load i64, i64* %9, align 8 | |
%11 = icmp sle i64 %10, %1 | |
%12 = icmp slt i64 %1, 0 | |
%or.cond1 = or i1 %12, %11 | |
br i1 %or.cond1, label %core_input_at.exit, label %13 | |
; <label>:13: ; preds = %8 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%14 = mul nsw i64 %5, %1 | |
%15 = add nsw i64 %14, %0 | |
%16 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %15 | |
%17 = load i8, i8* %16, align 1 | |
%18 = zext i8 %17 to i64 | |
br label %core_input_at.exit | |
core_input_at.exit: ; preds = %8, %entry, %13 | |
%.0 = phi i64 [ %18, %13 ], [ 0, %entry ], [ 0, %8 ] | |
ret i64 %.0 | |
} | |
; Function Attrs: alwaysinline nounwind | |
define i64 @compiled_fn(i64, i64, %struct.image* readonly, i64) local_unnamed_addr #4 { | |
entry: | |
%add = add i64 %0, -1 | |
%add1 = add i64 %1, -1 | |
%4 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 1 | |
%5 = load i64, i64* %4, align 8 | |
%6 = icmp sge i64 %add, %5 | |
%7 = icmp slt i64 %add, 0 | |
%or.cond = or i1 %7, %6 | |
br i1 %or.cond, label %image_source.exit43.thread124, label %8 | |
image_source.exit43.thread124: ; preds = %entry | |
%add7126 = add i64 %1, 1 | |
br label %image_source.exit42 | |
; <label>:8: ; preds = %entry | |
%9 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%10 = load i64, i64* %9, align 8 | |
%11 = icmp sge i64 %add1, %10 | |
%12 = icmp slt i64 %add1, 0 | |
%or.cond52 = or i1 %12, %11 | |
br i1 %or.cond52, label %19, label %13 | |
; <label>:13: ; preds = %8 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%14 = mul nsw i64 %5, %add1 | |
%15 = add nsw i64 %14, %add | |
%16 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %15 | |
%17 = load i8, i8* %16, align 1 | |
%18 = zext i8 %17 to i64 | |
br label %19 | |
; <label>:19: ; preds = %8, %13 | |
%.044.ph = phi i64 [ 0, %8 ], [ %18, %13 ] | |
%20 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%21 = load i64, i64* %20, align 8 | |
%22 = icmp sle i64 %21, %1 | |
%23 = icmp slt i64 %1, 0 | |
%or.cond54 = or i1 %23, %22 | |
br i1 %or.cond54, label %30, label %24 | |
; <label>:24: ; preds = %19 | |
%.sroa.0106.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0106.0.copyload = load i8*, i8** %.sroa.0106.0..sroa_idx, align 8 | |
%25 = mul nsw i64 %5, %1 | |
%26 = add nsw i64 %25, %add | |
%27 = getelementptr inbounds i8, i8* %.sroa.0106.0.copyload, i64 %26 | |
%28 = load i8, i8* %27, align 1 | |
%29 = zext i8 %28 to i64 | |
%phitmp114 = mul nsw i64 %29, -2 | |
br label %30 | |
; <label>:30: ; preds = %19, %24 | |
%.0.ph = phi i64 [ 0, %19 ], [ %phitmp114, %24 ] | |
%add5118 = sub i64 %.0.ph, %.044.ph | |
%add7119 = add i64 %1, 1 | |
%31 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%32 = load i64, i64* %31, align 8 | |
%33 = icmp sge i64 %add7119, %32 | |
%34 = icmp slt i64 %add7119, 0 | |
%or.cond56 = or i1 %34, %33 | |
br i1 %or.cond56, label %image_source.exit42, label %35 | |
; <label>:35: ; preds = %30 | |
%.sroa.098.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.098.0.copyload = load i8*, i8** %.sroa.098.0..sroa_idx, align 8 | |
%36 = mul nsw i64 %5, %add7119 | |
%37 = add nsw i64 %36, %add | |
%38 = getelementptr inbounds i8, i8* %.sroa.098.0.copyload, i64 %37 | |
%39 = load i8, i8* %38, align 1 | |
%40 = zext i8 %39 to i64 | |
br label %image_source.exit42 | |
image_source.exit42: ; preds = %image_source.exit43.thread124, %30, %35 | |
%add7123 = phi i64 [ %add7119, %35 ], [ %add7119, %30 ], [ %add7126, %image_source.exit43.thread124 ] | |
%add5121 = phi i64 [ %add5118, %35 ], [ %add5118, %30 ], [ 0, %image_source.exit43.thread124 ] | |
%.049 = phi i64 [ %40, %35 ], [ 0, %30 ], [ 0, %image_source.exit43.thread124 ] | |
%add10 = sub i64 %add5121, %.049 | |
%add22 = add i64 %0, 1 | |
%41 = icmp sge i64 %add22, %5 | |
%42 = icmp slt i64 %add22, 0 | |
%or.cond63 = or i1 %42, %41 | |
br i1 %or.cond63, label %image_source.exit36, label %43 | |
; <label>:43: ; preds = %image_source.exit42 | |
%44 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%45 = load i64, i64* %44, align 8 | |
%46 = icmp sge i64 %add1, %45 | |
%47 = icmp slt i64 %add1, 0 | |
%or.cond64 = or i1 %47, %46 | |
br i1 %or.cond64, label %54, label %48 | |
; <label>:48: ; preds = %43 | |
%.sroa.090.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.090.0.copyload = load i8*, i8** %.sroa.090.0..sroa_idx, align 8 | |
%49 = mul nsw i64 %5, %add1 | |
%50 = add nsw i64 %49, %add22 | |
%51 = getelementptr inbounds i8, i8* %.sroa.090.0.copyload, i64 %50 | |
%52 = load i8, i8* %51, align 1 | |
%53 = zext i8 %52 to i64 | |
br label %54 | |
; <label>:54: ; preds = %43, %48 | |
%.047.ph = phi i64 [ 0, %43 ], [ %53, %48 ] | |
%add26127 = add i64 %add10, %.047.ph | |
%55 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%56 = load i64, i64* %55, align 8 | |
%57 = icmp sle i64 %56, %1 | |
%58 = icmp slt i64 %1, 0 | |
%or.cond66 = or i1 %58, %57 | |
br i1 %or.cond66, label %65, label %59 | |
; <label>:59: ; preds = %54 | |
%.sroa.082.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.082.0.copyload = load i8*, i8** %.sroa.082.0..sroa_idx, align 8 | |
%60 = mul nsw i64 %5, %1 | |
%61 = add nsw i64 %60, %add22 | |
%62 = getelementptr inbounds i8, i8* %.sroa.082.0.copyload, i64 %61 | |
%63 = load i8, i8* %62, align 1 | |
%64 = zext i8 %63 to i64 | |
%phitmp = shl nuw nsw i64 %64, 1 | |
br label %65 | |
; <label>:65: ; preds = %54, %59 | |
%.046.ph = phi i64 [ 0, %54 ], [ %phitmp, %59 ] | |
%add30132 = add i64 %add26127, %.046.ph | |
%66 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%67 = load i64, i64* %66, align 8 | |
%68 = icmp sge i64 %add7123, %67 | |
%69 = icmp slt i64 %add7123, 0 | |
%or.cond68 = or i1 %69, %68 | |
br i1 %or.cond68, label %image_source.exit36, label %70 | |
; <label>:70: ; preds = %65 | |
%.sroa.074.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.074.0.copyload = load i8*, i8** %.sroa.074.0..sroa_idx, align 8 | |
%71 = mul nsw i64 %5, %add7123 | |
%72 = add nsw i64 %71, %add22 | |
%73 = getelementptr inbounds i8, i8* %.sroa.074.0.copyload, i64 %72 | |
%74 = load i8, i8* %73, align 1 | |
%75 = zext i8 %74 to i64 | |
br label %image_source.exit36 | |
image_source.exit36: ; preds = %image_source.exit42, %65, %70 | |
%add30134 = phi i64 [ %add30132, %70 ], [ %add30132, %65 ], [ %add10, %image_source.exit42 ] | |
%.045 = phi i64 [ %75, %70 ], [ 0, %65 ], [ 0, %image_source.exit42 ] | |
%add35 = add i64 %add30134, %.045 | |
ret i64 %add35 | |
} | |
; Function Attrs: alwaysinline nounwind | |
define i64 @image_source.1(i64, i64, %struct.image* nocapture readonly, i64) local_unnamed_addr #4 { | |
entry: | |
%4 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 1 | |
%5 = load i64, i64* %4, align 8 | |
%6 = icmp sle i64 %5, %0 | |
%7 = icmp slt i64 %0, 0 | |
%or.cond = or i1 %7, %6 | |
br i1 %or.cond, label %core_input_at.exit, label %8 | |
; <label>:8: ; preds = %entry | |
%9 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%10 = load i64, i64* %9, align 8 | |
%11 = icmp sle i64 %10, %1 | |
%12 = icmp slt i64 %1, 0 | |
%or.cond1 = or i1 %12, %11 | |
br i1 %or.cond1, label %core_input_at.exit, label %13 | |
; <label>:13: ; preds = %8 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%14 = mul nsw i64 %5, %1 | |
%15 = add nsw i64 %14, %0 | |
%16 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %15 | |
%17 = load i8, i8* %16, align 1 | |
%18 = zext i8 %17 to i64 | |
br label %core_input_at.exit | |
core_input_at.exit: ; preds = %8, %entry, %13 | |
%.0 = phi i64 [ %18, %13 ], [ 0, %entry ], [ 0, %8 ] | |
ret i64 %.0 | |
} | |
; Function Attrs: alwaysinline nounwind | |
define i64 @compiled_fn.2(i64, i64, %struct.image* readonly, i64) local_unnamed_addr #4 { | |
entry: | |
%add = add i64 %0, -1 | |
%add1 = add i64 %1, -1 | |
%4 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 1 | |
%5 = load i64, i64* %4, align 8 | |
%6 = icmp sge i64 %add, %5 | |
%7 = icmp slt i64 %add, 0 | |
%or.cond = or i1 %7, %6 | |
br i1 %or.cond, label %image_source.1.exit.thread120, label %8 | |
image_source.1.exit.thread120: ; preds = %entry | |
%add7121 = add i64 %1, 1 | |
br label %image_source.1.exit42 | |
; <label>:8: ; preds = %entry | |
%9 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%10 = load i64, i64* %9, align 8 | |
%11 = icmp sge i64 %add1, %10 | |
%12 = icmp slt i64 %add1, 0 | |
%or.cond52 = or i1 %12, %11 | |
br i1 %or.cond52, label %19, label %13 | |
; <label>:13: ; preds = %8 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%14 = mul nsw i64 %5, %add1 | |
%15 = add nsw i64 %14, %add | |
%16 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %15 | |
%17 = load i8, i8* %16, align 1 | |
%18 = zext i8 %17 to i64 | |
br label %19 | |
; <label>:19: ; preds = %8, %13 | |
%.044.ph = phi i64 [ 0, %8 ], [ %18, %13 ] | |
%add7115 = add i64 %1, 1 | |
%20 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%21 = load i64, i64* %20, align 8 | |
%22 = icmp sge i64 %add7115, %21 | |
%23 = icmp slt i64 %add7115, 0 | |
%or.cond56 = or i1 %23, %22 | |
br i1 %or.cond56, label %image_source.1.exit42, label %24 | |
; <label>:24: ; preds = %19 | |
%.sroa.0106.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0106.0.copyload = load i8*, i8** %.sroa.0106.0..sroa_idx, align 8 | |
%25 = mul nsw i64 %5, %add7115 | |
%26 = add nsw i64 %25, %add | |
%27 = getelementptr inbounds i8, i8* %.sroa.0106.0.copyload, i64 %26 | |
%28 = load i8, i8* %27, align 1 | |
%29 = zext i8 %28 to i64 | |
br label %image_source.1.exit42 | |
image_source.1.exit42: ; preds = %image_source.1.exit.thread120, %19, %24 | |
%add7119 = phi i64 [ %add7115, %24 ], [ %add7115, %19 ], [ %add7121, %image_source.1.exit.thread120 ] | |
%.044117 = phi i64 [ %.044.ph, %24 ], [ %.044.ph, %19 ], [ 0, %image_source.1.exit.thread120 ] | |
%.049 = phi i64 [ %29, %24 ], [ 0, %19 ], [ 0, %image_source.1.exit.thread120 ] | |
%add10 = sub nsw i64 %.049, %.044117 | |
%30 = icmp sle i64 %5, %0 | |
%31 = icmp slt i64 %0, 0 | |
%or.cond57 = or i1 %31, %30 | |
br i1 %or.cond57, label %image_source.1.exit39, label %32 | |
; <label>:32: ; preds = %image_source.1.exit42 | |
%33 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%34 = load i64, i64* %33, align 8 | |
%35 = icmp sge i64 %add1, %34 | |
%36 = icmp slt i64 %add1, 0 | |
%or.cond58 = or i1 %36, %35 | |
br i1 %or.cond58, label %43, label %37 | |
; <label>:37: ; preds = %32 | |
%.sroa.098.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.098.0.copyload = load i8*, i8** %.sroa.098.0..sroa_idx, align 8 | |
%38 = mul nsw i64 %5, %add1 | |
%39 = add nsw i64 %38, %0 | |
%40 = getelementptr inbounds i8, i8* %.sroa.098.0.copyload, i64 %39 | |
%41 = load i8, i8* %40, align 1 | |
%42 = zext i8 %41 to i64 | |
%phitmp114 = mul nsw i64 %42, -2 | |
br label %43 | |
; <label>:43: ; preds = %32, %37 | |
%.051.ph = phi i64 [ 0, %32 ], [ %phitmp114, %37 ] | |
%add17122 = add i64 %add10, %.051.ph | |
%44 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%45 = load i64, i64* %44, align 8 | |
%46 = icmp sge i64 %add7119, %45 | |
%47 = icmp slt i64 %add7119, 0 | |
%or.cond62 = or i1 %47, %46 | |
br i1 %or.cond62, label %image_source.1.exit39, label %48 | |
; <label>:48: ; preds = %43 | |
%.sroa.090.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.090.0.copyload = load i8*, i8** %.sroa.090.0..sroa_idx, align 8 | |
%49 = mul nsw i64 %5, %add7119 | |
%50 = add nsw i64 %49, %0 | |
%51 = getelementptr inbounds i8, i8* %.sroa.090.0.copyload, i64 %50 | |
%52 = load i8, i8* %51, align 1 | |
%53 = zext i8 %52 to i64 | |
%phitmp = shl nuw nsw i64 %53, 1 | |
br label %image_source.1.exit39 | |
image_source.1.exit39: ; preds = %image_source.1.exit42, %43, %48 | |
%add17124 = phi i64 [ %add17122, %48 ], [ %add17122, %43 ], [ %add10, %image_source.1.exit42 ] | |
%.048 = phi i64 [ %phitmp, %48 ], [ 0, %43 ], [ 0, %image_source.1.exit42 ] | |
%add21 = add i64 %add17124, %.048 | |
%add22 = add i64 %0, 1 | |
%54 = icmp sge i64 %add22, %5 | |
%55 = icmp slt i64 %add22, 0 | |
%or.cond63 = or i1 %55, %54 | |
br i1 %or.cond63, label %image_source.1.exit36, label %56 | |
; <label>:56: ; preds = %image_source.1.exit39 | |
%57 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%58 = load i64, i64* %57, align 8 | |
%59 = icmp sge i64 %add1, %58 | |
%60 = icmp slt i64 %add1, 0 | |
%or.cond64 = or i1 %60, %59 | |
br i1 %or.cond64, label %67, label %61 | |
; <label>:61: ; preds = %56 | |
%.sroa.082.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.082.0.copyload = load i8*, i8** %.sroa.082.0..sroa_idx, align 8 | |
%62 = mul nsw i64 %5, %add1 | |
%63 = add nsw i64 %62, %add22 | |
%64 = getelementptr inbounds i8, i8* %.sroa.082.0.copyload, i64 %63 | |
%65 = load i8, i8* %64, align 1 | |
%66 = zext i8 %65 to i64 | |
br label %67 | |
; <label>:67: ; preds = %56, %61 | |
%.047.ph = phi i64 [ 0, %56 ], [ %66, %61 ] | |
%add26127 = sub i64 %add21, %.047.ph | |
%68 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%69 = load i64, i64* %68, align 8 | |
%70 = icmp sge i64 %add7119, %69 | |
%71 = icmp slt i64 %add7119, 0 | |
%or.cond68 = or i1 %71, %70 | |
br i1 %or.cond68, label %image_source.1.exit36, label %72 | |
; <label>:72: ; preds = %67 | |
%.sroa.074.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.074.0.copyload = load i8*, i8** %.sroa.074.0..sroa_idx, align 8 | |
%73 = mul nsw i64 %5, %add7119 | |
%74 = add nsw i64 %73, %add22 | |
%75 = getelementptr inbounds i8, i8* %.sroa.074.0.copyload, i64 %74 | |
%76 = load i8, i8* %75, align 1 | |
%77 = zext i8 %76 to i64 | |
br label %image_source.1.exit36 | |
image_source.1.exit36: ; preds = %image_source.1.exit39, %67, %72 | |
%add26129 = phi i64 [ %add26127, %72 ], [ %add26127, %67 ], [ %add21, %image_source.1.exit39 ] | |
%.045 = phi i64 [ %77, %72 ], [ 0, %67 ], [ 0, %image_source.1.exit39 ] | |
%add35 = add i64 %add26129, %.045 | |
ret i64 %add35 | |
} | |
; Function Attrs: alwaysinline nounwind | |
define i64 @compiled_fn.3(i64, i64, %struct.image* readonly, i64) local_unnamed_addr #4 { | |
entry: | |
%add.i = add i64 %0, -1 | |
%add1.i = add i64 %1, -1 | |
%4 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 1 | |
%5 = load i64, i64* %4, align 8 | |
%6 = icmp sge i64 %add.i, %5 | |
%7 = icmp slt i64 %add.i, 0 | |
%or.cond = or i1 %7, %6 | |
br i1 %or.cond, label %image_source.exit43.i.thread395, label %8 | |
image_source.exit43.i.thread395: ; preds = %entry | |
%add7.i396 = add i64 %1, 1 | |
br label %image_source.exit42.i | |
; <label>:8: ; preds = %entry | |
%9 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%10 = load i64, i64* %9, align 8 | |
%11 = icmp sge i64 %add1.i, %10 | |
%12 = icmp slt i64 %add1.i, 0 | |
%or.cond117 = or i1 %12, %11 | |
br i1 %or.cond117, label %19, label %13 | |
; <label>:13: ; preds = %8 | |
%.sroa.0.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0.0.copyload = load i8*, i8** %.sroa.0.0..sroa_idx, align 8 | |
%14 = mul nsw i64 %5, %add1.i | |
%15 = add nsw i64 %14, %add.i | |
%16 = getelementptr inbounds i8, i8* %.sroa.0.0.copyload, i64 %15 | |
%17 = load i8, i8* %16, align 1 | |
%18 = zext i8 %17 to i64 | |
br label %19 | |
; <label>:19: ; preds = %8, %13 | |
%.082.ph = phi i64 [ 0, %8 ], [ %18, %13 ] | |
%20 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%21 = load i64, i64* %20, align 8 | |
%22 = icmp sle i64 %21, %1 | |
%23 = icmp slt i64 %1, 0 | |
%or.cond119 = or i1 %23, %22 | |
br i1 %or.cond119, label %30, label %24 | |
; <label>:24: ; preds = %19 | |
%.sroa.0225.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0225.0.copyload = load i8*, i8** %.sroa.0225.0..sroa_idx, align 8 | |
%25 = mul nsw i64 %5, %1 | |
%26 = add nsw i64 %25, %add.i | |
%27 = getelementptr inbounds i8, i8* %.sroa.0225.0.copyload, i64 %26 | |
%28 = load i8, i8* %27, align 1 | |
%29 = zext i8 %28 to i64 | |
br label %30 | |
; <label>:30: ; preds = %19, %24 | |
%.091.ph = phi i64 [ 0, %19 ], [ %29, %24 ] | |
%add7.i388 = add i64 %1, 1 | |
%31 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%32 = load i64, i64* %31, align 8 | |
%33 = icmp sge i64 %add7.i388, %32 | |
%34 = icmp slt i64 %add7.i388, 0 | |
%or.cond121 = or i1 %34, %33 | |
br i1 %or.cond121, label %image_source.exit42.i, label %35 | |
; <label>:35: ; preds = %30 | |
%.sroa.0217.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0217.0.copyload = load i8*, i8** %.sroa.0217.0..sroa_idx, align 8 | |
%36 = mul nsw i64 %5, %add7.i388 | |
%37 = add nsw i64 %36, %add.i | |
%38 = getelementptr inbounds i8, i8* %.sroa.0217.0.copyload, i64 %37 | |
%39 = load i8, i8* %38, align 1 | |
%40 = zext i8 %39 to i64 | |
br label %image_source.exit42.i | |
image_source.exit42.i: ; preds = %image_source.exit43.i.thread395, %30, %35 | |
%add7.i394 = phi i64 [ %add7.i388, %35 ], [ %add7.i388, %30 ], [ %add7.i396, %image_source.exit43.i.thread395 ] | |
%.091392 = phi i64 [ %.091.ph, %35 ], [ %.091.ph, %30 ], [ 0, %image_source.exit43.i.thread395 ] | |
%.082386390 = phi i64 [ %.082.ph, %35 ], [ %.082.ph, %30 ], [ 0, %image_source.exit43.i.thread395 ] | |
%.090 = phi i64 [ %40, %35 ], [ 0, %30 ], [ 0, %image_source.exit43.i.thread395 ] | |
%41 = icmp slt i64 %0, 0 | |
%add22.i = add i64 %0, 1 | |
%42 = icmp sge i64 %add22.i, %5 | |
%43 = icmp slt i64 %add22.i, 0 | |
%or.cond128 = or i1 %43, %42 | |
br i1 %or.cond128, label %compiled_fn.exit, label %44 | |
; <label>:44: ; preds = %image_source.exit42.i | |
%45 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%46 = load i64, i64* %45, align 8 | |
%47 = icmp sge i64 %add1.i, %46 | |
%48 = icmp slt i64 %add1.i, 0 | |
%or.cond129 = or i1 %48, %47 | |
br i1 %or.cond129, label %55, label %49 | |
; <label>:49: ; preds = %44 | |
%.sroa.0209.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0209.0.copyload = load i8*, i8** %.sroa.0209.0..sroa_idx, align 8 | |
%50 = mul nsw i64 %5, %add1.i | |
%51 = add nsw i64 %50, %add22.i | |
%52 = getelementptr inbounds i8, i8* %.sroa.0209.0.copyload, i64 %51 | |
%53 = load i8, i8* %52, align 1 | |
%54 = zext i8 %53 to i64 | |
br label %55 | |
; <label>:55: ; preds = %44, %49 | |
%.085.ph = phi i64 [ 0, %44 ], [ %54, %49 ] | |
%56 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%57 = load i64, i64* %56, align 8 | |
%58 = icmp sle i64 %57, %1 | |
%59 = icmp slt i64 %1, 0 | |
%or.cond131 = or i1 %59, %58 | |
br i1 %or.cond131, label %66, label %60 | |
; <label>:60: ; preds = %55 | |
%.sroa.0201.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0201.0.copyload = load i8*, i8** %.sroa.0201.0..sroa_idx, align 8 | |
%61 = mul nsw i64 %5, %1 | |
%62 = add nsw i64 %61, %add22.i | |
%63 = getelementptr inbounds i8, i8* %.sroa.0201.0.copyload, i64 %62 | |
%64 = load i8, i8* %63, align 1 | |
%65 = zext i8 %64 to i64 | |
br label %66 | |
; <label>:66: ; preds = %55, %60 | |
%.084.ph = phi i64 [ 0, %55 ], [ %65, %60 ] | |
%67 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%68 = load i64, i64* %67, align 8 | |
%69 = icmp sge i64 %add7.i394, %68 | |
%70 = icmp slt i64 %add7.i394, 0 | |
%or.cond133 = or i1 %70, %69 | |
br i1 %or.cond133, label %compiled_fn.exit, label %71 | |
; <label>:71: ; preds = %66 | |
%.sroa.0193.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0193.0.copyload = load i8*, i8** %.sroa.0193.0..sroa_idx, align 8 | |
%72 = mul nsw i64 %5, %add7.i394 | |
%73 = add nsw i64 %72, %add22.i | |
%74 = getelementptr inbounds i8, i8* %.sroa.0193.0.copyload, i64 %73 | |
%75 = load i8, i8* %74, align 1 | |
%76 = zext i8 %75 to i64 | |
br label %compiled_fn.exit | |
compiled_fn.exit: ; preds = %image_source.exit42.i, %66, %71 | |
%.084403 = phi i64 [ %.084.ph, %71 ], [ %.084.ph, %66 ], [ 0, %image_source.exit42.i ] | |
%.085398401 = phi i64 [ %.085.ph, %71 ], [ %.085.ph, %66 ], [ 0, %image_source.exit42.i ] | |
%.083 = phi i64 [ %76, %71 ], [ 0, %66 ], [ 0, %image_source.exit42.i ] | |
%tmp = sub nsw i64 %.084403, %.091392 | |
%tmp380 = shl nsw i64 %tmp, 1 | |
%sum = add nuw nsw i64 %.090, %.082386390 | |
%add26.i = sub nsw i64 %.085398401, %sum | |
%add30.i = add nsw i64 %add26.i, %.083 | |
%add35.i = add nsw i64 %add30.i, %tmp380 | |
br i1 %or.cond, label %image_source.exit42.i19, label %77 | |
; <label>:77: ; preds = %compiled_fn.exit | |
%78 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%79 = load i64, i64* %78, align 8 | |
%80 = icmp sge i64 %add1.i, %79 | |
%81 = icmp slt i64 %add1.i, 0 | |
%or.cond135 = or i1 %81, %80 | |
br i1 %or.cond135, label %88, label %82 | |
; <label>:82: ; preds = %77 | |
%.sroa.0233.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0233.0.copyload = load i8*, i8** %.sroa.0233.0..sroa_idx, align 8 | |
%83 = mul nsw i64 %5, %add1.i | |
%84 = add nsw i64 %83, %add.i | |
%85 = getelementptr inbounds i8, i8* %.sroa.0233.0.copyload, i64 %84 | |
%86 = load i8, i8* %85, align 1 | |
%87 = zext i8 %86 to i64 | |
br label %88 | |
; <label>:88: ; preds = %77, %82 | |
%.092.ph = phi i64 [ 0, %77 ], [ %87, %82 ] | |
%89 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%90 = load i64, i64* %89, align 8 | |
%91 = icmp sle i64 %90, %1 | |
%92 = icmp slt i64 %1, 0 | |
%or.cond137 = or i1 %92, %91 | |
br i1 %or.cond137, label %99, label %93 | |
; <label>:93: ; preds = %88 | |
%.sroa.0273.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0273.0.copyload = load i8*, i8** %.sroa.0273.0..sroa_idx, align 8 | |
%94 = mul nsw i64 %5, %1 | |
%95 = add nsw i64 %94, %add.i | |
%96 = getelementptr inbounds i8, i8* %.sroa.0273.0.copyload, i64 %95 | |
%97 = load i8, i8* %96, align 1 | |
%98 = zext i8 %97 to i64 | |
br label %99 | |
; <label>:99: ; preds = %88, %93 | |
%.0102.ph = phi i64 [ 0, %88 ], [ %98, %93 ] | |
%100 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%101 = load i64, i64* %100, align 8 | |
%102 = icmp sge i64 %add7.i394, %101 | |
%103 = icmp slt i64 %add7.i394, 0 | |
%or.cond139 = or i1 %103, %102 | |
br i1 %or.cond139, label %image_source.exit42.i19, label %104 | |
; <label>:104: ; preds = %99 | |
%.sroa.0265.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0265.0.copyload = load i8*, i8** %.sroa.0265.0..sroa_idx, align 8 | |
%105 = mul nsw i64 %5, %add7.i394 | |
%106 = add nsw i64 %105, %add.i | |
%107 = getelementptr inbounds i8, i8* %.sroa.0265.0.copyload, i64 %106 | |
%108 = load i8, i8* %107, align 1 | |
%109 = zext i8 %108 to i64 | |
br label %image_source.exit42.i19 | |
image_source.exit42.i19: ; preds = %compiled_fn.exit, %99, %104 | |
%.0102411 = phi i64 [ %.0102.ph, %104 ], [ %.0102.ph, %99 ], [ 0, %compiled_fn.exit ] | |
%.092406409 = phi i64 [ %.092.ph, %104 ], [ %.092.ph, %99 ], [ 0, %compiled_fn.exit ] | |
%.0101 = phi i64 [ %109, %104 ], [ 0, %99 ], [ 0, %compiled_fn.exit ] | |
br i1 %or.cond128, label %compiled_fn.exit35, label %110 | |
; <label>:110: ; preds = %image_source.exit42.i19 | |
%111 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%112 = load i64, i64* %111, align 8 | |
%113 = icmp sge i64 %add1.i, %112 | |
%114 = icmp slt i64 %add1.i, 0 | |
%or.cond147 = or i1 %114, %113 | |
br i1 %or.cond147, label %121, label %115 | |
; <label>:115: ; preds = %110 | |
%.sroa.0257.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0257.0.copyload = load i8*, i8** %.sroa.0257.0..sroa_idx, align 8 | |
%116 = mul nsw i64 %5, %add1.i | |
%117 = add nsw i64 %116, %add22.i | |
%118 = getelementptr inbounds i8, i8* %.sroa.0257.0.copyload, i64 %117 | |
%119 = load i8, i8* %118, align 1 | |
%120 = zext i8 %119 to i64 | |
br label %121 | |
; <label>:121: ; preds = %110, %115 | |
%.096.ph = phi i64 [ 0, %110 ], [ %120, %115 ] | |
%122 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%123 = load i64, i64* %122, align 8 | |
%124 = icmp sle i64 %123, %1 | |
%125 = icmp slt i64 %1, 0 | |
%or.cond149 = or i1 %125, %124 | |
br i1 %or.cond149, label %132, label %126 | |
; <label>:126: ; preds = %121 | |
%.sroa.0249.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0249.0.copyload = load i8*, i8** %.sroa.0249.0..sroa_idx, align 8 | |
%127 = mul nsw i64 %5, %1 | |
%128 = add nsw i64 %127, %add22.i | |
%129 = getelementptr inbounds i8, i8* %.sroa.0249.0.copyload, i64 %128 | |
%130 = load i8, i8* %129, align 1 | |
%131 = zext i8 %130 to i64 | |
br label %132 | |
; <label>:132: ; preds = %121, %126 | |
%.095.ph = phi i64 [ 0, %121 ], [ %131, %126 ] | |
%133 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%134 = load i64, i64* %133, align 8 | |
%135 = icmp sge i64 %add7.i394, %134 | |
%136 = icmp slt i64 %add7.i394, 0 | |
%or.cond151 = or i1 %136, %135 | |
br i1 %or.cond151, label %compiled_fn.exit35, label %137 | |
; <label>:137: ; preds = %132 | |
%.sroa.0241.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0241.0.copyload = load i8*, i8** %.sroa.0241.0..sroa_idx, align 8 | |
%138 = mul nsw i64 %5, %add7.i394 | |
%139 = add nsw i64 %138, %add22.i | |
%140 = getelementptr inbounds i8, i8* %.sroa.0241.0.copyload, i64 %139 | |
%141 = load i8, i8* %140, align 1 | |
%142 = zext i8 %141 to i64 | |
br label %compiled_fn.exit35 | |
compiled_fn.exit35: ; preds = %image_source.exit42.i19, %132, %137 | |
%.095419 = phi i64 [ %.095.ph, %137 ], [ %.095.ph, %132 ], [ 0, %image_source.exit42.i19 ] | |
%.096414417 = phi i64 [ %.096.ph, %137 ], [ %.096.ph, %132 ], [ 0, %image_source.exit42.i19 ] | |
%.094 = phi i64 [ %142, %137 ], [ 0, %132 ], [ 0, %image_source.exit42.i19 ] | |
%tmp382 = sub nsw i64 %.095419, %.0102411 | |
%tmp383 = shl nsw i64 %tmp382, 1 | |
%sum384 = add nuw nsw i64 %.0101, %.092406409 | |
%add26.i26 = sub nsw i64 %.096414417, %sum384 | |
%add30.i30 = add nsw i64 %add26.i26, %.094 | |
%add35.i34 = add nsw i64 %add30.i30, %tmp383 | |
%mul = mul nsw i64 %add35.i34, %add35.i | |
br i1 %or.cond, label %image_source.1.exit42.i62, label %143 | |
; <label>:143: ; preds = %compiled_fn.exit35 | |
%144 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%145 = load i64, i64* %144, align 8 | |
%146 = icmp sge i64 %add1.i, %145 | |
%147 = icmp slt i64 %add1.i, 0 | |
%or.cond153 = or i1 %147, %146 | |
br i1 %or.cond153, label %154, label %148 | |
; <label>:148: ; preds = %143 | |
%.sroa.0329.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0329.0.copyload = load i8*, i8** %.sroa.0329.0..sroa_idx, align 8 | |
%149 = mul nsw i64 %5, %add1.i | |
%150 = add nsw i64 %149, %add.i | |
%151 = getelementptr inbounds i8, i8* %.sroa.0329.0.copyload, i64 %150 | |
%152 = load i8, i8* %151, align 1 | |
%153 = zext i8 %152 to i64 | |
br label %154 | |
; <label>:154: ; preds = %143, %148 | |
%.0114.ph = phi i64 [ 0, %143 ], [ %153, %148 ] | |
%155 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%156 = load i64, i64* %155, align 8 | |
%157 = icmp sge i64 %add7.i394, %156 | |
%158 = icmp slt i64 %add7.i394, 0 | |
%or.cond157 = or i1 %158, %157 | |
br i1 %or.cond157, label %image_source.1.exit42.i62, label %159 | |
; <label>:159: ; preds = %154 | |
%.sroa.0369.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0369.0.copyload = load i8*, i8** %.sroa.0369.0..sroa_idx, align 8 | |
%160 = mul nsw i64 %5, %add7.i394 | |
%161 = add nsw i64 %160, %add.i | |
%162 = getelementptr inbounds i8, i8* %.sroa.0369.0.copyload, i64 %161 | |
%163 = load i8, i8* %162, align 1 | |
%164 = zext i8 %163 to i64 | |
br label %image_source.1.exit42.i62 | |
image_source.1.exit42.i62: ; preds = %compiled_fn.exit35, %154, %159 | |
%.0114422 = phi i64 [ %.0114.ph, %159 ], [ %.0114.ph, %154 ], [ 0, %compiled_fn.exit35 ] | |
%.087 = phi i64 [ %164, %159 ], [ 0, %154 ], [ 0, %compiled_fn.exit35 ] | |
%add10.i60 = sub nsw i64 %.087, %.0114422 | |
%165 = icmp sle i64 %5, %0 | |
%or.cond158 = or i1 %41, %165 | |
br i1 %or.cond158, label %image_source.1.exit39.i72, label %166 | |
; <label>:166: ; preds = %image_source.1.exit42.i62 | |
%167 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%168 = load i64, i64* %167, align 8 | |
%169 = icmp sge i64 %add1.i, %168 | |
%170 = icmp slt i64 %add1.i, 0 | |
%or.cond159 = or i1 %170, %169 | |
br i1 %or.cond159, label %177, label %171 | |
; <label>:171: ; preds = %166 | |
%.sroa.0361.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0361.0.copyload = load i8*, i8** %.sroa.0361.0..sroa_idx, align 8 | |
%172 = mul nsw i64 %5, %add1.i | |
%173 = add nsw i64 %172, %0 | |
%174 = getelementptr inbounds i8, i8* %.sroa.0361.0.copyload, i64 %173 | |
%175 = load i8, i8* %174, align 1 | |
%176 = zext i8 %175 to i64 | |
%phitmp377 = mul nsw i64 %176, -2 | |
br label %177 | |
; <label>:177: ; preds = %166, %171 | |
%.093.ph = phi i64 [ 0, %166 ], [ %phitmp377, %171 ] | |
%add14.i64424 = add i64 %add10.i60, %.093.ph | |
%178 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%179 = load i64, i64* %178, align 8 | |
%180 = icmp sge i64 %add7.i394, %179 | |
%181 = icmp slt i64 %add7.i394, 0 | |
%or.cond163 = or i1 %181, %180 | |
br i1 %or.cond163, label %image_source.1.exit39.i72, label %182 | |
; <label>:182: ; preds = %177 | |
%.sroa.0353.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0353.0.copyload = load i8*, i8** %.sroa.0353.0..sroa_idx, align 8 | |
%183 = mul nsw i64 %5, %add7.i394 | |
%184 = add nsw i64 %183, %0 | |
%185 = getelementptr inbounds i8, i8* %.sroa.0353.0.copyload, i64 %184 | |
%186 = load i8, i8* %185, align 1 | |
%187 = zext i8 %186 to i64 | |
%phitmp378 = shl nuw nsw i64 %187, 1 | |
br label %image_source.1.exit39.i72 | |
image_source.1.exit39.i72: ; preds = %image_source.1.exit42.i62, %177, %182 | |
%add14.i64426 = phi i64 [ %add14.i64424, %182 ], [ %add14.i64424, %177 ], [ %add10.i60, %image_source.1.exit42.i62 ] | |
%.0105 = phi i64 [ %phitmp378, %182 ], [ 0, %177 ], [ 0, %image_source.1.exit42.i62 ] | |
%add21.i69 = add i64 %add14.i64426, %.0105 | |
br i1 %or.cond128, label %compiled_fn.2.exit81, label %188 | |
; <label>:188: ; preds = %image_source.1.exit39.i72 | |
%189 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%190 = load i64, i64* %189, align 8 | |
%191 = icmp sge i64 %add1.i, %190 | |
%192 = icmp slt i64 %add1.i, 0 | |
%or.cond165 = or i1 %192, %191 | |
br i1 %or.cond165, label %199, label %193 | |
; <label>:193: ; preds = %188 | |
%.sroa.0345.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0345.0.copyload = load i8*, i8** %.sroa.0345.0..sroa_idx, align 8 | |
%194 = mul nsw i64 %5, %add1.i | |
%195 = add nsw i64 %194, %add22.i | |
%196 = getelementptr inbounds i8, i8* %.sroa.0345.0.copyload, i64 %195 | |
%197 = load i8, i8* %196, align 1 | |
%198 = zext i8 %197 to i64 | |
br label %199 | |
; <label>:199: ; preds = %188, %193 | |
%.0111.ph = phi i64 [ 0, %188 ], [ %198, %193 ] | |
%add26.i74429 = sub i64 %add21.i69, %.0111.ph | |
%200 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%201 = load i64, i64* %200, align 8 | |
%202 = icmp sge i64 %add7.i394, %201 | |
%203 = icmp slt i64 %add7.i394, 0 | |
%or.cond169 = or i1 %203, %202 | |
br i1 %or.cond169, label %compiled_fn.2.exit81, label %204 | |
; <label>:204: ; preds = %199 | |
%.sroa.0337.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0337.0.copyload = load i8*, i8** %.sroa.0337.0..sroa_idx, align 8 | |
%205 = mul nsw i64 %5, %add7.i394 | |
%206 = add nsw i64 %205, %add22.i | |
%207 = getelementptr inbounds i8, i8* %.sroa.0337.0.copyload, i64 %206 | |
%208 = load i8, i8* %207, align 1 | |
%209 = zext i8 %208 to i64 | |
br label %compiled_fn.2.exit81 | |
compiled_fn.2.exit81: ; preds = %image_source.1.exit39.i72, %199, %204 | |
%add26.i74431 = phi i64 [ %add26.i74429, %204 ], [ %add26.i74429, %199 ], [ %add21.i69, %image_source.1.exit39.i72 ] | |
%.0115 = phi i64 [ %209, %204 ], [ 0, %199 ], [ 0, %image_source.1.exit39.i72 ] | |
%add35.i80 = add i64 %add26.i74431, %.0115 | |
br i1 %or.cond, label %image_source.1.exit42.i, label %210 | |
; <label>:210: ; preds = %compiled_fn.2.exit81 | |
%211 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%212 = load i64, i64* %211, align 8 | |
%213 = icmp sge i64 %add1.i, %212 | |
%214 = icmp slt i64 %add1.i, 0 | |
%or.cond171 = or i1 %214, %213 | |
br i1 %or.cond171, label %221, label %215 | |
; <label>:215: ; preds = %210 | |
%.sroa.0281.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0281.0.copyload = load i8*, i8** %.sroa.0281.0..sroa_idx, align 8 | |
%216 = mul nsw i64 %5, %add1.i | |
%217 = add nsw i64 %216, %add.i | |
%218 = getelementptr inbounds i8, i8* %.sroa.0281.0.copyload, i64 %217 | |
%219 = load i8, i8* %218, align 1 | |
%220 = zext i8 %219 to i64 | |
br label %221 | |
; <label>:221: ; preds = %210, %215 | |
%.0103.ph = phi i64 [ 0, %210 ], [ %220, %215 ] | |
%222 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%223 = load i64, i64* %222, align 8 | |
%224 = icmp sge i64 %add7.i394, %223 | |
%225 = icmp slt i64 %add7.i394, 0 | |
%or.cond175 = or i1 %225, %224 | |
br i1 %or.cond175, label %image_source.1.exit42.i, label %226 | |
; <label>:226: ; preds = %221 | |
%.sroa.0321.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0321.0.copyload = load i8*, i8** %.sroa.0321.0..sroa_idx, align 8 | |
%227 = mul nsw i64 %5, %add7.i394 | |
%228 = add nsw i64 %227, %add.i | |
%229 = getelementptr inbounds i8, i8* %.sroa.0321.0.copyload, i64 %228 | |
%230 = load i8, i8* %229, align 1 | |
%231 = zext i8 %230 to i64 | |
br label %image_source.1.exit42.i | |
image_source.1.exit42.i: ; preds = %compiled_fn.2.exit81, %221, %226 | |
%.0103435 = phi i64 [ %.0103.ph, %226 ], [ %.0103.ph, %221 ], [ 0, %compiled_fn.2.exit81 ] | |
%.0112 = phi i64 [ %231, %226 ], [ 0, %221 ], [ 0, %compiled_fn.2.exit81 ] | |
%add10.i42 = sub nsw i64 %.0112, %.0103435 | |
br i1 %or.cond158, label %image_source.1.exit39.i, label %232 | |
; <label>:232: ; preds = %image_source.1.exit42.i | |
%233 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%234 = load i64, i64* %233, align 8 | |
%235 = icmp sge i64 %add1.i, %234 | |
%236 = icmp slt i64 %add1.i, 0 | |
%or.cond177 = or i1 %236, %235 | |
br i1 %or.cond177, label %243, label %237 | |
; <label>:237: ; preds = %232 | |
%.sroa.0313.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0313.0.copyload = load i8*, i8** %.sroa.0313.0..sroa_idx, align 8 | |
%238 = mul nsw i64 %5, %add1.i | |
%239 = add nsw i64 %238, %0 | |
%240 = getelementptr inbounds i8, i8* %.sroa.0313.0.copyload, i64 %239 | |
%241 = load i8, i8* %240, align 1 | |
%242 = zext i8 %241 to i64 | |
%phitmp379 = mul nsw i64 %242, -2 | |
br label %243 | |
; <label>:243: ; preds = %232, %237 | |
%.0110.ph = phi i64 [ 0, %232 ], [ %phitmp379, %237 ] | |
%add14.i437 = add i64 %add10.i42, %.0110.ph | |
%244 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%245 = load i64, i64* %244, align 8 | |
%246 = icmp sge i64 %add7.i394, %245 | |
%247 = icmp slt i64 %add7.i394, 0 | |
%or.cond181 = or i1 %247, %246 | |
br i1 %or.cond181, label %image_source.1.exit39.i, label %248 | |
; <label>:248: ; preds = %243 | |
%.sroa.0305.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0305.0.copyload = load i8*, i8** %.sroa.0305.0..sroa_idx, align 8 | |
%249 = mul nsw i64 %5, %add7.i394 | |
%250 = add nsw i64 %249, %0 | |
%251 = getelementptr inbounds i8, i8* %.sroa.0305.0.copyload, i64 %250 | |
%252 = load i8, i8* %251, align 1 | |
%253 = zext i8 %252 to i64 | |
%phitmp = shl nuw nsw i64 %253, 1 | |
br label %image_source.1.exit39.i | |
image_source.1.exit39.i: ; preds = %image_source.1.exit42.i, %243, %248 | |
%add14.i439 = phi i64 [ %add14.i437, %248 ], [ %add14.i437, %243 ], [ %add10.i42, %image_source.1.exit42.i ] | |
%.0108 = phi i64 [ %phitmp, %248 ], [ 0, %243 ], [ 0, %image_source.1.exit42.i ] | |
%add21.i = add i64 %add14.i439, %.0108 | |
br i1 %or.cond128, label %compiled_fn.2.exit, label %254 | |
; <label>:254: ; preds = %image_source.1.exit39.i | |
%255 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%256 = load i64, i64* %255, align 8 | |
%257 = icmp sge i64 %add1.i, %256 | |
%258 = icmp slt i64 %add1.i, 0 | |
%or.cond183 = or i1 %258, %257 | |
br i1 %or.cond183, label %265, label %259 | |
; <label>:259: ; preds = %254 | |
%.sroa.0297.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0297.0.copyload = load i8*, i8** %.sroa.0297.0..sroa_idx, align 8 | |
%260 = mul nsw i64 %5, %add1.i | |
%261 = add nsw i64 %260, %add22.i | |
%262 = getelementptr inbounds i8, i8* %.sroa.0297.0.copyload, i64 %261 | |
%263 = load i8, i8* %262, align 1 | |
%264 = zext i8 %263 to i64 | |
br label %265 | |
; <label>:265: ; preds = %254, %259 | |
%.0107.ph = phi i64 [ 0, %254 ], [ %264, %259 ] | |
%add26.i47442 = sub i64 %add21.i, %.0107.ph | |
%266 = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 2 | |
%267 = load i64, i64* %266, align 8 | |
%268 = icmp sge i64 %add7.i394, %267 | |
%269 = icmp slt i64 %add7.i394, 0 | |
%or.cond187 = or i1 %269, %268 | |
br i1 %or.cond187, label %compiled_fn.2.exit, label %270 | |
; <label>:270: ; preds = %265 | |
%.sroa.0289.0..sroa_idx = getelementptr inbounds %struct.image, %struct.image* %2, i64 0, i32 0 | |
%.sroa.0289.0.copyload = load i8*, i8** %.sroa.0289.0..sroa_idx, align 8 | |
%271 = mul nsw i64 %5, %add7.i394 | |
%272 = add nsw i64 %271, %add22.i | |
%273 = getelementptr inbounds i8, i8* %.sroa.0289.0.copyload, i64 %272 | |
%274 = load i8, i8* %273, align 1 | |
%275 = zext i8 %274 to i64 | |
br label %compiled_fn.2.exit | |
compiled_fn.2.exit: ; preds = %image_source.1.exit39.i, %265, %270 | |
%add26.i47444 = phi i64 [ %add26.i47442, %270 ], [ %add26.i47442, %265 ], [ %add21.i, %image_source.1.exit39.i ] | |
%.0104 = phi i64 [ %275, %270 ], [ 0, %265 ], [ 0, %image_source.1.exit39.i ] | |
%add35.i51 = add i64 %add26.i47444, %.0104 | |
%mul4 = mul i64 %add35.i51, %add35.i80 | |
%add = add i64 %mul4, %mul | |
%276 = sitofp i64 %add to double | |
%277 = tail call double @sqrt(double %276) #5 | |
%278 = fptosi double %277 to i64 | |
ret i64 %278 | |
} | |
attributes #0 = { alwaysinline norecurse nounwind readnone uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #1 = { alwaysinline nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #2 = { alwaysinline nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #3 = { alwaysinline inlinehint nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #4 = { alwaysinline nounwind } | |
attributes #5 = { nounwind } | |
!llvm.ident = !{!0} | |
!0 = !{!"clang version 3.9.0 (https://github.com/llvm-mirror/clang.git 4d2d3547c6bcc274ef94482d7899f57d0a8e0967) (https://github.com/llvm-mirror/llvm.git 2605c1b13c0b3b5dafd6af8dd38c29a441e7be74)"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment