Last active
August 12, 2016 02:46
-
-
Save dpzmick/95587dbb2972e256e51b888add3364a6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; 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