Advertisement
Guest User

Untitled

a guest
May 14th, 2017
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 164.17 KB | None | 0 0
  1. ; Function Attrs: nounwind
  2. define i32 @memory_profiler_mandelbrot(float %x_min, float %x_max, float %y_min, float %y_max, float %c_real, float %c_imag, i32 %iters, i32 %w, i32 %h, %struct.halide_buffer_t* noalias %f1.buffer) local_unnamed_addr #8 {
  3. entry:
  4.   %__cilkrts_sf = alloca %__cilkrts_stack_frame, align 8
  5.   call void @__cilkrts_enter_frame_1(%__cilkrts_stack_frame* %__cilkrts_sf)
  6.   %0 = alloca i8*, align 8
  7.   store i8* null, i8** %0, align 8
  8.   %1 = alloca i8*, align 8
  9.   store i8* null, i8** %1, align 8
  10.   %2 = alloca [8 x i32], align 4
  11.   %profiling_func_stack_peak_buf55 = alloca [4 x i64], align 32
  12.   %profiling_func_names56 = alloca <4 x i64>, align 32
  13.   %profiling_func_names56.sub = getelementptr inbounds <4 x i64>, <4 x i64>* %profiling_func_names56, i64 0, i64 0
  14.   %3 = tail call %struct.halide_profiler_state* @halide_profiler_get_state() #9
  15.   %4 = bitcast %struct.halide_profiler_state* %3 to i8*
  16.   store <4 x i64> <i64 ptrtoint ([9 x i8]* @str to i64), i64 ptrtoint ([3 x i8]* @str.163 to i64), i64 ptrtoint ([3 x i8]* @str.164 to i64), i64 ptrtoint ([7 x i8]* @str.165 to i64)>, <4 x i64>* %profiling_func_names56, align 32, !tbaa !185
  17.   %5 = getelementptr inbounds [4 x i64], [4 x i64]* %profiling_func_stack_peak_buf55, i64 0, i64 3
  18.   %6 = bitcast [4 x i64]* %profiling_func_stack_peak_buf55 to i8*
  19.   call void @llvm.memset.p0i8.i64(i8* nonnull %6, i8 0, i64 24, i32 32, i1 false)
  20.   store i64 20, i64* %5, align 8, !tbaa !197
  21.   %profiler_token = call i32 @halide_profiler_pipeline_start(i8* null, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.166, i64 0, i64 0), i32 4, i64* nonnull %profiling_func_names56.sub) #9
  22.   %7 = icmp sgt i32 %profiler_token, -1
  23.   br i1 %7, label %"assert succeeded", label %destructor_block, !prof !210
  24.  
  25. destructor_block:                                 ; preds = %entry, %"assert failed30", %"assert failed26", %"assert failed24", %"assert failed22", %"assert failed20", %"assert failed16", %"assert failed14", %"assert failed12", %"assert failed10", %"assert failed8", %"assert failed6", %"assert failed1"
  26.   %8 = phi i32 [ %13, %"assert failed1" ], [ %64, %"assert failed6" ], [ %69, %"assert failed8" ], [ %71, %"assert failed10" ], [ %76, %"assert failed12" ], [ %78, %"assert failed14" ], [ %80, %"assert failed16" ], [ %88, %"assert failed20" ], [ %90, %"assert failed22" ], [ %233, %"assert failed24" ], [ %236, %"assert failed26" ], [ %239, %"assert failed30" ], [ %profiler_token, %entry ]
  27.   %.0.127 = load i8*, i8** %0, align 8
  28.   store i8* null, i8** %0, align 8
  29.   %tobool.i = icmp eq i8* %.0.127, null
  30.   %should_call.not.i = icmp eq i32 %8, 0
  31.   %brmerge.i = or i1 %should_call.not.i, %tobool.i
  32.   br i1 %brmerge.i, label %call_destructor.exit, label %if.then.i
  33.  
  34. if.then.i:                                        ; preds = %destructor_block
  35.   call void @halide_free(i8* null, i8* nonnull %.0.127) #12
  36.   br label %call_destructor.exit
  37.  
  38. call_destructor.exit:                             ; preds = %destructor_block, %if.then.i
  39.   %.0.125 = load i8*, i8** %1, align 8
  40.   store i8* null, i8** %1, align 8
  41.   %tobool.i60 = icmp eq i8* %.0.125, null
  42.   %brmerge.i62 = or i1 %should_call.not.i, %tobool.i60
  43.   br i1 %brmerge.i62, label %call_destructor.exit65, label %if.then.i63
  44.  
  45. if.then.i63:                                      ; preds = %call_destructor.exit
  46.   call void @halide_free(i8* null, i8* nonnull %.0.125) #12
  47.   br label %call_destructor.exit65
  48.  
  49. call_destructor.exit65:                           ; preds = %call_destructor.exit, %call_destructor.exit.thread, %if.then.i63
  50.   %9 = phi i32 [ %8, %if.then.i63 ], [ 0, %call_destructor.exit.thread ], [ %8, %call_destructor.exit ]
  51.   %tobool.i66 = icmp eq %struct.halide_profiler_state* %3, null
  52.   br i1 %tobool.i66, label %call_destructor.exit69, label %if.then.i67
  53.  
  54. if.then.i67:                                      ; preds = %call_destructor.exit65
  55.   call void @halide_profiler_pipeline_end(i8* null, i8* nonnull %4) #12
  56.   br label %call_destructor.exit69
  57.  
  58. call_destructor.exit69:                           ; preds = %call_destructor.exit65, %if.then.i67
  59.   call void @__cilk_parent_epilogue(%__cilkrts_stack_frame* %__cilkrts_sf)
  60.   ret i32 %9
  61.  
  62. "assert succeeded":                               ; preds = %entry
  63.   %profiling_func_stack_peak_buf55.sub = getelementptr inbounds [4 x i64], [4 x i64]* %profiling_func_stack_peak_buf55, i64 0, i64 0
  64.   %profiler_state = call %struct.halide_profiler_state* @halide_profiler_get_state() #9
  65.   %profiler_pipeline_state = call %struct.halide_profiler_pipeline_stats* @halide_profiler_get_pipeline_state(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.166, i64 0, i64 0)) #9
  66.   %active_threads.i = getelementptr inbounds %struct.halide_profiler_state, %struct.halide_profiler_state* %profiler_state, i64 0, i32 4
  67.   call void asm sideeffect "", ""() #9, !srcloc !177
  68.   %10 = atomicrmw add i32* %active_threads.i, i32 1 seq_cst
  69.   call void asm sideeffect "", ""() #9, !srcloc !178
  70.   %11 = bitcast %struct.halide_profiler_pipeline_stats* %profiler_pipeline_state to i8*
  71.   call void @halide_profiler_stack_peak_update(i8* null, i8* %11, i64* nonnull %profiling_func_stack_peak_buf55.sub) #9
  72.   %12 = icmp eq %struct.halide_buffer_t* %f1.buffer, null
  73.   br i1 %12, label %"assert failed1", label %"assert succeeded2", !prof !211
  74.  
  75. "assert failed1":                                 ; preds = %"assert succeeded"
  76.   %13 = call i32 @halide_error_buffer_argument_is_null(i8* null, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str.163, i64 0, i64 0)) #9
  77.   br label %destructor_block
  78.  
  79. "assert succeeded2":                              ; preds = %"assert succeeded"
  80.   %host.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 2
  81.   %14 = load i8*, i8** %host.i, align 8, !tbaa !87
  82.   %code.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 4, i32 0
  83.   %15 = load i8, i8* %code.i, align 8, !tbaa !212
  84.   %bits.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 4, i32 1
  85.   %16 = load i8, i8* %bits.i, align 1, !tbaa !213
  86.   %lanes.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 4, i32 2
  87.   %17 = load i16, i16* %lanes.i, align 2, !tbaa !214
  88.   %dim.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 6
  89.   %18 = load %struct.halide_dimension_t*, %struct.halide_dimension_t** %dim.i, align 8, !tbaa !67
  90.   %min.i = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %18, i64 0, i32 0
  91.   %19 = load i32, i32* %min.i, align 4, !tbaa !71
  92.   %extent.i = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %18, i64 0, i32 1
  93.   %20 = load i32, i32* %extent.i, align 4, !tbaa !69
  94.   %stride.i = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %18, i64 0, i32 2
  95.   %21 = load i32, i32* %stride.i, align 4, !tbaa !72
  96.   %min.i77 = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %18, i64 1, i32 0
  97.   %22 = load i32, i32* %min.i77, align 4, !tbaa !71
  98.   %extent.i81 = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %18, i64 1, i32 1
  99.   %23 = load i32, i32* %extent.i81, align 4, !tbaa !69
  100.   %stride.i83 = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %18, i64 1, i32 2
  101.   %24 = load i32, i32* %stride.i83, align 4, !tbaa !72
  102.   %25 = add nsw i32 %20, %19
  103.   %b2 = add nsw i32 %25, -8
  104.   %26 = icmp sgt i32 %b2, %19
  105.   %27 = select i1 %26, i32 %19, i32 %b2
  106.   %28 = add nsw i32 %20, -1
  107.   %29 = and i32 %28, -8
  108.   %30 = add i32 %19, 7
  109.   %a1 = add i32 %30, %29
  110.   %b3 = add nsw i32 %25, -1
  111.   %31 = icmp sgt i32 %b3, %a1
  112.   %32 = select i1 %31, i32 %a1, i32 %b3
  113.   %33 = add nsw i32 %23, %22
  114.   %b5 = add nsw i32 %33, -8
  115.   %34 = icmp sgt i32 %b5, %22
  116.   %35 = select i1 %34, i32 %22, i32 %b5
  117.   %36 = add nsw i32 %23, -1
  118.   %37 = and i32 %36, -8
  119.   %38 = add i32 %22, 7
  120.   %a4 = add i32 %38, %37
  121.   %b6 = add nsw i32 %33, -1
  122.   %39 = icmp sgt i32 %b6, %a4
  123.   %40 = select i1 %39, i32 %a4, i32 %b6
  124.   %cmp.i = icmp eq i8* %14, null
  125.   br i1 %cmp.i, label %_halide_buffer_is_bounds_query.exit, label %true_bb3
  126.  
  127. _halide_buffer_is_bounds_query.exit:              ; preds = %"assert succeeded2"
  128.   %device.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 0
  129.   %41 = load i64, i64* %device.i, align 8, !tbaa !117
  130.   %cmp1.i = icmp eq i64 %41, 0
  131.   br i1 %cmp1.i, label %after_bb, label %_halide_buffer_is_bounds_query.exit101
  132.  
  133. after_bb:                                         ; preds = %_halide_buffer_is_bounds_query.exit
  134.   %f1.extent.0.required.s = sub nsw i32 %32, %27
  135.   %42 = add nsw i32 %f1.extent.0.required.s, 1
  136.   %f1.extent.1.required.s = sub i32 1, %35
  137.   %43 = add i32 %f1.extent.1.required.s, %40
  138.   %44 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 0
  139.   store i32 %27, i32* %44, align 4
  140.   %45 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 1
  141.   store i32 %42, i32* %45, align 4
  142.   %46 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 2
  143.   store i32 1, i32* %46, align 4
  144.   %47 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 3
  145.   store i32 0, i32* %47, align 4
  146.   %48 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 4
  147.   store i32 %35, i32* %48, align 4
  148.   %49 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 5
  149.   store i32 %43, i32* %49, align 4
  150.   %50 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 6
  151.   store i32 %42, i32* %50, align 4
  152.   %51 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 7
  153.   store i32 0, i32* %51, align 4
  154.   store i8 0, i8* %code.i, align 8, !tbaa !212
  155.   %52 = bitcast %struct.halide_buffer_t* %f1.buffer to i8*
  156.   call void @llvm.memset.p0i8.i64(i8* %52, i8 0, i64 24, i32 8, i1 false)
  157.   store i8 32, i8* %bits.i, align 1, !tbaa !213
  158.   store i16 1, i16* %lanes.i, align 2, !tbaa !214
  159.   %dimensions7.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 5
  160.   store i32 2, i32* %dimensions7.i, align 4, !tbaa !65
  161.   %53 = bitcast %struct.halide_dimension_t* %18 to i8*
  162.   %54 = bitcast [8 x i32]* %2 to i8*
  163.   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %53, i8* nonnull %54, i64 16, i32 4, i1 false) #9, !tbaa.struct !68
  164.   %.pre.i = load %struct.halide_dimension_t*, %struct.halide_dimension_t** %dim.i, align 8, !tbaa !67
  165.   %arrayidx.i = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 4
  166.   %arrayidx12.i = getelementptr inbounds %struct.halide_dimension_t, %struct.halide_dimension_t* %.pre.i, i64 1
  167.   %55 = bitcast %struct.halide_dimension_t* %arrayidx12.i to i8*
  168.   %56 = bitcast i32* %arrayidx.i to i8*
  169.   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %55, i8* %56, i64 16, i32 4, i1 false) #9, !tbaa.struct !68
  170.   %flags13.i = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 3
  171.   store i64 0, i64* %flags13.i, align 8, !tbaa !119
  172.   %.pre = load i8*, i8** %host.i, align 8, !tbaa !87
  173.   %cmp.i97 = icmp eq i8* %.pre, null
  174.   br i1 %cmp.i97, label %_halide_buffer_is_bounds_query.exit101, label %true_bb3
  175.  
  176. _halide_buffer_is_bounds_query.exit101:           ; preds = %_halide_buffer_is_bounds_query.exit, %after_bb
  177.   %device.i98 = getelementptr inbounds %struct.halide_buffer_t, %struct.halide_buffer_t* %f1.buffer, i64 0, i32 0
  178.   %57 = load i64, i64* %device.i98, align 8, !tbaa !117
  179.   %cmp1.i99 = icmp eq i64 %57, 0
  180.   br i1 %cmp1.i99, label %call_destructor.exit.thread, label %true_bb3
  181.  
  182. true_bb3:                                         ; preds = %"assert succeeded2", %after_bb, %_halide_buffer_is_bounds_query.exit101
  183.   %58 = icmp eq i16 %17, 1
  184.   %59 = icmp eq i8 %16, 32
  185.   %60 = icmp eq i8 %15, 0
  186.   %61 = and i1 %60, %59
  187.   %62 = and i1 %61, %58
  188.   br i1 %62, label %"assert succeeded7", label %"assert failed6", !prof !210
  189.  
  190. call_destructor.exit.thread:                      ; preds = %_halide_buffer_is_bounds_query.exit101, %"sync pfor f1.s0.v1.v18"
  191.   call void asm sideeffect "", ""() #9, !srcloc !179
  192.   %63 = atomicrmw sub i32* %active_threads.i, i32 1 seq_cst
  193.   call void asm sideeffect "", ""() #9, !srcloc !180
  194.   store i8* null, i8** %0, align 8
  195.   store i8* null, i8** %1, align 8
  196.   br label %call_destructor.exit65
  197.  
  198. "assert failed6":                                 ; preds = %true_bb3
  199.   %64 = call i32 @halide_error_bad_type(i8* null, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str.167, i64 0, i64 0), i8 %15, i8 0, i8 %16, i8 32, i16 %17, i16 1) #9
  200.   br label %destructor_block
  201.  
  202. "assert succeeded7":                              ; preds = %true_bb3
  203.   %65 = sub nsw i32 %32, %20
  204.   %66 = icmp slt i32 %65, %19
  205.   %67 = icmp sle i32 %19, %b2
  206.   %68 = and i1 %67, %66
  207.   br i1 %68, label %"assert succeeded9", label %"assert failed8", !prof !210
  208.  
  209. "assert failed8":                                 ; preds = %"assert succeeded7"
  210.   %69 = call i32 @halide_error_access_out_of_bounds(i8* null, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str.167, i64 0, i64 0), i32 0, i32 %27, i32 %32, i32 %19, i32 %b3) #9
  211.   br label %destructor_block
  212.  
  213. "assert succeeded9":                              ; preds = %"assert succeeded7"
  214.   %70 = icmp sgt i32 %20, -1
  215.   br i1 %70, label %"assert succeeded11", label %"assert failed10", !prof !210
  216.  
  217. "assert failed10":                                ; preds = %"assert succeeded9"
  218.   %71 = call i32 @halide_error_buffer_extents_negative(i8* null, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str.167, i64 0, i64 0), i32 0, i32 %20) #9
  219.   br label %destructor_block
  220.  
  221. "assert succeeded11":                             ; preds = %"assert succeeded9"
  222.   %72 = sub nsw i32 %40, %23
  223.   %73 = icmp slt i32 %72, %22
  224.   %74 = icmp sle i32 %22, %b5
  225.   %75 = and i1 %74, %73
  226.   br i1 %75, label %"assert succeeded13", label %"assert failed12", !prof !210
  227.  
  228. "assert failed12":                                ; preds = %"assert succeeded11"
  229.   %76 = call i32 @halide_error_access_out_of_bounds(i8* null, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str.167, i64 0, i64 0), i32 1, i32 %35, i32 %40, i32 %22, i32 %b6) #9
  230.   br label %destructor_block
  231.  
  232. "assert succeeded13":                             ; preds = %"assert succeeded11"
  233.   %77 = icmp sgt i32 %23, -1
  234.   br i1 %77, label %"assert succeeded15", label %"assert failed14", !prof !210
  235.  
  236. "assert failed14":                                ; preds = %"assert succeeded13"
  237.   %78 = call i32 @halide_error_buffer_extents_negative(i8* null, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str.167, i64 0, i64 0), i32 1, i32 %23) #9
  238.   br label %destructor_block
  239.  
  240. "assert succeeded15":                             ; preds = %"assert succeeded13"
  241.   %79 = icmp eq i32 %21, 1
  242.   br i1 %79, label %"assert succeeded19", label %"assert failed16", !prof !210
  243.  
  244. "assert failed16":                                ; preds = %"assert succeeded15"
  245.   %80 = call i32 @halide_error_constraint_violated(i8* null, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str.168, i64 0, i64 0), i32 %21, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.169, i64 0, i64 0), i32 1) #9
  246.   br label %destructor_block
  247.  
  248. "assert succeeded19":                             ; preds = %"assert succeeded15"
  249.   %81 = sext i32 %20 to i64
  250.   %82 = sext i32 %23 to i64
  251.   %f1.total_extent.1 = mul nsw i64 %82, %81
  252.   %83 = sext i32 %24 to i64
  253.   %x2 = mul nsw i64 %83, %82
  254.   %84 = sub nsw i64 0, %x2
  255.   %85 = icmp sgt i64 %x2, -1
  256.   %86 = select i1 %85, i64 %x2, i64 %84
  257.   %87 = icmp ult i64 %86, 2147483648
  258.   br i1 %87, label %"assert succeeded21", label %"assert failed20", !prof !210
  259.  
  260. "assert failed20":                                ; preds = %"assert succeeded19"
  261.   %88 = call i32 @halide_error_buffer_allocation_too_large(i8* null, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str.163, i64 0, i64 0), i64 %86, i64 2147483647) #9
  262.   br label %destructor_block
  263.  
  264. "assert succeeded21":                             ; preds = %"assert succeeded19"
  265.   %89 = icmp slt i64 %f1.total_extent.1, 2147483648
  266.   br i1 %89, label %"produce f1", label %"assert failed22", !prof !210
  267.  
  268. "assert failed22":                                ; preds = %"assert succeeded21"
  269.   %90 = call i32 @halide_error_buffer_extents_too_large(i8* null, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @str.163, i64 0, i64 0), i64 %f1.total_extent.1, i64 2147483647) #9
  270.   br label %destructor_block
  271.  
  272. "produce f1":                                     ; preds = %"assert succeeded21"
  273.   %current_func.i105 = getelementptr inbounds %struct.halide_profiler_state, %struct.halide_profiler_state* %profiler_state, i64 0, i32 3
  274.   call void asm sideeffect "", ""() #9, !srcloc !175
  275.   %add.i106 = add nuw nsw i32 %profiler_token, 1
  276.   store volatile i32 %add.i106, i32* %current_func.i105, align 4, !tbaa !38
  277.   call void asm sideeffect "", ""() #9, !srcloc !176
  278.   call void asm sideeffect "", ""() #9, !srcloc !179
  279.   %91 = atomicrmw sub i32* %active_threads.i, i32 1 seq_cst
  280.   call void asm sideeffect "", ""() #9, !srcloc !180
  281.   %92 = add nuw nsw i32 %23, 7
  282.   %93 = ashr i32 %92, 3
  283.   %94 = icmp sgt i32 %93, 0
  284.   br i1 %94, label %"pfor f1.s0.v1.v18.preheader", label %"end pfor f1.s0.v1.v18", !prof !210
  285.  
  286. "pfor f1.s0.v1.v18.preheader":                    ; preds = %"produce f1"
  287.   %95 = add nuw nsw i32 %20, 7
  288.   %96 = ashr i32 %95, 3
  289.   %97 = icmp sgt i32 %96, 0
  290.   %98 = add nsw i32 %iters, 1
  291.   %99 = sext i32 %98 to i64
  292.   %100 = shl nsw i64 %99, 8
  293.   %101 = zext i32 %98 to i64
  294.   %102 = shl nuw nsw i64 %101, 8
  295.   %103 = icmp ult i32 %98, 8388608
  296.   %104 = or i64 %102, 4
  297.   %add.i112 = add nuw nsw i32 %profiler_token, 2
  298.   %105 = icmp sgt i32 %iters, -1
  299.   %106 = sitofp i32 %w to float
  300.   %107 = sitofp i32 %h to float
  301.   %108 = icmp sgt i32 %iters, 0
  302.   %add.i116 = add nuw nsw i32 %profiler_token, 3
  303.   %109 = sext i32 %22 to i64
  304.   %110 = mul nsw i64 %83, %109
  305.   %111 = sext i32 %19 to i64
  306.   %112 = add nsw i64 %110, %111
  307.   %113 = bitcast i8* %14 to i32*
  308.   %114 = xor i32 %19, -1
  309.   %115 = sub i32 7, %20
  310.   %116 = sub i32 %115, %19
  311.   %117 = xor i32 %22, -1
  312.   %118 = sub i32 7, %23
  313.   %119 = sub i32 %118, %22
  314.   %120 = add nsw i64 %101, -2
  315.   %121 = and i32 %98, 1
  316.   %lcmp.mod = icmp eq i32 %121, 0
  317.   %122 = icmp eq i64 %120, 0
  318.   %123 = and i32 %98, 1
  319.   %lcmp.mod300 = icmp eq i32 %123, 0
  320.   %124 = icmp eq i64 %120, 0
  321.   %125 = and i32 %98, 1
  322.   %lcmp.mod302 = icmp eq i32 %125, 0
  323.   %126 = icmp eq i64 %120, 0
  324.   %127 = and i32 %98, 1
  325.   %lcmp.mod304 = icmp eq i32 %127, 0
  326.   %128 = icmp eq i64 %120, 0
  327.   %129 = and i32 %98, 1
  328.   %lcmp.mod306 = icmp eq i32 %129, 0
  329.   %130 = icmp eq i64 %120, 0
  330.   %131 = and i32 %98, 1
  331.   %lcmp.mod308 = icmp eq i32 %131, 0
  332.   %132 = icmp eq i64 %120, 0
  333.   %133 = and i32 %98, 1
  334.   %lcmp.mod310 = icmp eq i32 %133, 0
  335.   %134 = icmp eq i64 %120, 0
  336.   %135 = and i32 %98, 1
  337.   %lcmp.mod312 = icmp eq i32 %135, 0
  338.   %136 = icmp eq i64 %120, 0
  339.   %137 = and i32 %98, 1
  340.   %lcmp.mod314 = icmp eq i32 %137, 0
  341.   %138 = icmp eq i64 %120, 0
  342.   %139 = and i32 %98, 1
  343.   %lcmp.mod316 = icmp eq i32 %139, 0
  344.   %140 = icmp eq i64 %120, 0
  345.   %141 = and i32 %98, 1
  346.   %lcmp.mod318 = icmp eq i32 %141, 0
  347.   %142 = icmp eq i64 %120, 0
  348.   %143 = and i32 %98, 1
  349.   %lcmp.mod320 = icmp eq i32 %143, 0
  350.   %144 = icmp eq i64 %120, 0
  351.   br label %"pfor f1.s0.v1.v18"
  352.  
  353. "pfor f1.s0.v1.v18":                              ; preds = %"pfor f1.s0.v1.v18.preheader", %"platch f1.s0.v1.v18"
  354.   %indvars.iv214 = phi i32 [ %117, %"pfor f1.s0.v1.v18.preheader" ], [ %indvars.iv.next215, %"platch f1.s0.v1.v18" ]
  355.   %f1.s0.v1.v18 = phi i32 [ 0, %"pfor f1.s0.v1.v18.preheader" ], [ %222, %"platch f1.s0.v1.v18" ]
  356.   %145 = icmp sgt i32 %indvars.iv214, %119
  357.   %smax216 = select i1 %145, i32 %indvars.iv214, i32 %119
  358.   %146 = xor i32 %smax216, -1
  359.   %147 = sext i32 %146 to i64
  360.   detach label %"pbody f1.s0.v1.v18", label %"platch f1.s0.v1.v18"
  361.  
  362. "pbody f1.s0.v1.v18":                             ; preds = %"pfor f1.s0.v1.v18"
  363.   call void asm sideeffect "", ""() #9, !srcloc !177
  364.   %148 = atomicrmw add i32* %active_threads.i, i32 1 seq_cst
  365.   call void asm sideeffect "", ""() #9, !srcloc !178
  366.   %149 = shl nsw i32 %f1.s0.v1.v18, 3
  367.   %a6 = add nsw i32 %149, %22
  368.   %150 = icmp sgt i32 %b5, %a6
  369.   %f1.s0.v1.v16.base = select i1 %150, i32 %a6, i32 %b5
  370.   br i1 %97, label %"for f1.s0.v0.v17.preheader", label %"end for f1.s0.v0.v17", !prof !210
  371.  
  372. "for f1.s0.v0.v17.preheader":                     ; preds = %"pbody f1.s0.v1.v18"
  373.   %151 = sext i32 %f1.s0.v1.v16.base to i64
  374.   %152 = add nsw i32 %f1.s0.v1.v16.base, 7
  375.   %.promoted = load i8*, i8** %1, align 8
  376.   %.promoted178 = load i8*, i8** %0, align 8
  377.   %153 = sitofp i32 %146 to float
  378.   %154 = fdiv float %153, %107
  379.   %155 = fmul float %154, %y_max
  380.   %156 = fsub float 1.000000e+00, %154
  381.   %157 = fmul float %156, %y_min
  382.   %158 = fadd float %155, %157
  383.   %indvars.iv.next204 = add nsw i64 %147, 1
  384.   %159 = sub nsw i64 %indvars.iv.next204, %151
  385.   %160 = shl nsw i64 %159, 3
  386.   %161 = trunc i64 %indvars.iv.next204 to i32
  387.   %162 = sitofp i32 %161 to float
  388.   %163 = fdiv float %162, %107
  389.   %164 = fmul float %163, %y_max
  390.   %165 = fsub float 1.000000e+00, %163
  391.   %166 = fmul float %165, %y_min
  392.   %167 = fadd float %164, %166
  393.   %indvars.iv.next204.1 = add nsw i64 %147, 2
  394.   %168 = sub nsw i64 %indvars.iv.next204.1, %151
  395.   %169 = shl nsw i64 %168, 3
  396.   %170 = trunc i64 %indvars.iv.next204.1 to i32
  397.   %171 = sitofp i32 %170 to float
  398.   %172 = fdiv float %171, %107
  399.   %173 = fmul float %172, %y_max
  400.   %174 = fsub float 1.000000e+00, %172
  401.   %175 = fmul float %174, %y_min
  402.   %176 = fadd float %173, %175
  403.   %indvars.iv.next204.2 = add nsw i64 %147, 3
  404.   %177 = sub nsw i64 %indvars.iv.next204.2, %151
  405.   %178 = shl nsw i64 %177, 3
  406.   %179 = trunc i64 %indvars.iv.next204.2 to i32
  407.   %180 = sitofp i32 %179 to float
  408.   %181 = fdiv float %180, %107
  409.   %182 = fmul float %181, %y_max
  410.   %183 = fsub float 1.000000e+00, %181
  411.   %184 = fmul float %183, %y_min
  412.   %185 = fadd float %182, %184
  413.   %indvars.iv.next204.3 = add nsw i64 %147, 4
  414.   %186 = sub nsw i64 %indvars.iv.next204.3, %151
  415.   %187 = shl nsw i64 %186, 3
  416.   %188 = trunc i64 %indvars.iv.next204.3 to i32
  417.   %189 = sitofp i32 %188 to float
  418.   %190 = fdiv float %189, %107
  419.   %191 = fmul float %190, %y_max
  420.   %192 = fsub float 1.000000e+00, %190
  421.   %193 = fmul float %192, %y_min
  422.   %194 = fadd float %191, %193
  423.   %indvars.iv.next204.4 = add nsw i64 %147, 5
  424.   %195 = sub nsw i64 %indvars.iv.next204.4, %151
  425.   %196 = shl nsw i64 %195, 3
  426.   %197 = trunc i64 %indvars.iv.next204.4 to i32
  427.   %198 = sitofp i32 %197 to float
  428.   %199 = fdiv float %198, %107
  429.   %200 = fmul float %199, %y_max
  430.   %201 = fsub float 1.000000e+00, %199
  431.   %202 = fmul float %201, %y_min
  432.   %203 = fadd float %200, %202
  433.   %indvars.iv.next204.5 = add nsw i64 %147, 6
  434.   %204 = sub nsw i64 %indvars.iv.next204.5, %151
  435.   %205 = shl nsw i64 %204, 3
  436.   %206 = trunc i64 %indvars.iv.next204.5 to i32
  437.   %207 = sitofp i32 %206 to float
  438.   %208 = fdiv float %207, %107
  439.   %209 = fmul float %208, %y_max
  440.   %210 = fsub float 1.000000e+00, %208
  441.   %211 = fmul float %210, %y_min
  442.   %212 = fadd float %209, %211
  443.   %indvars.iv.next204.6 = add nsw i64 %147, 7
  444.   %213 = sub nsw i64 %indvars.iv.next204.6, %151
  445.   %214 = shl nsw i64 %213, 3
  446.   %215 = trunc i64 %indvars.iv.next204.6 to i32
  447.   %216 = sitofp i32 %215 to float
  448.   %217 = fdiv float %216, %107
  449.   %218 = fmul float %217, %y_max
  450.   %219 = fsub float 1.000000e+00, %217
  451.   %220 = fmul float %219, %y_min
  452.   %221 = fadd float %218, %220
  453.   br label %"for f1.s0.v0.v17"
  454.  
  455. "platch f1.s0.v1.v18":                            ; preds = %"end for f1.s0.v0.v17", %"pfor f1.s0.v1.v18"
  456.   %222 = add nuw nsw i32 %f1.s0.v1.v18, 1
  457.   %223 = icmp eq i32 %222, %93
  458.   %indvars.iv.next215 = add i32 %indvars.iv214, -8
  459.   br i1 %223, label %"end pfor f1.s0.v1.v18", label %"pfor f1.s0.v1.v18"
  460.  
  461. "end pfor f1.s0.v1.v18":                          ; preds = %"platch f1.s0.v1.v18", %"produce f1"
  462.   sync label %"sync pfor f1.s0.v1.v18"
  463.  
  464. "sync pfor f1.s0.v1.v18":                         ; preds = %"end pfor f1.s0.v1.v18"
  465.   call void asm sideeffect "", ""() #9, !srcloc !177
  466.   %224 = atomicrmw add i32* %active_threads.i, i32 1 seq_cst
  467.   call void asm sideeffect "", ""() #9, !srcloc !178
  468.   br label %call_destructor.exit.thread
  469.  
  470. "for f1.s0.v0.v17":                               ; preds = %"for f1.s0.v0.v17.preheader", %call_destructor.exit124
  471.   %indvars.iv209 = phi i32 [ %114, %"for f1.s0.v0.v17.preheader" ], [ %indvars.iv.next210, %call_destructor.exit124 ]
  472.   %225 = phi i8* [ %.promoted178, %"for f1.s0.v0.v17.preheader" ], [ null, %call_destructor.exit124 ]
  473.   %226 = phi i8* [ %.promoted, %"for f1.s0.v0.v17.preheader" ], [ null, %call_destructor.exit124 ]
  474.   %f1.s0.v0.v17 = phi i32 [ 0, %"for f1.s0.v0.v17.preheader" ], [ %591, %call_destructor.exit124 ]
  475.   %227 = icmp sgt i32 %indvars.iv209, %116
  476.   %smax211 = select i1 %227, i32 %indvars.iv209, i32 %116
  477.   %228 = xor i32 %smax211, -1
  478.   %229 = sext i32 %228 to i64
  479.   %230 = shl nsw i32 %f1.s0.v0.v17, 3
  480.   %a7 = add nsw i32 %230, %19
  481.   %231 = icmp sgt i32 %b2, %a7
  482.   %f1.s0.v0.v15.base = select i1 %231, i32 %a7, i32 %b2
  483.   call void @halide_profiler_memory_allocate(i8* null, i8* %11, i32 2, i64 %100) #9
  484.   br i1 %103, label %"assert succeeded25", label %"assert failed24", !prof !210
  485.  
  486. "end for f1.s0.v0.v17.loopexit":                  ; preds = %call_destructor.exit124
  487.   store i8* null, i8** %1, align 8
  488.   store i8* null, i8** %0, align 8
  489.   br label %"end for f1.s0.v0.v17"
  490.  
  491. "end for f1.s0.v0.v17":                           ; preds = %"end for f1.s0.v0.v17.loopexit", %"pbody f1.s0.v1.v18"
  492.   call void asm sideeffect "", ""() #9, !srcloc !179
  493.   %232 = atomicrmw sub i32* %active_threads.i, i32 1 seq_cst
  494.   call void asm sideeffect "", ""() #9, !srcloc !180
  495.   br label %"platch f1.s0.v1.v18"
  496.  
  497. "assert failed24":                                ; preds = %"for f1.s0.v0.v17"
  498.   store i8* %.promoted, i8** %1, align 8
  499.   store i8* %.promoted178, i8** %0, align 8
  500.   %233 = call i32 @halide_error_buffer_allocation_too_large(i8* null, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @str.170, i64 0, i64 0), i64 %102, i64 2147483647) #9
  501.   br label %destructor_block
  502.  
  503. "assert succeeded25":                             ; preds = %"for f1.s0.v0.v17"
  504.   %234 = call i8* @halide_malloc(i8* null, i64 %104)
  505.   %f0.0 = bitcast i8* %234 to float*
  506.   %235 = icmp eq i8* %234, null
  507.   br i1 %235, label %"assert failed26", label %"assert succeeded27", !prof !211
  508.  
  509. "assert failed26":                                ; preds = %"assert succeeded25"
  510.   store i8* %226, i8** %1, align 8
  511.   store i8* %225, i8** %0, align 8
  512.   %236 = call i32 @halide_error_out_of_memory(i8* null) #9
  513.   br label %destructor_block
  514.  
  515. "assert succeeded27":                             ; preds = %"assert succeeded25"
  516.   call void @halide_profiler_memory_allocate(i8* null, i8* %11, i32 2, i64 %100) #9
  517.   %237 = call i8* @halide_malloc(i8* null, i64 %104)
  518.   %f0.1 = bitcast i8* %237 to float*
  519.   %238 = icmp eq i8* %237, null
  520.   br i1 %238, label %"assert failed30", label %"assert succeeded31", !prof !211
  521.  
  522. "assert failed30":                                ; preds = %"assert succeeded27"
  523.   store i8* %234, i8** %1, align 8
  524.   store i8* %225, i8** %0, align 8
  525.   %239 = call i32 @halide_error_out_of_memory(i8* null) #9
  526.   br label %destructor_block
  527.  
  528. "assert succeeded31":                             ; preds = %"assert succeeded27"
  529.   call void asm sideeffect "", ""() #9, !srcloc !175
  530.   store volatile i32 %add.i112, i32* %current_func.i105, align 4, !tbaa !38
  531.   call void asm sideeffect "", ""() #9, !srcloc !176
  532.   %240 = sext i32 %f1.s0.v0.v15.base to i64
  533.   br i1 %105, label %"for f0.s0.v2.preheader", label %"for f0.s1.v1.preheader", !prof !210
  534.  
  535. "for f0.s0.v2.preheader":                         ; preds = %"assert succeeded31"
  536.   %241 = sitofp i32 %228 to float
  537.   %242 = fdiv float %241, %106
  538.   %243 = fmul float %242, %x_max
  539.   %244 = fsub float 1.000000e+00, %242
  540.   %245 = fmul float %244, %x_min
  541.   %246 = fadd float %243, %245
  542.   %indvars.iv.next199 = add nsw i64 %229, 1
  543.   %247 = trunc i64 %indvars.iv.next199 to i32
  544.   %248 = sitofp i32 %247 to float
  545.   %249 = fdiv float %248, %106
  546.   %250 = fmul float %249, %x_max
  547.   %251 = fsub float 1.000000e+00, %249
  548.   %252 = fmul float %251, %x_min
  549.   %253 = fadd float %250, %252
  550.   %indvars.iv.next199.1 = add nsw i64 %229, 2
  551.   %254 = trunc i64 %indvars.iv.next199.1 to i32
  552.   %255 = sitofp i32 %254 to float
  553.   %256 = fdiv float %255, %106
  554.   %257 = fmul float %256, %x_max
  555.   %258 = fsub float 1.000000e+00, %256
  556.   %259 = fmul float %258, %x_min
  557.   %260 = fadd float %257, %259
  558.   %indvars.iv.next199.2 = add nsw i64 %229, 3
  559.   %261 = trunc i64 %indvars.iv.next199.2 to i32
  560.   %262 = sitofp i32 %261 to float
  561.   %263 = fdiv float %262, %106
  562.   %264 = fmul float %263, %x_max
  563.   %265 = fsub float 1.000000e+00, %263
  564.   %266 = fmul float %265, %x_min
  565.   %267 = fadd float %264, %266
  566.   %indvars.iv.next199.3 = add nsw i64 %229, 4
  567.   %268 = trunc i64 %indvars.iv.next199.3 to i32
  568.   %269 = sitofp i32 %268 to float
  569.   %270 = fdiv float %269, %106
  570.   %271 = fmul float %270, %x_max
  571.   %272 = fsub float 1.000000e+00, %270
  572.   %273 = fmul float %272, %x_min
  573.   %274 = fadd float %271, %273
  574.   %indvars.iv.next199.4 = add nsw i64 %229, 5
  575.   %275 = trunc i64 %indvars.iv.next199.4 to i32
  576.   %276 = sitofp i32 %275 to float
  577.   %277 = fdiv float %276, %106
  578.   %278 = fmul float %277, %x_max
  579.   %279 = fsub float 1.000000e+00, %277
  580.   %280 = fmul float %279, %x_min
  581.   %281 = fadd float %278, %280
  582.   %indvars.iv.next199.5 = add nsw i64 %229, 6
  583.   %282 = trunc i64 %indvars.iv.next199.5 to i32
  584.   %283 = sitofp i32 %282 to float
  585.   %284 = fdiv float %283, %106
  586.   %285 = fmul float %284, %x_max
  587.   %286 = fsub float 1.000000e+00, %284
  588.   %287 = fmul float %286, %x_min
  589.   %288 = fadd float %285, %287
  590.   %indvars.iv.next199.6 = add nsw i64 %229, 7
  591.   %289 = trunc i64 %indvars.iv.next199.6 to i32
  592.   %290 = sitofp i32 %289 to float
  593.   %291 = fdiv float %290, %106
  594.   %292 = fmul float %291, %x_max
  595.   %293 = fsub float 1.000000e+00, %291
  596.   %294 = fmul float %293, %x_min
  597.   %295 = fadd float %292, %294
  598.   br label %"for f0.s0.v2"
  599.  
  600. "for f0.s1.v1.preheader":                         ; preds = %"for f0.s0.v2", %"assert succeeded31"
  601.   br i1 %108, label %"for f0.s1.v1.us.preheader", label %"consume f0", !prof !210
  602.  
  603. "for f0.s1.v1.us.preheader":                      ; preds = %"for f0.s1.v1.preheader"
  604.   %indvars.iv.next213 = add nsw i64 %229, 1
  605.   %indvars.iv.next213.1 = add nsw i64 %229, 2
  606.   %indvars.iv.next213.2 = add nsw i64 %229, 3
  607.   %indvars.iv.next213.3 = add nsw i64 %229, 4
  608.   %indvars.iv.next213.4 = add nsw i64 %229, 5
  609.   %indvars.iv.next213.5 = add nsw i64 %229, 6
  610.   %indvars.iv.next213.6 = add nsw i64 %229, 7
  611.   br label %"for f0.s1.v1.us"
  612.  
  613. "for f0.s1.v1.us":                                ; preds = %"for f0.s1.v1.us.preheader", %"end for f0.s1.r4$x.loopexit.us.us.7"
  614.   %indvars.iv217 = phi i64 [ %147, %"for f0.s1.v1.us.preheader" ], [ %indvars.iv.next218, %"end for f0.s1.r4$x.loopexit.us.us.7" ]
  615.   %296 = sub nsw i64 %indvars.iv217, %151
  616.   %297 = shl i64 %296, 3
  617.   %298 = trunc i64 %297 to i32
  618.   %299 = sub nsw i64 %297, %240
  619.   %300 = add nsw i64 %299, %229
  620.   br i1 %lcmp.mod, label %"for f0.s1.r4$x.us.us.prol", label %"for f0.s1.r4$x.us.us.prol.loopexit"
  621.  
  622. "for f0.s1.r4$x.us.us.prol":                      ; preds = %"for f0.s1.v1.us"
  623.   %t325.us.us.prol = shl i64 %296, 35
  624.   %sext = add nuw nsw i64 %t325.us.us.prol, 274877906944
  625.   %301 = ashr exact i64 %sext, 32
  626.   %302 = add nsw i64 %301, -64
  627.   %303 = getelementptr inbounds float, float* %f0.0, i64 %302
  628.   %t326.us.us.prol = load float, float* %303, align 4, !tbaa !215
  629.   %304 = getelementptr inbounds float, float* %f0.1, i64 %302
  630.   %t327.us.us.prol = load float, float* %304, align 4, !tbaa !217
  631.   %305 = fmul float %t327.us.us.prol, %t327.us.us.prol
  632.   %306 = fmul float %t326.us.us.prol, %t326.us.us.prol
  633.   %307 = fsub float %306, %305
  634.   %308 = fadd float %307, %c_real
  635.   %309 = add nuw nsw i64 %300, 64
  636.   %310 = getelementptr inbounds float, float* %f0.0, i64 %309
  637.   store float %308, float* %310, align 4, !tbaa !215
  638.   %311 = load float, float* %303, align 4, !tbaa !215
  639.   %312 = fmul float %t327.us.us.prol, %311
  640.   %313 = fmul float %312, 2.000000e+00
  641.   %314 = fadd float %313, %c_imag
  642.   %315 = getelementptr inbounds float, float* %f0.1, i64 %309
  643.   store float %314, float* %315, align 4, !tbaa !217
  644.   br label %"for f0.s1.r4$x.us.us.prol.loopexit"
  645.  
  646. "for f0.s1.r4$x.us.us.prol.loopexit":             ; preds = %"for f0.s1.r4$x.us.us.prol", %"for f0.s1.v1.us"
  647.   %indvars.iv207.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.prol" ], [ 1, %"for f0.s1.v1.us" ]
  648.   br i1 %122, label %"end for f0.s1.r4$x.loopexit.us.us", label %"for f0.s1.r4$x.us.us"
  649.  
  650. "end for f0.s1.r4$x.loopexit.us.us":              ; preds = %"for f0.s1.r4$x.us.us", %"for f0.s1.r4$x.us.us.prol.loopexit"
  651.   %316 = or i32 %298, 1
  652.   %317 = add nsw i64 %299, %indvars.iv.next213
  653.   br i1 %lcmp.mod300, label %"for f0.s1.r4$x.us.us.1.prol", label %"for f0.s1.r4$x.us.us.1.prol.loopexit"
  654.  
  655. "for f0.s1.r4$x.us.us.1.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us"
  656.   %t325.us.us.1.prol = add i32 %316, 64
  657.   %318 = sext i32 %t325.us.us.1.prol to i64
  658.   %319 = add nsw i64 %318, -64
  659.   %320 = getelementptr inbounds float, float* %f0.0, i64 %319
  660.   %t326.us.us.1.prol = load float, float* %320, align 4, !tbaa !215
  661.   %321 = getelementptr inbounds float, float* %f0.1, i64 %319
  662.   %t327.us.us.1.prol = load float, float* %321, align 4, !tbaa !217
  663.   %322 = fmul float %t327.us.us.1.prol, %t327.us.us.1.prol
  664.   %323 = fmul float %t326.us.us.1.prol, %t326.us.us.1.prol
  665.   %324 = fsub float %323, %322
  666.   %325 = fadd float %324, %c_real
  667.   %326 = add nuw nsw i64 %317, 64
  668.   %327 = getelementptr inbounds float, float* %f0.0, i64 %326
  669.   store float %325, float* %327, align 4, !tbaa !215
  670.   %328 = load float, float* %320, align 4, !tbaa !215
  671.   %329 = fmul float %t327.us.us.1.prol, %328
  672.   %330 = fmul float %329, 2.000000e+00
  673.   %331 = fadd float %330, %c_imag
  674.   %332 = getelementptr inbounds float, float* %f0.1, i64 %326
  675.   store float %331, float* %332, align 4, !tbaa !217
  676.   br label %"for f0.s1.r4$x.us.us.1.prol.loopexit"
  677.  
  678. "for f0.s1.r4$x.us.us.1.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.1.prol", %"end for f0.s1.r4$x.loopexit.us.us"
  679.   %indvars.iv207.1.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.1.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us" ]
  680.   br i1 %124, label %"end for f0.s1.r4$x.loopexit.us.us.1", label %"for f0.s1.r4$x.us.us.1"
  681.  
  682. "for f0.s1.r4$x.us.us":                           ; preds = %"for f0.s1.r4$x.us.us.prol.loopexit", %"for f0.s1.r4$x.us.us"
  683.   %indvars.iv207 = phi i64 [ %indvars.iv.next208.1297, %"for f0.s1.r4$x.us.us" ], [ %indvars.iv207.unr.ph, %"for f0.s1.r4$x.us.us.prol.loopexit" ]
  684.   %333 = trunc i64 %indvars.iv207 to i32
  685.   %334 = shl i32 %333, 6
  686.   %t325.us.us = add i32 %334, %298
  687.   %335 = sext i32 %t325.us.us to i64
  688.   %336 = add nsw i64 %335, -64
  689.   %337 = getelementptr inbounds float, float* %f0.0, i64 %336
  690.   %t326.us.us = load float, float* %337, align 4, !tbaa !215
  691.   %338 = getelementptr inbounds float, float* %f0.1, i64 %336
  692.   %t327.us.us = load float, float* %338, align 4, !tbaa !217
  693.   %339 = fmul float %t327.us.us, %t327.us.us
  694.   %340 = fmul float %t326.us.us, %t326.us.us
  695.   %341 = fsub float %340, %339
  696.   %342 = fadd float %341, %c_real
  697.   %343 = shl nsw i64 %indvars.iv207, 6
  698.   %344 = add nuw nsw i64 %300, %343
  699.   %345 = getelementptr inbounds float, float* %f0.0, i64 %344
  700.   store float %342, float* %345, align 4, !tbaa !215
  701.   %346 = load float, float* %337, align 4, !tbaa !215
  702.   %347 = fmul float %t327.us.us, %346
  703.   %348 = fmul float %347, 2.000000e+00
  704.   %349 = fadd float %348, %c_imag
  705.   %350 = getelementptr inbounds float, float* %f0.1, i64 %344
  706.   store float %349, float* %350, align 4, !tbaa !217
  707.   %indvars.iv.next208 = add nuw nsw i64 %indvars.iv207, 1
  708.   %351 = trunc i64 %indvars.iv.next208 to i32
  709.   %352 = shl i32 %351, 6
  710.   %t325.us.us.1294 = add i32 %352, %298
  711.   %353 = sext i32 %t325.us.us.1294 to i64
  712.   %354 = add nsw i64 %353, -64
  713.   %355 = getelementptr inbounds float, float* %f0.0, i64 %354
  714.   %t326.us.us.1295 = load float, float* %355, align 4, !tbaa !215
  715.   %356 = getelementptr inbounds float, float* %f0.1, i64 %354
  716.   %t327.us.us.1296 = load float, float* %356, align 4, !tbaa !217
  717.   %357 = fmul float %t327.us.us.1296, %t327.us.us.1296
  718.   %358 = fmul float %t326.us.us.1295, %t326.us.us.1295
  719.   %359 = fsub float %358, %357
  720.   %360 = fadd float %359, %c_real
  721.   %361 = shl nsw i64 %indvars.iv.next208, 6
  722.   %362 = add nuw nsw i64 %300, %361
  723.   %363 = getelementptr inbounds float, float* %f0.0, i64 %362
  724.   store float %360, float* %363, align 4, !tbaa !215
  725.   %364 = load float, float* %355, align 4, !tbaa !215
  726.   %365 = fmul float %t327.us.us.1296, %364
  727.   %366 = fmul float %365, 2.000000e+00
  728.   %367 = fadd float %366, %c_imag
  729.   %368 = getelementptr inbounds float, float* %f0.1, i64 %362
  730.   store float %367, float* %368, align 4, !tbaa !217
  731.   %indvars.iv.next208.1297 = add nsw i64 %indvars.iv207, 2
  732.   %369 = icmp eq i64 %indvars.iv.next208.1297, %101
  733.   br i1 %369, label %"end for f0.s1.r4$x.loopexit.us.us", label %"for f0.s1.r4$x.us.us"
  734.  
  735. "for f0.s0.v2":                                   ; preds = %"for f0.s0.v2.preheader", %"for f0.s0.v2"
  736.   %indvars.iv205 = phi i64 [ 0, %"for f0.s0.v2.preheader" ], [ %indvars.iv.next206, %"for f0.s0.v2" ]
  737.   %370 = shl nsw i64 %indvars.iv205, 6
  738.   %371 = sub nsw i64 %370, %240
  739.   %372 = add nsw i64 %371, %229
  740.   %373 = getelementptr inbounds float, float* %f0.0, i64 %372
  741.   store float %246, float* %373, align 4, !tbaa !215
  742.   %374 = getelementptr inbounds float, float* %f0.1, i64 %372
  743.   store float %158, float* %374, align 4, !tbaa !217
  744.   %375 = add nsw i64 %371, %indvars.iv.next199
  745.   %376 = getelementptr inbounds float, float* %f0.0, i64 %375
  746.   store float %253, float* %376, align 4, !tbaa !215
  747.   %377 = getelementptr inbounds float, float* %f0.1, i64 %375
  748.   store float %158, float* %377, align 4, !tbaa !217
  749.   %378 = add nsw i64 %371, %indvars.iv.next199.1
  750.   %379 = getelementptr inbounds float, float* %f0.0, i64 %378
  751.   store float %260, float* %379, align 4, !tbaa !215
  752.   %380 = getelementptr inbounds float, float* %f0.1, i64 %378
  753.   store float %158, float* %380, align 4, !tbaa !217
  754.   %381 = add nsw i64 %371, %indvars.iv.next199.2
  755.   %382 = getelementptr inbounds float, float* %f0.0, i64 %381
  756.   store float %267, float* %382, align 4, !tbaa !215
  757.   %383 = getelementptr inbounds float, float* %f0.1, i64 %381
  758.   store float %158, float* %383, align 4, !tbaa !217
  759.   %384 = add nsw i64 %371, %indvars.iv.next199.3
  760.   %385 = getelementptr inbounds float, float* %f0.0, i64 %384
  761.   store float %274, float* %385, align 4, !tbaa !215
  762.   %386 = getelementptr inbounds float, float* %f0.1, i64 %384
  763.   store float %158, float* %386, align 4, !tbaa !217
  764.   %387 = add nsw i64 %371, %indvars.iv.next199.4
  765.   %388 = getelementptr inbounds float, float* %f0.0, i64 %387
  766.   store float %281, float* %388, align 4, !tbaa !215
  767.   %389 = getelementptr inbounds float, float* %f0.1, i64 %387
  768.   store float %158, float* %389, align 4, !tbaa !217
  769.   %390 = add nsw i64 %371, %indvars.iv.next199.5
  770.   %391 = getelementptr inbounds float, float* %f0.0, i64 %390
  771.   store float %288, float* %391, align 4, !tbaa !215
  772.   %392 = getelementptr inbounds float, float* %f0.1, i64 %390
  773.   store float %158, float* %392, align 4, !tbaa !217
  774.   %393 = add nsw i64 %371, %indvars.iv.next199.6
  775.   %394 = getelementptr inbounds float, float* %f0.0, i64 %393
  776.   store float %295, float* %394, align 4, !tbaa !215
  777.   %395 = getelementptr inbounds float, float* %f0.1, i64 %393
  778.   store float %158, float* %395, align 4, !tbaa !217
  779.   %396 = add nsw i64 %371, %160
  780.   %397 = add nsw i64 %396, %229
  781.   %398 = getelementptr inbounds float, float* %f0.0, i64 %397
  782.   store float %246, float* %398, align 4, !tbaa !215
  783.   %399 = getelementptr inbounds float, float* %f0.1, i64 %397
  784.   store float %167, float* %399, align 4, !tbaa !217
  785.   %400 = add nsw i64 %396, %indvars.iv.next199
  786.   %401 = getelementptr inbounds float, float* %f0.0, i64 %400
  787.   store float %253, float* %401, align 4, !tbaa !215
  788.   %402 = getelementptr inbounds float, float* %f0.1, i64 %400
  789.   store float %167, float* %402, align 4, !tbaa !217
  790.   %403 = add nsw i64 %396, %indvars.iv.next199.1
  791.   %404 = getelementptr inbounds float, float* %f0.0, i64 %403
  792.   store float %260, float* %404, align 4, !tbaa !215
  793.   %405 = getelementptr inbounds float, float* %f0.1, i64 %403
  794.   store float %167, float* %405, align 4, !tbaa !217
  795.   %406 = add nsw i64 %396, %indvars.iv.next199.2
  796.   %407 = getelementptr inbounds float, float* %f0.0, i64 %406
  797.   store float %267, float* %407, align 4, !tbaa !215
  798.   %408 = getelementptr inbounds float, float* %f0.1, i64 %406
  799.   store float %167, float* %408, align 4, !tbaa !217
  800.   %409 = add nsw i64 %396, %indvars.iv.next199.3
  801.   %410 = getelementptr inbounds float, float* %f0.0, i64 %409
  802.   store float %274, float* %410, align 4, !tbaa !215
  803.   %411 = getelementptr inbounds float, float* %f0.1, i64 %409
  804.   store float %167, float* %411, align 4, !tbaa !217
  805.   %412 = add nsw i64 %396, %indvars.iv.next199.4
  806.   %413 = getelementptr inbounds float, float* %f0.0, i64 %412
  807.   store float %281, float* %413, align 4, !tbaa !215
  808.   %414 = getelementptr inbounds float, float* %f0.1, i64 %412
  809.   store float %167, float* %414, align 4, !tbaa !217
  810.   %415 = add nsw i64 %396, %indvars.iv.next199.5
  811.   %416 = getelementptr inbounds float, float* %f0.0, i64 %415
  812.   store float %288, float* %416, align 4, !tbaa !215
  813.   %417 = getelementptr inbounds float, float* %f0.1, i64 %415
  814.   store float %167, float* %417, align 4, !tbaa !217
  815.   %418 = add nsw i64 %396, %indvars.iv.next199.6
  816.   %419 = getelementptr inbounds float, float* %f0.0, i64 %418
  817.   store float %295, float* %419, align 4, !tbaa !215
  818.   %420 = getelementptr inbounds float, float* %f0.1, i64 %418
  819.   store float %167, float* %420, align 4, !tbaa !217
  820.   %421 = add nsw i64 %371, %169
  821.   %422 = add nsw i64 %421, %229
  822.   %423 = getelementptr inbounds float, float* %f0.0, i64 %422
  823.   store float %246, float* %423, align 4, !tbaa !215
  824.   %424 = getelementptr inbounds float, float* %f0.1, i64 %422
  825.   store float %176, float* %424, align 4, !tbaa !217
  826.   %425 = add nsw i64 %421, %indvars.iv.next199
  827.   %426 = getelementptr inbounds float, float* %f0.0, i64 %425
  828.   store float %253, float* %426, align 4, !tbaa !215
  829.   %427 = getelementptr inbounds float, float* %f0.1, i64 %425
  830.   store float %176, float* %427, align 4, !tbaa !217
  831.   %428 = add nsw i64 %421, %indvars.iv.next199.1
  832.   %429 = getelementptr inbounds float, float* %f0.0, i64 %428
  833.   store float %260, float* %429, align 4, !tbaa !215
  834.   %430 = getelementptr inbounds float, float* %f0.1, i64 %428
  835.   store float %176, float* %430, align 4, !tbaa !217
  836.   %431 = add nsw i64 %421, %indvars.iv.next199.2
  837.   %432 = getelementptr inbounds float, float* %f0.0, i64 %431
  838.   store float %267, float* %432, align 4, !tbaa !215
  839.   %433 = getelementptr inbounds float, float* %f0.1, i64 %431
  840.   store float %176, float* %433, align 4, !tbaa !217
  841.   %434 = add nsw i64 %421, %indvars.iv.next199.3
  842.   %435 = getelementptr inbounds float, float* %f0.0, i64 %434
  843.   store float %274, float* %435, align 4, !tbaa !215
  844.   %436 = getelementptr inbounds float, float* %f0.1, i64 %434
  845.   store float %176, float* %436, align 4, !tbaa !217
  846.   %437 = add nsw i64 %421, %indvars.iv.next199.4
  847.   %438 = getelementptr inbounds float, float* %f0.0, i64 %437
  848.   store float %281, float* %438, align 4, !tbaa !215
  849.   %439 = getelementptr inbounds float, float* %f0.1, i64 %437
  850.   store float %176, float* %439, align 4, !tbaa !217
  851.   %440 = add nsw i64 %421, %indvars.iv.next199.5
  852.   %441 = getelementptr inbounds float, float* %f0.0, i64 %440
  853.   store float %288, float* %441, align 4, !tbaa !215
  854.   %442 = getelementptr inbounds float, float* %f0.1, i64 %440
  855.   store float %176, float* %442, align 4, !tbaa !217
  856.   %443 = add nsw i64 %421, %indvars.iv.next199.6
  857.   %444 = getelementptr inbounds float, float* %f0.0, i64 %443
  858.   store float %295, float* %444, align 4, !tbaa !215
  859.   %445 = getelementptr inbounds float, float* %f0.1, i64 %443
  860.   store float %176, float* %445, align 4, !tbaa !217
  861.   %446 = add nsw i64 %371, %178
  862.   %447 = add nsw i64 %446, %229
  863.   %448 = getelementptr inbounds float, float* %f0.0, i64 %447
  864.   store float %246, float* %448, align 4, !tbaa !215
  865.   %449 = getelementptr inbounds float, float* %f0.1, i64 %447
  866.   store float %185, float* %449, align 4, !tbaa !217
  867.   %450 = add nsw i64 %446, %indvars.iv.next199
  868.   %451 = getelementptr inbounds float, float* %f0.0, i64 %450
  869.   store float %253, float* %451, align 4, !tbaa !215
  870.   %452 = getelementptr inbounds float, float* %f0.1, i64 %450
  871.   store float %185, float* %452, align 4, !tbaa !217
  872.   %453 = add nsw i64 %446, %indvars.iv.next199.1
  873.   %454 = getelementptr inbounds float, float* %f0.0, i64 %453
  874.   store float %260, float* %454, align 4, !tbaa !215
  875.   %455 = getelementptr inbounds float, float* %f0.1, i64 %453
  876.   store float %185, float* %455, align 4, !tbaa !217
  877.   %456 = add nsw i64 %446, %indvars.iv.next199.2
  878.   %457 = getelementptr inbounds float, float* %f0.0, i64 %456
  879.   store float %267, float* %457, align 4, !tbaa !215
  880.   %458 = getelementptr inbounds float, float* %f0.1, i64 %456
  881.   store float %185, float* %458, align 4, !tbaa !217
  882.   %459 = add nsw i64 %446, %indvars.iv.next199.3
  883.   %460 = getelementptr inbounds float, float* %f0.0, i64 %459
  884.   store float %274, float* %460, align 4, !tbaa !215
  885.   %461 = getelementptr inbounds float, float* %f0.1, i64 %459
  886.   store float %185, float* %461, align 4, !tbaa !217
  887.   %462 = add nsw i64 %446, %indvars.iv.next199.4
  888.   %463 = getelementptr inbounds float, float* %f0.0, i64 %462
  889.   store float %281, float* %463, align 4, !tbaa !215
  890.   %464 = getelementptr inbounds float, float* %f0.1, i64 %462
  891.   store float %185, float* %464, align 4, !tbaa !217
  892.   %465 = add nsw i64 %446, %indvars.iv.next199.5
  893.   %466 = getelementptr inbounds float, float* %f0.0, i64 %465
  894.   store float %288, float* %466, align 4, !tbaa !215
  895.   %467 = getelementptr inbounds float, float* %f0.1, i64 %465
  896.   store float %185, float* %467, align 4, !tbaa !217
  897.   %468 = add nsw i64 %446, %indvars.iv.next199.6
  898.   %469 = getelementptr inbounds float, float* %f0.0, i64 %468
  899.   store float %295, float* %469, align 4, !tbaa !215
  900.   %470 = getelementptr inbounds float, float* %f0.1, i64 %468
  901.   store float %185, float* %470, align 4, !tbaa !217
  902.   %471 = add nsw i64 %371, %187
  903.   %472 = add nsw i64 %471, %229
  904.   %473 = getelementptr inbounds float, float* %f0.0, i64 %472
  905.   store float %246, float* %473, align 4, !tbaa !215
  906.   %474 = getelementptr inbounds float, float* %f0.1, i64 %472
  907.   store float %194, float* %474, align 4, !tbaa !217
  908.   %475 = add nsw i64 %471, %indvars.iv.next199
  909.   %476 = getelementptr inbounds float, float* %f0.0, i64 %475
  910.   store float %253, float* %476, align 4, !tbaa !215
  911.   %477 = getelementptr inbounds float, float* %f0.1, i64 %475
  912.   store float %194, float* %477, align 4, !tbaa !217
  913.   %478 = add nsw i64 %471, %indvars.iv.next199.1
  914.   %479 = getelementptr inbounds float, float* %f0.0, i64 %478
  915.   store float %260, float* %479, align 4, !tbaa !215
  916.   %480 = getelementptr inbounds float, float* %f0.1, i64 %478
  917.   store float %194, float* %480, align 4, !tbaa !217
  918.   %481 = add nsw i64 %471, %indvars.iv.next199.2
  919.   %482 = getelementptr inbounds float, float* %f0.0, i64 %481
  920.   store float %267, float* %482, align 4, !tbaa !215
  921.   %483 = getelementptr inbounds float, float* %f0.1, i64 %481
  922.   store float %194, float* %483, align 4, !tbaa !217
  923.   %484 = add nsw i64 %471, %indvars.iv.next199.3
  924.   %485 = getelementptr inbounds float, float* %f0.0, i64 %484
  925.   store float %274, float* %485, align 4, !tbaa !215
  926.   %486 = getelementptr inbounds float, float* %f0.1, i64 %484
  927.   store float %194, float* %486, align 4, !tbaa !217
  928.   %487 = add nsw i64 %471, %indvars.iv.next199.4
  929.   %488 = getelementptr inbounds float, float* %f0.0, i64 %487
  930.   store float %281, float* %488, align 4, !tbaa !215
  931.   %489 = getelementptr inbounds float, float* %f0.1, i64 %487
  932.   store float %194, float* %489, align 4, !tbaa !217
  933.   %490 = add nsw i64 %471, %indvars.iv.next199.5
  934.   %491 = getelementptr inbounds float, float* %f0.0, i64 %490
  935.   store float %288, float* %491, align 4, !tbaa !215
  936.   %492 = getelementptr inbounds float, float* %f0.1, i64 %490
  937.   store float %194, float* %492, align 4, !tbaa !217
  938.   %493 = add nsw i64 %471, %indvars.iv.next199.6
  939.   %494 = getelementptr inbounds float, float* %f0.0, i64 %493
  940.   store float %295, float* %494, align 4, !tbaa !215
  941.   %495 = getelementptr inbounds float, float* %f0.1, i64 %493
  942.   store float %194, float* %495, align 4, !tbaa !217
  943.   %496 = add nsw i64 %371, %196
  944.   %497 = add nsw i64 %496, %229
  945.   %498 = getelementptr inbounds float, float* %f0.0, i64 %497
  946.   store float %246, float* %498, align 4, !tbaa !215
  947.   %499 = getelementptr inbounds float, float* %f0.1, i64 %497
  948.   store float %203, float* %499, align 4, !tbaa !217
  949.   %500 = add nsw i64 %496, %indvars.iv.next199
  950.   %501 = getelementptr inbounds float, float* %f0.0, i64 %500
  951.   store float %253, float* %501, align 4, !tbaa !215
  952.   %502 = getelementptr inbounds float, float* %f0.1, i64 %500
  953.   store float %203, float* %502, align 4, !tbaa !217
  954.   %503 = add nsw i64 %496, %indvars.iv.next199.1
  955.   %504 = getelementptr inbounds float, float* %f0.0, i64 %503
  956.   store float %260, float* %504, align 4, !tbaa !215
  957.   %505 = getelementptr inbounds float, float* %f0.1, i64 %503
  958.   store float %203, float* %505, align 4, !tbaa !217
  959.   %506 = add nsw i64 %496, %indvars.iv.next199.2
  960.   %507 = getelementptr inbounds float, float* %f0.0, i64 %506
  961.   store float %267, float* %507, align 4, !tbaa !215
  962.   %508 = getelementptr inbounds float, float* %f0.1, i64 %506
  963.   store float %203, float* %508, align 4, !tbaa !217
  964.   %509 = add nsw i64 %496, %indvars.iv.next199.3
  965.   %510 = getelementptr inbounds float, float* %f0.0, i64 %509
  966.   store float %274, float* %510, align 4, !tbaa !215
  967.   %511 = getelementptr inbounds float, float* %f0.1, i64 %509
  968.   store float %203, float* %511, align 4, !tbaa !217
  969.   %512 = add nsw i64 %496, %indvars.iv.next199.4
  970.   %513 = getelementptr inbounds float, float* %f0.0, i64 %512
  971.   store float %281, float* %513, align 4, !tbaa !215
  972.   %514 = getelementptr inbounds float, float* %f0.1, i64 %512
  973.   store float %203, float* %514, align 4, !tbaa !217
  974.   %515 = add nsw i64 %496, %indvars.iv.next199.5
  975.   %516 = getelementptr inbounds float, float* %f0.0, i64 %515
  976.   store float %288, float* %516, align 4, !tbaa !215
  977.   %517 = getelementptr inbounds float, float* %f0.1, i64 %515
  978.   store float %203, float* %517, align 4, !tbaa !217
  979.   %518 = add nsw i64 %496, %indvars.iv.next199.6
  980.   %519 = getelementptr inbounds float, float* %f0.0, i64 %518
  981.   store float %295, float* %519, align 4, !tbaa !215
  982.   %520 = getelementptr inbounds float, float* %f0.1, i64 %518
  983.   store float %203, float* %520, align 4, !tbaa !217
  984.   %521 = add nsw i64 %371, %205
  985.   %522 = add nsw i64 %521, %229
  986.   %523 = getelementptr inbounds float, float* %f0.0, i64 %522
  987.   store float %246, float* %523, align 4, !tbaa !215
  988.   %524 = getelementptr inbounds float, float* %f0.1, i64 %522
  989.   store float %212, float* %524, align 4, !tbaa !217
  990.   %525 = add nsw i64 %521, %indvars.iv.next199
  991.   %526 = getelementptr inbounds float, float* %f0.0, i64 %525
  992.   store float %253, float* %526, align 4, !tbaa !215
  993.   %527 = getelementptr inbounds float, float* %f0.1, i64 %525
  994.   store float %212, float* %527, align 4, !tbaa !217
  995.   %528 = add nsw i64 %521, %indvars.iv.next199.1
  996.   %529 = getelementptr inbounds float, float* %f0.0, i64 %528
  997.   store float %260, float* %529, align 4, !tbaa !215
  998.   %530 = getelementptr inbounds float, float* %f0.1, i64 %528
  999.   store float %212, float* %530, align 4, !tbaa !217
  1000.   %531 = add nsw i64 %521, %indvars.iv.next199.2
  1001.   %532 = getelementptr inbounds float, float* %f0.0, i64 %531
  1002.   store float %267, float* %532, align 4, !tbaa !215
  1003.   %533 = getelementptr inbounds float, float* %f0.1, i64 %531
  1004.   store float %212, float* %533, align 4, !tbaa !217
  1005.   %534 = add nsw i64 %521, %indvars.iv.next199.3
  1006.   %535 = getelementptr inbounds float, float* %f0.0, i64 %534
  1007.   store float %274, float* %535, align 4, !tbaa !215
  1008.   %536 = getelementptr inbounds float, float* %f0.1, i64 %534
  1009.   store float %212, float* %536, align 4, !tbaa !217
  1010.   %537 = add nsw i64 %521, %indvars.iv.next199.4
  1011.   %538 = getelementptr inbounds float, float* %f0.0, i64 %537
  1012.   store float %281, float* %538, align 4, !tbaa !215
  1013.   %539 = getelementptr inbounds float, float* %f0.1, i64 %537
  1014.   store float %212, float* %539, align 4, !tbaa !217
  1015.   %540 = add nsw i64 %521, %indvars.iv.next199.5
  1016.   %541 = getelementptr inbounds float, float* %f0.0, i64 %540
  1017.   store float %288, float* %541, align 4, !tbaa !215
  1018.   %542 = getelementptr inbounds float, float* %f0.1, i64 %540
  1019.   store float %212, float* %542, align 4, !tbaa !217
  1020.   %543 = add nsw i64 %521, %indvars.iv.next199.6
  1021.   %544 = getelementptr inbounds float, float* %f0.0, i64 %543
  1022.   store float %295, float* %544, align 4, !tbaa !215
  1023.   %545 = getelementptr inbounds float, float* %f0.1, i64 %543
  1024.   store float %212, float* %545, align 4, !tbaa !217
  1025.   %546 = add nsw i64 %371, %214
  1026.   %547 = add nsw i64 %546, %229
  1027.   %548 = getelementptr inbounds float, float* %f0.0, i64 %547
  1028.   store float %246, float* %548, align 4, !tbaa !215
  1029.   %549 = getelementptr inbounds float, float* %f0.1, i64 %547
  1030.   store float %221, float* %549, align 4, !tbaa !217
  1031.   %550 = add nsw i64 %546, %indvars.iv.next199
  1032.   %551 = getelementptr inbounds float, float* %f0.0, i64 %550
  1033.   store float %253, float* %551, align 4, !tbaa !215
  1034.   %552 = getelementptr inbounds float, float* %f0.1, i64 %550
  1035.   store float %221, float* %552, align 4, !tbaa !217
  1036.   %553 = add nsw i64 %546, %indvars.iv.next199.1
  1037.   %554 = getelementptr inbounds float, float* %f0.0, i64 %553
  1038.   store float %260, float* %554, align 4, !tbaa !215
  1039.   %555 = getelementptr inbounds float, float* %f0.1, i64 %553
  1040.   store float %221, float* %555, align 4, !tbaa !217
  1041.   %556 = add nsw i64 %546, %indvars.iv.next199.2
  1042.   %557 = getelementptr inbounds float, float* %f0.0, i64 %556
  1043.   store float %267, float* %557, align 4, !tbaa !215
  1044.   %558 = getelementptr inbounds float, float* %f0.1, i64 %556
  1045.   store float %221, float* %558, align 4, !tbaa !217
  1046.   %559 = add nsw i64 %546, %indvars.iv.next199.3
  1047.   %560 = getelementptr inbounds float, float* %f0.0, i64 %559
  1048.   store float %274, float* %560, align 4, !tbaa !215
  1049.   %561 = getelementptr inbounds float, float* %f0.1, i64 %559
  1050.   store float %221, float* %561, align 4, !tbaa !217
  1051.   %562 = add nsw i64 %546, %indvars.iv.next199.4
  1052.   %563 = getelementptr inbounds float, float* %f0.0, i64 %562
  1053.   store float %281, float* %563, align 4, !tbaa !215
  1054.   %564 = getelementptr inbounds float, float* %f0.1, i64 %562
  1055.   store float %221, float* %564, align 4, !tbaa !217
  1056.   %565 = add nsw i64 %546, %indvars.iv.next199.5
  1057.   %566 = getelementptr inbounds float, float* %f0.0, i64 %565
  1058.   store float %288, float* %566, align 4, !tbaa !215
  1059.   %567 = getelementptr inbounds float, float* %f0.1, i64 %565
  1060.   store float %221, float* %567, align 4, !tbaa !217
  1061.   %568 = add nsw i64 %546, %indvars.iv.next199.6
  1062.   %569 = getelementptr inbounds float, float* %f0.0, i64 %568
  1063.   store float %295, float* %569, align 4, !tbaa !215
  1064.   %570 = getelementptr inbounds float, float* %f0.1, i64 %568
  1065.   store float %221, float* %570, align 4, !tbaa !217
  1066.   %indvars.iv.next206 = add nuw nsw i64 %indvars.iv205, 1
  1067.   %571 = icmp eq i64 %indvars.iv.next206, %101
  1068.   br i1 %571, label %"for f0.s1.v1.preheader", label %"for f0.s0.v2"
  1069.  
  1070. "consume f0":                                     ; preds = %"end for f0.s1.r4$x.loopexit.us.us.7", %"for f0.s1.v1.preheader"
  1071.   %.lcssa.lcssa = phi i1 [ false, %"for f0.s1.v1.preheader" ], [ true, %"end for f0.s1.r4$x.loopexit.us.us.7" ]
  1072.   call void asm sideeffect "", ""() #9, !srcloc !175
  1073.   store volatile i32 %add.i106, i32* %current_func.i105, align 4, !tbaa !38
  1074.   call void asm sideeffect "", ""() #9, !srcloc !176
  1075.   %572 = sub i64 %240, %112
  1076.   br label %"for f1.s0.v1.v16.v16"
  1077.  
  1078. "for f1.s0.v1.v16.v16":                           ; preds = %"consume argmin52", %"consume f0"
  1079.   %indvars.iv227 = phi i64 [ %indvars.iv.next228, %"consume argmin52" ], [ 0, %"consume f0" ]
  1080.   %573 = shl i64 %indvars.iv227, 1
  1081.   %574 = add nsw i64 %573, %151
  1082.   call void asm sideeffect "", ""() #9, !srcloc !175
  1083.   store volatile i32 %add.i116, i32* %current_func.i105, align 4, !tbaa !38
  1084.   call void asm sideeffect "", ""() #9, !srcloc !176
  1085.   br i1 %.lcssa.lcssa, label %"for argmin.s1.r4$x.preheader", label %"consume argmin", !prof !210
  1086.  
  1087. "for argmin.s1.r4$x.preheader":                   ; preds = %"for f1.s0.v1.v16.v16"
  1088.   %indvars.iv227.tr235 = trunc i64 %indvars.iv227 to i32
  1089.   %575 = shl i32 %indvars.iv227.tr235, 4
  1090.   br i1 %lcmp.mod314, label %"for argmin.s1.r4$x.prol", label %"for argmin.s1.r4$x.prol.loopexit"
  1091.  
  1092. "for argmin.s1.r4$x.prol":                        ; preds = %"for argmin.s1.r4$x.preheader"
  1093.   %t329.prol = add nsw i32 %575, 64
  1094.   %576 = sext i32 %t329.prol to i64
  1095.   %577 = getelementptr inbounds float, float* %f0.0, i64 %576
  1096.   %578 = bitcast float* %577 to <4 x float>*
  1097.   %t330.prol = load <4 x float>, <4 x float>* %578, align 32, !tbaa !215
  1098.   %579 = getelementptr inbounds float, float* %f0.1, i64 %576
  1099.   %580 = bitcast float* %579 to <4 x float>*
  1100.   %t331.prol = load <4 x float>, <4 x float>* %580, align 32, !tbaa !217
  1101.   %581 = fsub <4 x float> zeroinitializer, %t331.prol
  1102.   %582 = fmul <4 x float> %t331.prol, %581
  1103.   %583 = fadd <4 x float> %582, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1104.   %584 = fmul <4 x float> %t330.prol, %t330.prol
  1105.   %585 = fcmp ogt <4 x float> %583, %584
  1106.   %586 = shufflevector <4 x i1> %585, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1107.   %tmp59.prol = xor <128 x i1> %586, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1108.   %587 = and <128 x i1> %tmp59.prol, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1109.   %588 = shufflevector <128 x i1> %587, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1110.   %argmin.0.value.x4.prol = zext <4 x i1> %588 to <4 x i32>
  1111.   %589 = select <128 x i1> %587, <128 x i1> %586, <128 x i1> <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1112.   %argmin.1.value.x4.prol = shufflevector <128 x i1> %589, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1113.   %590 = zext <4 x i1> %argmin.1.value.x4.prol to <4 x i8>
  1114.   br label %"for argmin.s1.r4$x.prol.loopexit"
  1115.  
  1116. "for argmin.s1.r4$x.prol.loopexit":               ; preds = %"for argmin.s1.r4$x.prol", %"for argmin.s1.r4$x.preheader"
  1117.   %argmin.0.value.x4.lcssa.unr.ph = phi <4 x i32> [ %argmin.0.value.x4.prol, %"for argmin.s1.r4$x.prol" ], [ undef, %"for argmin.s1.r4$x.preheader" ]
  1118.   %.lcssa.unr.ph = phi <4 x i8> [ %590, %"for argmin.s1.r4$x.prol" ], [ undef, %"for argmin.s1.r4$x.preheader" ]
  1119.   %indvars.iv219.unr.ph = phi i64 [ 2, %"for argmin.s1.r4$x.prol" ], [ 1, %"for argmin.s1.r4$x.preheader" ]
  1120.   %argmin.153.0.unr.ph = phi <4 x i8> [ %590, %"for argmin.s1.r4$x.prol" ], [ <i8 1, i8 1, i8 1, i8 1>, %"for argmin.s1.r4$x.preheader" ]
  1121.   %argmin.054.0.unr.ph = phi <4 x i32> [ %argmin.0.value.x4.prol, %"for argmin.s1.r4$x.prol" ], [ zeroinitializer, %"for argmin.s1.r4$x.preheader" ]
  1122.   br i1 %138, label %"consume argmin", label %"for argmin.s1.r4$x"
  1123.  
  1124. call_destructor.exit124:                          ; preds = %"consume argmin52"
  1125.   call void @halide_profiler_memory_free(i8* null, i8* %11, i32 2, i64 %100) #9
  1126.   call void @halide_free(i8* null, i8* nonnull %234) #12
  1127.   call void @halide_profiler_memory_free(i8* null, i8* %11, i32 2, i64 %100) #9
  1128.   call void @halide_free(i8* null, i8* nonnull %237) #12
  1129.   %591 = add nuw nsw i32 %f1.s0.v0.v17, 1
  1130.   %592 = icmp eq i32 %591, %96
  1131.   %indvars.iv.next210 = add i32 %indvars.iv209, -8
  1132.   br i1 %592, label %"end for f1.s0.v0.v17.loopexit", label %"for f1.s0.v0.v17"
  1133.  
  1134. "for argmin.s1.r4$x":                             ; preds = %"for argmin.s1.r4$x.prol.loopexit", %"for argmin.s1.r4$x"
  1135.   %indvars.iv219 = phi i64 [ %indvars.iv.next220.1, %"for argmin.s1.r4$x" ], [ %indvars.iv219.unr.ph, %"for argmin.s1.r4$x.prol.loopexit" ]
  1136.   %argmin.153.0 = phi <4 x i8> [ %631, %"for argmin.s1.r4$x" ], [ %argmin.153.0.unr.ph, %"for argmin.s1.r4$x.prol.loopexit" ]
  1137.   %argmin.054.0 = phi <4 x i32> [ %argmin.0.value.x4.1, %"for argmin.s1.r4$x" ], [ %argmin.054.0.unr.ph, %"for argmin.s1.r4$x.prol.loopexit" ]
  1138.   %593 = trunc i64 %indvars.iv219 to i32
  1139.   %594 = shl i32 %593, 6
  1140.   %t329 = add nsw i32 %594, %575
  1141.   %595 = sext i32 %t329 to i64
  1142.   %596 = getelementptr inbounds float, float* %f0.0, i64 %595
  1143.   %597 = bitcast float* %596 to <4 x float>*
  1144.   %t330 = load <4 x float>, <4 x float>* %597, align 32, !tbaa !215
  1145.   %598 = getelementptr inbounds float, float* %f0.1, i64 %595
  1146.   %599 = bitcast float* %598 to <4 x float>*
  1147.   %t331 = load <4 x float>, <4 x float>* %599, align 32, !tbaa !217
  1148.   %600 = icmp ne <4 x i8> %argmin.153.0, zeroinitializer
  1149.   %601 = fsub <4 x float> zeroinitializer, %t331
  1150.   %602 = fmul <4 x float> %t331, %601
  1151.   %603 = fadd <4 x float> %602, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1152.   %604 = fmul <4 x float> %t330, %t330
  1153.   %605 = fcmp ogt <4 x float> %603, %604
  1154.   %606 = shufflevector <4 x i1> %600, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1155.   %607 = shufflevector <4 x i1> %605, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1156.   %tmp59 = xor <128 x i1> %607, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1157.   %608 = and <128 x i1> %tmp59, %606
  1158.   %609 = shufflevector <128 x i1> %608, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1159.   %610 = insertelement <4 x i32> undef, i32 %593, i32 0
  1160.   %611 = shufflevector <4 x i32> %610, <4 x i32> undef, <4 x i32> zeroinitializer
  1161.   %argmin.0.value.x4 = select <4 x i1> %609, <4 x i32> %611, <4 x i32> %argmin.054.0
  1162.   %612 = select <128 x i1> %608, <128 x i1> %607, <128 x i1> %606
  1163.   %indvars.iv.next220 = add nuw nsw i64 %indvars.iv219, 1
  1164.   %613 = trunc i64 %indvars.iv.next220 to i32
  1165.   %614 = shl i32 %613, 6
  1166.   %t329.1 = add nsw i32 %614, %575
  1167.   %615 = sext i32 %t329.1 to i64
  1168.   %616 = getelementptr inbounds float, float* %f0.0, i64 %615
  1169.   %617 = bitcast float* %616 to <4 x float>*
  1170.   %t330.1 = load <4 x float>, <4 x float>* %617, align 32, !tbaa !215
  1171.   %618 = getelementptr inbounds float, float* %f0.1, i64 %615
  1172.   %619 = bitcast float* %618 to <4 x float>*
  1173.   %t331.1 = load <4 x float>, <4 x float>* %619, align 32, !tbaa !217
  1174.   %620 = fsub <4 x float> zeroinitializer, %t331.1
  1175.   %621 = fmul <4 x float> %t331.1, %620
  1176.   %622 = fadd <4 x float> %621, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1177.   %623 = fmul <4 x float> %t330.1, %t330.1
  1178.   %624 = fcmp ogt <4 x float> %622, %623
  1179.   %625 = shufflevector <4 x i1> %624, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1180.   %tmp59.1 = xor <128 x i1> %625, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1181.   %626 = and <128 x i1> %tmp59.1, %612
  1182.   %627 = shufflevector <128 x i1> %626, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1183.   %628 = insertelement <4 x i32> undef, i32 %613, i32 0
  1184.   %629 = shufflevector <4 x i32> %628, <4 x i32> undef, <4 x i32> zeroinitializer
  1185.   %argmin.0.value.x4.1 = select <4 x i1> %627, <4 x i32> %629, <4 x i32> %argmin.0.value.x4
  1186.   %630 = select <128 x i1> %626, <128 x i1> %625, <128 x i1> %612
  1187.   %argmin.1.value.x4.1 = shufflevector <128 x i1> %630, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1188.   %631 = zext <4 x i1> %argmin.1.value.x4.1 to <4 x i8>
  1189.   %indvars.iv.next220.1 = add nsw i64 %indvars.iv219, 2
  1190.   %632 = icmp eq i64 %indvars.iv.next220.1, %101
  1191.   br i1 %632, label %"consume argmin", label %"for argmin.s1.r4$x"
  1192.  
  1193. "consume argmin":                                 ; preds = %"for argmin.s1.r4$x.prol.loopexit", %"for argmin.s1.r4$x", %"for f1.s0.v1.v16.v16"
  1194.   %argmin.153.1 = phi <4 x i8> [ <i8 1, i8 1, i8 1, i8 1>, %"for f1.s0.v1.v16.v16" ], [ %.lcssa.unr.ph, %"for argmin.s1.r4$x.prol.loopexit" ], [ %631, %"for argmin.s1.r4$x" ]
  1195.   %argmin.054.1 = phi <4 x i32> [ zeroinitializer, %"for f1.s0.v1.v16.v16" ], [ %argmin.0.value.x4.lcssa.unr.ph, %"for argmin.s1.r4$x.prol.loopexit" ], [ %argmin.0.value.x4.1, %"for argmin.s1.r4$x" ]
  1196.   call void asm sideeffect "", ""() #9, !srcloc !175
  1197.   store volatile i32 %add.i106, i32* %current_func.i105, align 4, !tbaa !38
  1198.   call void asm sideeffect "", ""() #9, !srcloc !176
  1199.   %633 = icmp ne <4 x i8> %argmin.153.1, zeroinitializer
  1200.   %634 = select <4 x i1> %633, <4 x i32> zeroinitializer, <4 x i32> %argmin.054.1
  1201.   %635 = mul nsw i64 %574, %83
  1202.   %636 = add i64 %572, %635
  1203.   %637 = getelementptr inbounds i32, i32* %113, i64 %636
  1204.   %638 = bitcast i32* %637 to <4 x i32>*
  1205.   store <4 x i32> %634, <4 x i32>* %638, align 4, !tbaa !219
  1206.   call void asm sideeffect "", ""() #9, !srcloc !175
  1207.   store volatile i32 %add.i116, i32* %current_func.i105, align 4, !tbaa !38
  1208.   call void asm sideeffect "", ""() #9, !srcloc !176
  1209.   br i1 %.lcssa.lcssa, label %"for argmin.s1.r4$x33.preheader", label %"consume argmin38", !prof !210
  1210.  
  1211. "for argmin.s1.r4$x33.preheader":                 ; preds = %"consume argmin"
  1212.   %indvars.iv227.tr234 = trunc i64 %indvars.iv227 to i32
  1213.   %639 = shl i32 %indvars.iv227.tr234, 4
  1214.   br i1 %lcmp.mod316, label %"for argmin.s1.r4$x33.prol", label %"for argmin.s1.r4$x33.prol.loopexit"
  1215.  
  1216. "for argmin.s1.r4$x33.prol":                      ; preds = %"for argmin.s1.r4$x33.preheader"
  1217.   %t337.prol = add nsw i32 %639, 64
  1218.   %640 = sext i32 %t337.prol to i64
  1219.   %641 = or i64 %640, 4
  1220.   %642 = getelementptr inbounds float, float* %f0.0, i64 %641
  1221.   %643 = bitcast float* %642 to <4 x float>*
  1222.   %t338.prol = load <4 x float>, <4 x float>* %643, align 16, !tbaa !215
  1223.   %644 = getelementptr inbounds float, float* %f0.1, i64 %641
  1224.   %645 = bitcast float* %644 to <4 x float>*
  1225.   %t339.prol = load <4 x float>, <4 x float>* %645, align 16, !tbaa !217
  1226.   %646 = fsub <4 x float> zeroinitializer, %t339.prol
  1227.   %647 = fmul <4 x float> %t339.prol, %646
  1228.   %648 = fadd <4 x float> %647, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1229.   %649 = fmul <4 x float> %t338.prol, %t338.prol
  1230.   %650 = fcmp ogt <4 x float> %648, %649
  1231.   %651 = shufflevector <4 x i1> %650, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1232.   %tmp58.prol = xor <128 x i1> %651, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1233.   %652 = and <128 x i1> %tmp58.prol, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1234.   %653 = shufflevector <128 x i1> %652, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1235.   %argmin.0.value.x436.prol = zext <4 x i1> %653 to <4 x i32>
  1236.   %654 = select <128 x i1> %652, <128 x i1> %651, <128 x i1> <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1237.   %argmin.1.value.x437.prol = shufflevector <128 x i1> %654, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1238.   %655 = zext <4 x i1> %argmin.1.value.x437.prol to <4 x i8>
  1239.   br label %"for argmin.s1.r4$x33.prol.loopexit"
  1240.  
  1241. "for argmin.s1.r4$x33.prol.loopexit":             ; preds = %"for argmin.s1.r4$x33.prol", %"for argmin.s1.r4$x33.preheader"
  1242.   %argmin.0.value.x436.lcssa.unr.ph = phi <4 x i32> [ %argmin.0.value.x436.prol, %"for argmin.s1.r4$x33.prol" ], [ undef, %"for argmin.s1.r4$x33.preheader" ]
  1243.   %.lcssa275.unr.ph = phi <4 x i8> [ %655, %"for argmin.s1.r4$x33.prol" ], [ undef, %"for argmin.s1.r4$x33.preheader" ]
  1244.   %indvars.iv221.unr.ph = phi i64 [ 2, %"for argmin.s1.r4$x33.prol" ], [ 1, %"for argmin.s1.r4$x33.preheader" ]
  1245.   %argmin.153.2.unr.ph = phi <4 x i8> [ %655, %"for argmin.s1.r4$x33.prol" ], [ <i8 1, i8 1, i8 1, i8 1>, %"for argmin.s1.r4$x33.preheader" ]
  1246.   %argmin.054.2.unr.ph = phi <4 x i32> [ %argmin.0.value.x436.prol, %"for argmin.s1.r4$x33.prol" ], [ zeroinitializer, %"for argmin.s1.r4$x33.preheader" ]
  1247.   br i1 %140, label %"consume argmin38", label %"for argmin.s1.r4$x33"
  1248.  
  1249. "for argmin.s1.r4$x33":                           ; preds = %"for argmin.s1.r4$x33.prol.loopexit", %"for argmin.s1.r4$x33"
  1250.   %indvars.iv221 = phi i64 [ %indvars.iv.next222.1, %"for argmin.s1.r4$x33" ], [ %indvars.iv221.unr.ph, %"for argmin.s1.r4$x33.prol.loopexit" ]
  1251.   %argmin.153.2 = phi <4 x i8> [ %696, %"for argmin.s1.r4$x33" ], [ %argmin.153.2.unr.ph, %"for argmin.s1.r4$x33.prol.loopexit" ]
  1252.   %argmin.054.2 = phi <4 x i32> [ %argmin.0.value.x436.1, %"for argmin.s1.r4$x33" ], [ %argmin.054.2.unr.ph, %"for argmin.s1.r4$x33.prol.loopexit" ]
  1253.   %656 = trunc i64 %indvars.iv221 to i32
  1254.   %657 = shl i32 %656, 6
  1255.   %t337 = add nsw i32 %657, %639
  1256.   %658 = sext i32 %t337 to i64
  1257.   %659 = or i64 %658, 4
  1258.   %660 = getelementptr inbounds float, float* %f0.0, i64 %659
  1259.   %661 = bitcast float* %660 to <4 x float>*
  1260.   %t338 = load <4 x float>, <4 x float>* %661, align 16, !tbaa !215
  1261.   %662 = getelementptr inbounds float, float* %f0.1, i64 %659
  1262.   %663 = bitcast float* %662 to <4 x float>*
  1263.   %t339 = load <4 x float>, <4 x float>* %663, align 16, !tbaa !217
  1264.   %664 = icmp ne <4 x i8> %argmin.153.2, zeroinitializer
  1265.   %665 = fsub <4 x float> zeroinitializer, %t339
  1266.   %666 = fmul <4 x float> %t339, %665
  1267.   %667 = fadd <4 x float> %666, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1268.   %668 = fmul <4 x float> %t338, %t338
  1269.   %669 = fcmp ogt <4 x float> %667, %668
  1270.   %670 = shufflevector <4 x i1> %664, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1271.   %671 = shufflevector <4 x i1> %669, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1272.   %tmp58 = xor <128 x i1> %671, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1273.   %672 = and <128 x i1> %tmp58, %670
  1274.   %673 = shufflevector <128 x i1> %672, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1275.   %674 = insertelement <4 x i32> undef, i32 %656, i32 0
  1276.   %675 = shufflevector <4 x i32> %674, <4 x i32> undef, <4 x i32> zeroinitializer
  1277.   %argmin.0.value.x436 = select <4 x i1> %673, <4 x i32> %675, <4 x i32> %argmin.054.2
  1278.   %676 = select <128 x i1> %672, <128 x i1> %671, <128 x i1> %670
  1279.   %indvars.iv.next222 = add nuw nsw i64 %indvars.iv221, 1
  1280.   %677 = trunc i64 %indvars.iv.next222 to i32
  1281.   %678 = shl i32 %677, 6
  1282.   %t337.1 = add nsw i32 %678, %639
  1283.   %679 = sext i32 %t337.1 to i64
  1284.   %680 = or i64 %679, 4
  1285.   %681 = getelementptr inbounds float, float* %f0.0, i64 %680
  1286.   %682 = bitcast float* %681 to <4 x float>*
  1287.   %t338.1 = load <4 x float>, <4 x float>* %682, align 16, !tbaa !215
  1288.   %683 = getelementptr inbounds float, float* %f0.1, i64 %680
  1289.   %684 = bitcast float* %683 to <4 x float>*
  1290.   %t339.1 = load <4 x float>, <4 x float>* %684, align 16, !tbaa !217
  1291.   %685 = fsub <4 x float> zeroinitializer, %t339.1
  1292.   %686 = fmul <4 x float> %t339.1, %685
  1293.   %687 = fadd <4 x float> %686, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1294.   %688 = fmul <4 x float> %t338.1, %t338.1
  1295.   %689 = fcmp ogt <4 x float> %687, %688
  1296.   %690 = shufflevector <4 x i1> %689, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1297.   %tmp58.1 = xor <128 x i1> %690, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1298.   %691 = and <128 x i1> %tmp58.1, %676
  1299.   %692 = shufflevector <128 x i1> %691, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1300.   %693 = insertelement <4 x i32> undef, i32 %677, i32 0
  1301.   %694 = shufflevector <4 x i32> %693, <4 x i32> undef, <4 x i32> zeroinitializer
  1302.   %argmin.0.value.x436.1 = select <4 x i1> %692, <4 x i32> %694, <4 x i32> %argmin.0.value.x436
  1303.   %695 = select <128 x i1> %691, <128 x i1> %690, <128 x i1> %676
  1304.   %argmin.1.value.x437.1 = shufflevector <128 x i1> %695, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1305.   %696 = zext <4 x i1> %argmin.1.value.x437.1 to <4 x i8>
  1306.   %indvars.iv.next222.1 = add nsw i64 %indvars.iv221, 2
  1307.   %697 = icmp eq i64 %indvars.iv.next222.1, %101
  1308.   br i1 %697, label %"consume argmin38", label %"for argmin.s1.r4$x33"
  1309.  
  1310. "consume argmin38":                               ; preds = %"for argmin.s1.r4$x33.prol.loopexit", %"for argmin.s1.r4$x33", %"consume argmin"
  1311.   %argmin.153.3 = phi <4 x i8> [ <i8 1, i8 1, i8 1, i8 1>, %"consume argmin" ], [ %.lcssa275.unr.ph, %"for argmin.s1.r4$x33.prol.loopexit" ], [ %696, %"for argmin.s1.r4$x33" ]
  1312.   %argmin.054.3 = phi <4 x i32> [ zeroinitializer, %"consume argmin" ], [ %argmin.0.value.x436.lcssa.unr.ph, %"for argmin.s1.r4$x33.prol.loopexit" ], [ %argmin.0.value.x436.1, %"for argmin.s1.r4$x33" ]
  1313.   call void asm sideeffect "", ""() #9, !srcloc !175
  1314.   store volatile i32 %add.i106, i32* %current_func.i105, align 4, !tbaa !38
  1315.   call void asm sideeffect "", ""() #9, !srcloc !176
  1316.   %698 = icmp ne <4 x i8> %argmin.153.3, zeroinitializer
  1317.   %699 = select <4 x i1> %698, <4 x i32> zeroinitializer, <4 x i32> %argmin.054.3
  1318.   %700 = add nsw i64 %636, 4
  1319.   %701 = getelementptr inbounds i32, i32* %113, i64 %700
  1320.   %702 = bitcast i32* %701 to <4 x i32>*
  1321.   store <4 x i32> %699, <4 x i32>* %702, align 4, !tbaa !219
  1322.   call void asm sideeffect "", ""() #9, !srcloc !175
  1323.   store volatile i32 %add.i116, i32* %current_func.i105, align 4, !tbaa !38
  1324.   call void asm sideeffect "", ""() #9, !srcloc !176
  1325.   br i1 %.lcssa.lcssa, label %"for argmin.s1.r4$x40.preheader", label %"consume argmin45", !prof !210
  1326.  
  1327. "for argmin.s1.r4$x40.preheader":                 ; preds = %"consume argmin38"
  1328.   %indvars.iv227.tr233 = trunc i64 %indvars.iv227 to i32
  1329.   %703 = shl i32 %indvars.iv227.tr233, 4
  1330.   br i1 %lcmp.mod318, label %"for argmin.s1.r4$x40.prol", label %"for argmin.s1.r4$x40.prol.loopexit"
  1331.  
  1332. "for argmin.s1.r4$x40.prol":                      ; preds = %"for argmin.s1.r4$x40.preheader"
  1333.   %t345.prol = add nsw i32 %703, 64
  1334.   %704 = sext i32 %t345.prol to i64
  1335.   %705 = or i64 %704, 8
  1336.   %706 = getelementptr inbounds float, float* %f0.0, i64 %705
  1337.   %707 = bitcast float* %706 to <4 x float>*
  1338.   %t346.prol = load <4 x float>, <4 x float>* %707, align 32, !tbaa !215
  1339.   %708 = getelementptr inbounds float, float* %f0.1, i64 %705
  1340.   %709 = bitcast float* %708 to <4 x float>*
  1341.   %t347.prol = load <4 x float>, <4 x float>* %709, align 32, !tbaa !217
  1342.   %710 = fsub <4 x float> zeroinitializer, %t347.prol
  1343.   %711 = fmul <4 x float> %t347.prol, %710
  1344.   %712 = fadd <4 x float> %711, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1345.   %713 = fmul <4 x float> %t346.prol, %t346.prol
  1346.   %714 = fcmp ogt <4 x float> %712, %713
  1347.   %715 = shufflevector <4 x i1> %714, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1348.   %tmp57.prol = xor <128 x i1> %715, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1349.   %716 = and <128 x i1> %tmp57.prol, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1350.   %717 = shufflevector <128 x i1> %716, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1351.   %argmin.0.value.x443.prol = zext <4 x i1> %717 to <4 x i32>
  1352.   %718 = select <128 x i1> %716, <128 x i1> %715, <128 x i1> <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1353.   %argmin.1.value.x444.prol = shufflevector <128 x i1> %718, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1354.   %719 = zext <4 x i1> %argmin.1.value.x444.prol to <4 x i8>
  1355.   br label %"for argmin.s1.r4$x40.prol.loopexit"
  1356.  
  1357. "for argmin.s1.r4$x40.prol.loopexit":             ; preds = %"for argmin.s1.r4$x40.prol", %"for argmin.s1.r4$x40.preheader"
  1358.   %argmin.0.value.x443.lcssa.unr.ph = phi <4 x i32> [ %argmin.0.value.x443.prol, %"for argmin.s1.r4$x40.prol" ], [ undef, %"for argmin.s1.r4$x40.preheader" ]
  1359.   %.lcssa276.unr.ph = phi <4 x i8> [ %719, %"for argmin.s1.r4$x40.prol" ], [ undef, %"for argmin.s1.r4$x40.preheader" ]
  1360.   %indvars.iv223.unr.ph = phi i64 [ 2, %"for argmin.s1.r4$x40.prol" ], [ 1, %"for argmin.s1.r4$x40.preheader" ]
  1361.   %argmin.153.4.unr.ph = phi <4 x i8> [ %719, %"for argmin.s1.r4$x40.prol" ], [ <i8 1, i8 1, i8 1, i8 1>, %"for argmin.s1.r4$x40.preheader" ]
  1362.   %argmin.054.4.unr.ph = phi <4 x i32> [ %argmin.0.value.x443.prol, %"for argmin.s1.r4$x40.prol" ], [ zeroinitializer, %"for argmin.s1.r4$x40.preheader" ]
  1363.   br i1 %142, label %"consume argmin45", label %"for argmin.s1.r4$x40"
  1364.  
  1365. "for argmin.s1.r4$x40":                           ; preds = %"for argmin.s1.r4$x40.prol.loopexit", %"for argmin.s1.r4$x40"
  1366.   %indvars.iv223 = phi i64 [ %indvars.iv.next224.1, %"for argmin.s1.r4$x40" ], [ %indvars.iv223.unr.ph, %"for argmin.s1.r4$x40.prol.loopexit" ]
  1367.   %argmin.153.4 = phi <4 x i8> [ %760, %"for argmin.s1.r4$x40" ], [ %argmin.153.4.unr.ph, %"for argmin.s1.r4$x40.prol.loopexit" ]
  1368.   %argmin.054.4 = phi <4 x i32> [ %argmin.0.value.x443.1, %"for argmin.s1.r4$x40" ], [ %argmin.054.4.unr.ph, %"for argmin.s1.r4$x40.prol.loopexit" ]
  1369.   %720 = trunc i64 %indvars.iv223 to i32
  1370.   %721 = shl i32 %720, 6
  1371.   %t345 = add nsw i32 %721, %703
  1372.   %722 = sext i32 %t345 to i64
  1373.   %723 = or i64 %722, 8
  1374.   %724 = getelementptr inbounds float, float* %f0.0, i64 %723
  1375.   %725 = bitcast float* %724 to <4 x float>*
  1376.   %t346 = load <4 x float>, <4 x float>* %725, align 32, !tbaa !215
  1377.   %726 = getelementptr inbounds float, float* %f0.1, i64 %723
  1378.   %727 = bitcast float* %726 to <4 x float>*
  1379.   %t347 = load <4 x float>, <4 x float>* %727, align 32, !tbaa !217
  1380.   %728 = icmp ne <4 x i8> %argmin.153.4, zeroinitializer
  1381.   %729 = fsub <4 x float> zeroinitializer, %t347
  1382.   %730 = fmul <4 x float> %t347, %729
  1383.   %731 = fadd <4 x float> %730, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1384.   %732 = fmul <4 x float> %t346, %t346
  1385.   %733 = fcmp ogt <4 x float> %731, %732
  1386.   %734 = shufflevector <4 x i1> %728, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1387.   %735 = shufflevector <4 x i1> %733, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1388.   %tmp57 = xor <128 x i1> %735, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1389.   %736 = and <128 x i1> %tmp57, %734
  1390.   %737 = shufflevector <128 x i1> %736, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1391.   %738 = insertelement <4 x i32> undef, i32 %720, i32 0
  1392.   %739 = shufflevector <4 x i32> %738, <4 x i32> undef, <4 x i32> zeroinitializer
  1393.   %argmin.0.value.x443 = select <4 x i1> %737, <4 x i32> %739, <4 x i32> %argmin.054.4
  1394.   %740 = select <128 x i1> %736, <128 x i1> %735, <128 x i1> %734
  1395.   %indvars.iv.next224 = add nuw nsw i64 %indvars.iv223, 1
  1396.   %741 = trunc i64 %indvars.iv.next224 to i32
  1397.   %742 = shl i32 %741, 6
  1398.   %t345.1 = add nsw i32 %742, %703
  1399.   %743 = sext i32 %t345.1 to i64
  1400.   %744 = or i64 %743, 8
  1401.   %745 = getelementptr inbounds float, float* %f0.0, i64 %744
  1402.   %746 = bitcast float* %745 to <4 x float>*
  1403.   %t346.1 = load <4 x float>, <4 x float>* %746, align 32, !tbaa !215
  1404.   %747 = getelementptr inbounds float, float* %f0.1, i64 %744
  1405.   %748 = bitcast float* %747 to <4 x float>*
  1406.   %t347.1 = load <4 x float>, <4 x float>* %748, align 32, !tbaa !217
  1407.   %749 = fsub <4 x float> zeroinitializer, %t347.1
  1408.   %750 = fmul <4 x float> %t347.1, %749
  1409.   %751 = fadd <4 x float> %750, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1410.   %752 = fmul <4 x float> %t346.1, %t346.1
  1411.   %753 = fcmp ogt <4 x float> %751, %752
  1412.   %754 = shufflevector <4 x i1> %753, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1413.   %tmp57.1 = xor <128 x i1> %754, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1414.   %755 = and <128 x i1> %tmp57.1, %740
  1415.   %756 = shufflevector <128 x i1> %755, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1416.   %757 = insertelement <4 x i32> undef, i32 %741, i32 0
  1417.   %758 = shufflevector <4 x i32> %757, <4 x i32> undef, <4 x i32> zeroinitializer
  1418.   %argmin.0.value.x443.1 = select <4 x i1> %756, <4 x i32> %758, <4 x i32> %argmin.0.value.x443
  1419.   %759 = select <128 x i1> %755, <128 x i1> %754, <128 x i1> %740
  1420.   %argmin.1.value.x444.1 = shufflevector <128 x i1> %759, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1421.   %760 = zext <4 x i1> %argmin.1.value.x444.1 to <4 x i8>
  1422.   %indvars.iv.next224.1 = add nsw i64 %indvars.iv223, 2
  1423.   %761 = icmp eq i64 %indvars.iv.next224.1, %101
  1424.   br i1 %761, label %"consume argmin45", label %"for argmin.s1.r4$x40"
  1425.  
  1426. "consume argmin45":                               ; preds = %"for argmin.s1.r4$x40.prol.loopexit", %"for argmin.s1.r4$x40", %"consume argmin38"
  1427.   %argmin.153.5 = phi <4 x i8> [ <i8 1, i8 1, i8 1, i8 1>, %"consume argmin38" ], [ %.lcssa276.unr.ph, %"for argmin.s1.r4$x40.prol.loopexit" ], [ %760, %"for argmin.s1.r4$x40" ]
  1428.   %argmin.054.5 = phi <4 x i32> [ zeroinitializer, %"consume argmin38" ], [ %argmin.0.value.x443.lcssa.unr.ph, %"for argmin.s1.r4$x40.prol.loopexit" ], [ %argmin.0.value.x443.1, %"for argmin.s1.r4$x40" ]
  1429.   call void asm sideeffect "", ""() #9, !srcloc !175
  1430.   store volatile i32 %add.i106, i32* %current_func.i105, align 4, !tbaa !38
  1431.   call void asm sideeffect "", ""() #9, !srcloc !176
  1432.   %762 = icmp ne <4 x i8> %argmin.153.5, zeroinitializer
  1433.   %763 = select <4 x i1> %762, <4 x i32> zeroinitializer, <4 x i32> %argmin.054.5
  1434.   %764 = add nsw i64 %574, 1
  1435.   %765 = mul nsw i64 %764, %83
  1436.   %766 = add i64 %572, %765
  1437.   %767 = getelementptr inbounds i32, i32* %113, i64 %766
  1438.   %768 = bitcast i32* %767 to <4 x i32>*
  1439.   store <4 x i32> %763, <4 x i32>* %768, align 4, !tbaa !219
  1440.   call void asm sideeffect "", ""() #9, !srcloc !175
  1441.   store volatile i32 %add.i116, i32* %current_func.i105, align 4, !tbaa !38
  1442.   call void asm sideeffect "", ""() #9, !srcloc !176
  1443.   br i1 %.lcssa.lcssa, label %"for argmin.s1.r4$x47.preheader", label %"consume argmin52", !prof !210
  1444.  
  1445. "for argmin.s1.r4$x47.preheader":                 ; preds = %"consume argmin45"
  1446.   %indvars.iv227.tr = trunc i64 %indvars.iv227 to i32
  1447.   %769 = shl i32 %indvars.iv227.tr, 4
  1448.   br i1 %lcmp.mod320, label %"for argmin.s1.r4$x47.prol", label %"for argmin.s1.r4$x47.prol.loopexit"
  1449.  
  1450. "for argmin.s1.r4$x47.prol":                      ; preds = %"for argmin.s1.r4$x47.preheader"
  1451.   %t353.prol = add nsw i32 %769, 64
  1452.   %770 = sext i32 %t353.prol to i64
  1453.   %771 = or i64 %770, 12
  1454.   %772 = getelementptr inbounds float, float* %f0.0, i64 %771
  1455.   %773 = bitcast float* %772 to <4 x float>*
  1456.   %t354.prol = load <4 x float>, <4 x float>* %773, align 16, !tbaa !215
  1457.   %774 = getelementptr inbounds float, float* %f0.1, i64 %771
  1458.   %775 = bitcast float* %774 to <4 x float>*
  1459.   %t355.prol = load <4 x float>, <4 x float>* %775, align 16, !tbaa !217
  1460.   %776 = fsub <4 x float> zeroinitializer, %t355.prol
  1461.   %777 = fmul <4 x float> %t355.prol, %776
  1462.   %778 = fadd <4 x float> %777, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1463.   %779 = fmul <4 x float> %t354.prol, %t354.prol
  1464.   %780 = fcmp ogt <4 x float> %778, %779
  1465.   %781 = shufflevector <4 x i1> %780, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1466.   %tmp.prol = xor <128 x i1> %781, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1467.   %782 = and <128 x i1> %tmp.prol, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1468.   %783 = shufflevector <128 x i1> %782, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1469.   %argmin.0.value.x450.prol = zext <4 x i1> %783 to <4 x i32>
  1470.   %784 = select <128 x i1> %782, <128 x i1> %781, <128 x i1> <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1471.   %argmin.1.value.x451.prol = shufflevector <128 x i1> %784, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1472.   %785 = zext <4 x i1> %argmin.1.value.x451.prol to <4 x i8>
  1473.   br label %"for argmin.s1.r4$x47.prol.loopexit"
  1474.  
  1475. "for argmin.s1.r4$x47.prol.loopexit":             ; preds = %"for argmin.s1.r4$x47.prol", %"for argmin.s1.r4$x47.preheader"
  1476.   %argmin.0.value.x450.lcssa.unr.ph = phi <4 x i32> [ %argmin.0.value.x450.prol, %"for argmin.s1.r4$x47.prol" ], [ undef, %"for argmin.s1.r4$x47.preheader" ]
  1477.   %.lcssa277.unr.ph = phi <4 x i8> [ %785, %"for argmin.s1.r4$x47.prol" ], [ undef, %"for argmin.s1.r4$x47.preheader" ]
  1478.   %indvars.iv225.unr.ph = phi i64 [ 2, %"for argmin.s1.r4$x47.prol" ], [ 1, %"for argmin.s1.r4$x47.preheader" ]
  1479.   %argmin.153.6.unr.ph = phi <4 x i8> [ %785, %"for argmin.s1.r4$x47.prol" ], [ <i8 1, i8 1, i8 1, i8 1>, %"for argmin.s1.r4$x47.preheader" ]
  1480.   %argmin.054.6.unr.ph = phi <4 x i32> [ %argmin.0.value.x450.prol, %"for argmin.s1.r4$x47.prol" ], [ zeroinitializer, %"for argmin.s1.r4$x47.preheader" ]
  1481.   br i1 %144, label %"consume argmin52", label %"for argmin.s1.r4$x47"
  1482.  
  1483. "for argmin.s1.r4$x47":                           ; preds = %"for argmin.s1.r4$x47.prol.loopexit", %"for argmin.s1.r4$x47"
  1484.   %indvars.iv225 = phi i64 [ %indvars.iv.next226.1, %"for argmin.s1.r4$x47" ], [ %indvars.iv225.unr.ph, %"for argmin.s1.r4$x47.prol.loopexit" ]
  1485.   %argmin.153.6 = phi <4 x i8> [ %826, %"for argmin.s1.r4$x47" ], [ %argmin.153.6.unr.ph, %"for argmin.s1.r4$x47.prol.loopexit" ]
  1486.   %argmin.054.6 = phi <4 x i32> [ %argmin.0.value.x450.1, %"for argmin.s1.r4$x47" ], [ %argmin.054.6.unr.ph, %"for argmin.s1.r4$x47.prol.loopexit" ]
  1487.   %786 = trunc i64 %indvars.iv225 to i32
  1488.   %787 = shl i32 %786, 6
  1489.   %t353 = add nsw i32 %787, %769
  1490.   %788 = sext i32 %t353 to i64
  1491.   %789 = or i64 %788, 12
  1492.   %790 = getelementptr inbounds float, float* %f0.0, i64 %789
  1493.   %791 = bitcast float* %790 to <4 x float>*
  1494.   %t354 = load <4 x float>, <4 x float>* %791, align 16, !tbaa !215
  1495.   %792 = getelementptr inbounds float, float* %f0.1, i64 %789
  1496.   %793 = bitcast float* %792 to <4 x float>*
  1497.   %t355 = load <4 x float>, <4 x float>* %793, align 16, !tbaa !217
  1498.   %794 = icmp ne <4 x i8> %argmin.153.6, zeroinitializer
  1499.   %795 = fsub <4 x float> zeroinitializer, %t355
  1500.   %796 = fmul <4 x float> %t355, %795
  1501.   %797 = fadd <4 x float> %796, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1502.   %798 = fmul <4 x float> %t354, %t354
  1503.   %799 = fcmp ogt <4 x float> %797, %798
  1504.   %800 = shufflevector <4 x i1> %794, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1505.   %801 = shufflevector <4 x i1> %799, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1506.   %tmp = xor <128 x i1> %801, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1507.   %802 = and <128 x i1> %tmp, %800
  1508.   %803 = shufflevector <128 x i1> %802, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1509.   %804 = insertelement <4 x i32> undef, i32 %786, i32 0
  1510.   %805 = shufflevector <4 x i32> %804, <4 x i32> undef, <4 x i32> zeroinitializer
  1511.   %argmin.0.value.x450 = select <4 x i1> %803, <4 x i32> %805, <4 x i32> %argmin.054.6
  1512.   %806 = select <128 x i1> %802, <128 x i1> %801, <128 x i1> %800
  1513.   %indvars.iv.next226 = add nuw nsw i64 %indvars.iv225, 1
  1514.   %807 = trunc i64 %indvars.iv.next226 to i32
  1515.   %808 = shl i32 %807, 6
  1516.   %t353.1 = add nsw i32 %808, %769
  1517.   %809 = sext i32 %t353.1 to i64
  1518.   %810 = or i64 %809, 12
  1519.   %811 = getelementptr inbounds float, float* %f0.0, i64 %810
  1520.   %812 = bitcast float* %811 to <4 x float>*
  1521.   %t354.1 = load <4 x float>, <4 x float>* %812, align 16, !tbaa !215
  1522.   %813 = getelementptr inbounds float, float* %f0.1, i64 %810
  1523.   %814 = bitcast float* %813 to <4 x float>*
  1524.   %t355.1 = load <4 x float>, <4 x float>* %814, align 16, !tbaa !217
  1525.   %815 = fsub <4 x float> zeroinitializer, %t355.1
  1526.   %816 = fmul <4 x float> %t355.1, %815
  1527.   %817 = fadd <4 x float> %816, <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>
  1528.   %818 = fmul <4 x float> %t354.1, %t354.1
  1529.   %819 = fcmp ogt <4 x float> %817, %818
  1530.   %820 = shufflevector <4 x i1> %819, <4 x i1> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
  1531.   %tmp.1 = xor <128 x i1> %820, <i1 true, i1 true, i1 true, i1 true, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef, i1 undef>
  1532.   %821 = and <128 x i1> %tmp.1, %806
  1533.   %822 = shufflevector <128 x i1> %821, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1534.   %823 = insertelement <4 x i32> undef, i32 %807, i32 0
  1535.   %824 = shufflevector <4 x i32> %823, <4 x i32> undef, <4 x i32> zeroinitializer
  1536.   %argmin.0.value.x450.1 = select <4 x i1> %822, <4 x i32> %824, <4 x i32> %argmin.0.value.x450
  1537.   %825 = select <128 x i1> %821, <128 x i1> %820, <128 x i1> %806
  1538.   %argmin.1.value.x451.1 = shufflevector <128 x i1> %825, <128 x i1> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  1539.   %826 = zext <4 x i1> %argmin.1.value.x451.1 to <4 x i8>
  1540.   %indvars.iv.next226.1 = add nsw i64 %indvars.iv225, 2
  1541.   %827 = icmp eq i64 %indvars.iv.next226.1, %101
  1542.   br i1 %827, label %"consume argmin52", label %"for argmin.s1.r4$x47"
  1543.  
  1544. "consume argmin52":                               ; preds = %"for argmin.s1.r4$x47.prol.loopexit", %"for argmin.s1.r4$x47", %"consume argmin45"
  1545.   %argmin.153.7 = phi <4 x i8> [ <i8 1, i8 1, i8 1, i8 1>, %"consume argmin45" ], [ %.lcssa277.unr.ph, %"for argmin.s1.r4$x47.prol.loopexit" ], [ %826, %"for argmin.s1.r4$x47" ]
  1546.   %argmin.054.7 = phi <4 x i32> [ zeroinitializer, %"consume argmin45" ], [ %argmin.0.value.x450.lcssa.unr.ph, %"for argmin.s1.r4$x47.prol.loopexit" ], [ %argmin.0.value.x450.1, %"for argmin.s1.r4$x47" ]
  1547.   call void asm sideeffect "", ""() #9, !srcloc !175
  1548.   store volatile i32 %add.i106, i32* %current_func.i105, align 4, !tbaa !38
  1549.   call void asm sideeffect "", ""() #9, !srcloc !176
  1550.   %828 = icmp ne <4 x i8> %argmin.153.7, zeroinitializer
  1551.   %829 = select <4 x i1> %828, <4 x i32> zeroinitializer, <4 x i32> %argmin.054.7
  1552.   %830 = add nsw i64 %766, 4
  1553.   %831 = getelementptr inbounds i32, i32* %113, i64 %830
  1554.   %832 = bitcast i32* %831 to <4 x i32>*
  1555.   store <4 x i32> %829, <4 x i32>* %832, align 4, !tbaa !219
  1556.   %indvars.iv.next228 = add nuw nsw i64 %indvars.iv227, 1
  1557.   %833 = icmp eq i64 %indvars.iv.next228, 4
  1558.   br i1 %833, label %call_destructor.exit124, label %"for f1.s0.v1.v16.v16"
  1559.  
  1560. "for f0.s1.r4$x.us.us.1":                         ; preds = %"for f0.s1.r4$x.us.us.1.prol.loopexit", %"for f0.s1.r4$x.us.us.1"
  1561.   %indvars.iv207.1 = phi i64 [ %indvars.iv.next208.1.1, %"for f0.s1.r4$x.us.us.1" ], [ %indvars.iv207.1.unr.ph, %"for f0.s1.r4$x.us.us.1.prol.loopexit" ]
  1562.   %834 = trunc i64 %indvars.iv207.1 to i32
  1563.   %835 = shl i32 %834, 6
  1564.   %t325.us.us.1 = add i32 %316, %835
  1565.   %836 = sext i32 %t325.us.us.1 to i64
  1566.   %837 = add nsw i64 %836, -64
  1567.   %838 = getelementptr inbounds float, float* %f0.0, i64 %837
  1568.   %t326.us.us.1 = load float, float* %838, align 4, !tbaa !215
  1569.   %839 = getelementptr inbounds float, float* %f0.1, i64 %837
  1570.   %t327.us.us.1 = load float, float* %839, align 4, !tbaa !217
  1571.   %840 = fmul float %t327.us.us.1, %t327.us.us.1
  1572.   %841 = fmul float %t326.us.us.1, %t326.us.us.1
  1573.   %842 = fsub float %841, %840
  1574.   %843 = fadd float %842, %c_real
  1575.   %844 = shl nsw i64 %indvars.iv207.1, 6
  1576.   %845 = add nuw nsw i64 %317, %844
  1577.   %846 = getelementptr inbounds float, float* %f0.0, i64 %845
  1578.   store float %843, float* %846, align 4, !tbaa !215
  1579.   %847 = load float, float* %838, align 4, !tbaa !215
  1580.   %848 = fmul float %t327.us.us.1, %847
  1581.   %849 = fmul float %848, 2.000000e+00
  1582.   %850 = fadd float %849, %c_imag
  1583.   %851 = getelementptr inbounds float, float* %f0.1, i64 %845
  1584.   store float %850, float* %851, align 4, !tbaa !217
  1585.   %indvars.iv.next208.1 = add nuw nsw i64 %indvars.iv207.1, 1
  1586.   %852 = trunc i64 %indvars.iv.next208.1 to i32
  1587.   %853 = shl i32 %852, 6
  1588.   %t325.us.us.1.1 = add i32 %316, %853
  1589.   %854 = sext i32 %t325.us.us.1.1 to i64
  1590.   %855 = add nsw i64 %854, -64
  1591.   %856 = getelementptr inbounds float, float* %f0.0, i64 %855
  1592.   %t326.us.us.1.1 = load float, float* %856, align 4, !tbaa !215
  1593.   %857 = getelementptr inbounds float, float* %f0.1, i64 %855
  1594.   %t327.us.us.1.1 = load float, float* %857, align 4, !tbaa !217
  1595.   %858 = fmul float %t327.us.us.1.1, %t327.us.us.1.1
  1596.   %859 = fmul float %t326.us.us.1.1, %t326.us.us.1.1
  1597.   %860 = fsub float %859, %858
  1598.   %861 = fadd float %860, %c_real
  1599.   %862 = shl nsw i64 %indvars.iv.next208.1, 6
  1600.   %863 = add nuw nsw i64 %317, %862
  1601.   %864 = getelementptr inbounds float, float* %f0.0, i64 %863
  1602.   store float %861, float* %864, align 4, !tbaa !215
  1603.   %865 = load float, float* %856, align 4, !tbaa !215
  1604.   %866 = fmul float %t327.us.us.1.1, %865
  1605.   %867 = fmul float %866, 2.000000e+00
  1606.   %868 = fadd float %867, %c_imag
  1607.   %869 = getelementptr inbounds float, float* %f0.1, i64 %863
  1608.   store float %868, float* %869, align 4, !tbaa !217
  1609.   %indvars.iv.next208.1.1 = add nsw i64 %indvars.iv207.1, 2
  1610.   %870 = icmp eq i64 %indvars.iv.next208.1.1, %101
  1611.   br i1 %870, label %"end for f0.s1.r4$x.loopexit.us.us.1", label %"for f0.s1.r4$x.us.us.1"
  1612.  
  1613. "end for f0.s1.r4$x.loopexit.us.us.1":            ; preds = %"for f0.s1.r4$x.us.us.1", %"for f0.s1.r4$x.us.us.1.prol.loopexit"
  1614.   %871 = or i32 %298, 2
  1615.   %872 = add nsw i64 %299, %indvars.iv.next213.1
  1616.   br i1 %lcmp.mod302, label %"for f0.s1.r4$x.us.us.2.prol", label %"for f0.s1.r4$x.us.us.2.prol.loopexit"
  1617.  
  1618. "for f0.s1.r4$x.us.us.2.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us.1"
  1619.   %t325.us.us.2.prol = add i32 %871, 64
  1620.   %873 = sext i32 %t325.us.us.2.prol to i64
  1621.   %874 = add nsw i64 %873, -64
  1622.   %875 = getelementptr inbounds float, float* %f0.0, i64 %874
  1623.   %t326.us.us.2.prol = load float, float* %875, align 4, !tbaa !215
  1624.   %876 = getelementptr inbounds float, float* %f0.1, i64 %874
  1625.   %t327.us.us.2.prol = load float, float* %876, align 4, !tbaa !217
  1626.   %877 = fmul float %t327.us.us.2.prol, %t327.us.us.2.prol
  1627.   %878 = fmul float %t326.us.us.2.prol, %t326.us.us.2.prol
  1628.   %879 = fsub float %878, %877
  1629.   %880 = fadd float %879, %c_real
  1630.   %881 = add nuw nsw i64 %872, 64
  1631.   %882 = getelementptr inbounds float, float* %f0.0, i64 %881
  1632.   store float %880, float* %882, align 4, !tbaa !215
  1633.   %883 = load float, float* %875, align 4, !tbaa !215
  1634.   %884 = fmul float %t327.us.us.2.prol, %883
  1635.   %885 = fmul float %884, 2.000000e+00
  1636.   %886 = fadd float %885, %c_imag
  1637.   %887 = getelementptr inbounds float, float* %f0.1, i64 %881
  1638.   store float %886, float* %887, align 4, !tbaa !217
  1639.   br label %"for f0.s1.r4$x.us.us.2.prol.loopexit"
  1640.  
  1641. "for f0.s1.r4$x.us.us.2.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.2.prol", %"end for f0.s1.r4$x.loopexit.us.us.1"
  1642.   %indvars.iv207.2.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.2.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us.1" ]
  1643.   br i1 %126, label %"end for f0.s1.r4$x.loopexit.us.us.2", label %"for f0.s1.r4$x.us.us.2"
  1644.  
  1645. "for f0.s1.r4$x.us.us.2":                         ; preds = %"for f0.s1.r4$x.us.us.2.prol.loopexit", %"for f0.s1.r4$x.us.us.2"
  1646.   %indvars.iv207.2 = phi i64 [ %indvars.iv.next208.2.1, %"for f0.s1.r4$x.us.us.2" ], [ %indvars.iv207.2.unr.ph, %"for f0.s1.r4$x.us.us.2.prol.loopexit" ]
  1647.   %888 = trunc i64 %indvars.iv207.2 to i32
  1648.   %889 = shl i32 %888, 6
  1649.   %t325.us.us.2 = add i32 %871, %889
  1650.   %890 = sext i32 %t325.us.us.2 to i64
  1651.   %891 = add nsw i64 %890, -64
  1652.   %892 = getelementptr inbounds float, float* %f0.0, i64 %891
  1653.   %t326.us.us.2 = load float, float* %892, align 4, !tbaa !215
  1654.   %893 = getelementptr inbounds float, float* %f0.1, i64 %891
  1655.   %t327.us.us.2 = load float, float* %893, align 4, !tbaa !217
  1656.   %894 = fmul float %t327.us.us.2, %t327.us.us.2
  1657.   %895 = fmul float %t326.us.us.2, %t326.us.us.2
  1658.   %896 = fsub float %895, %894
  1659.   %897 = fadd float %896, %c_real
  1660.   %898 = shl nsw i64 %indvars.iv207.2, 6
  1661.   %899 = add nuw nsw i64 %872, %898
  1662.   %900 = getelementptr inbounds float, float* %f0.0, i64 %899
  1663.   store float %897, float* %900, align 4, !tbaa !215
  1664.   %901 = load float, float* %892, align 4, !tbaa !215
  1665.   %902 = fmul float %t327.us.us.2, %901
  1666.   %903 = fmul float %902, 2.000000e+00
  1667.   %904 = fadd float %903, %c_imag
  1668.   %905 = getelementptr inbounds float, float* %f0.1, i64 %899
  1669.   store float %904, float* %905, align 4, !tbaa !217
  1670.   %indvars.iv.next208.2 = add nuw nsw i64 %indvars.iv207.2, 1
  1671.   %906 = trunc i64 %indvars.iv.next208.2 to i32
  1672.   %907 = shl i32 %906, 6
  1673.   %t325.us.us.2.1 = add i32 %871, %907
  1674.   %908 = sext i32 %t325.us.us.2.1 to i64
  1675.   %909 = add nsw i64 %908, -64
  1676.   %910 = getelementptr inbounds float, float* %f0.0, i64 %909
  1677.   %t326.us.us.2.1 = load float, float* %910, align 4, !tbaa !215
  1678.   %911 = getelementptr inbounds float, float* %f0.1, i64 %909
  1679.   %t327.us.us.2.1 = load float, float* %911, align 4, !tbaa !217
  1680.   %912 = fmul float %t327.us.us.2.1, %t327.us.us.2.1
  1681.   %913 = fmul float %t326.us.us.2.1, %t326.us.us.2.1
  1682.   %914 = fsub float %913, %912
  1683.   %915 = fadd float %914, %c_real
  1684.   %916 = shl nsw i64 %indvars.iv.next208.2, 6
  1685.   %917 = add nuw nsw i64 %872, %916
  1686.   %918 = getelementptr inbounds float, float* %f0.0, i64 %917
  1687.   store float %915, float* %918, align 4, !tbaa !215
  1688.   %919 = load float, float* %910, align 4, !tbaa !215
  1689.   %920 = fmul float %t327.us.us.2.1, %919
  1690.   %921 = fmul float %920, 2.000000e+00
  1691.   %922 = fadd float %921, %c_imag
  1692.   %923 = getelementptr inbounds float, float* %f0.1, i64 %917
  1693.   store float %922, float* %923, align 4, !tbaa !217
  1694.   %indvars.iv.next208.2.1 = add nsw i64 %indvars.iv207.2, 2
  1695.   %924 = icmp eq i64 %indvars.iv.next208.2.1, %101
  1696.   br i1 %924, label %"end for f0.s1.r4$x.loopexit.us.us.2", label %"for f0.s1.r4$x.us.us.2"
  1697.  
  1698. "end for f0.s1.r4$x.loopexit.us.us.2":            ; preds = %"for f0.s1.r4$x.us.us.2", %"for f0.s1.r4$x.us.us.2.prol.loopexit"
  1699.   %925 = or i32 %298, 3
  1700.   %926 = add nsw i64 %299, %indvars.iv.next213.2
  1701.   br i1 %lcmp.mod304, label %"for f0.s1.r4$x.us.us.3.prol", label %"for f0.s1.r4$x.us.us.3.prol.loopexit"
  1702.  
  1703. "for f0.s1.r4$x.us.us.3.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us.2"
  1704.   %t325.us.us.3.prol = add i32 %925, 64
  1705.   %927 = sext i32 %t325.us.us.3.prol to i64
  1706.   %928 = add nsw i64 %927, -64
  1707.   %929 = getelementptr inbounds float, float* %f0.0, i64 %928
  1708.   %t326.us.us.3.prol = load float, float* %929, align 4, !tbaa !215
  1709.   %930 = getelementptr inbounds float, float* %f0.1, i64 %928
  1710.   %t327.us.us.3.prol = load float, float* %930, align 4, !tbaa !217
  1711.   %931 = fmul float %t327.us.us.3.prol, %t327.us.us.3.prol
  1712.   %932 = fmul float %t326.us.us.3.prol, %t326.us.us.3.prol
  1713.   %933 = fsub float %932, %931
  1714.   %934 = fadd float %933, %c_real
  1715.   %935 = add nuw nsw i64 %926, 64
  1716.   %936 = getelementptr inbounds float, float* %f0.0, i64 %935
  1717.   store float %934, float* %936, align 4, !tbaa !215
  1718.   %937 = load float, float* %929, align 4, !tbaa !215
  1719.   %938 = fmul float %t327.us.us.3.prol, %937
  1720.   %939 = fmul float %938, 2.000000e+00
  1721.   %940 = fadd float %939, %c_imag
  1722.   %941 = getelementptr inbounds float, float* %f0.1, i64 %935
  1723.   store float %940, float* %941, align 4, !tbaa !217
  1724.   br label %"for f0.s1.r4$x.us.us.3.prol.loopexit"
  1725.  
  1726. "for f0.s1.r4$x.us.us.3.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.3.prol", %"end for f0.s1.r4$x.loopexit.us.us.2"
  1727.   %indvars.iv207.3.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.3.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us.2" ]
  1728.   br i1 %128, label %"end for f0.s1.r4$x.loopexit.us.us.3", label %"for f0.s1.r4$x.us.us.3"
  1729.  
  1730. "for f0.s1.r4$x.us.us.3":                         ; preds = %"for f0.s1.r4$x.us.us.3.prol.loopexit", %"for f0.s1.r4$x.us.us.3"
  1731.   %indvars.iv207.3 = phi i64 [ %indvars.iv.next208.3.1, %"for f0.s1.r4$x.us.us.3" ], [ %indvars.iv207.3.unr.ph, %"for f0.s1.r4$x.us.us.3.prol.loopexit" ]
  1732.   %942 = trunc i64 %indvars.iv207.3 to i32
  1733.   %943 = shl i32 %942, 6
  1734.   %t325.us.us.3 = add i32 %925, %943
  1735.   %944 = sext i32 %t325.us.us.3 to i64
  1736.   %945 = add nsw i64 %944, -64
  1737.   %946 = getelementptr inbounds float, float* %f0.0, i64 %945
  1738.   %t326.us.us.3 = load float, float* %946, align 4, !tbaa !215
  1739.   %947 = getelementptr inbounds float, float* %f0.1, i64 %945
  1740.   %t327.us.us.3 = load float, float* %947, align 4, !tbaa !217
  1741.   %948 = fmul float %t327.us.us.3, %t327.us.us.3
  1742.   %949 = fmul float %t326.us.us.3, %t326.us.us.3
  1743.   %950 = fsub float %949, %948
  1744.   %951 = fadd float %950, %c_real
  1745.   %952 = shl nsw i64 %indvars.iv207.3, 6
  1746.   %953 = add nuw nsw i64 %926, %952
  1747.   %954 = getelementptr inbounds float, float* %f0.0, i64 %953
  1748.   store float %951, float* %954, align 4, !tbaa !215
  1749.   %955 = load float, float* %946, align 4, !tbaa !215
  1750.   %956 = fmul float %t327.us.us.3, %955
  1751.   %957 = fmul float %956, 2.000000e+00
  1752.   %958 = fadd float %957, %c_imag
  1753.   %959 = getelementptr inbounds float, float* %f0.1, i64 %953
  1754.   store float %958, float* %959, align 4, !tbaa !217
  1755.   %indvars.iv.next208.3 = add nuw nsw i64 %indvars.iv207.3, 1
  1756.   %960 = trunc i64 %indvars.iv.next208.3 to i32
  1757.   %961 = shl i32 %960, 6
  1758.   %t325.us.us.3.1 = add i32 %925, %961
  1759.   %962 = sext i32 %t325.us.us.3.1 to i64
  1760.   %963 = add nsw i64 %962, -64
  1761.   %964 = getelementptr inbounds float, float* %f0.0, i64 %963
  1762.   %t326.us.us.3.1 = load float, float* %964, align 4, !tbaa !215
  1763.   %965 = getelementptr inbounds float, float* %f0.1, i64 %963
  1764.   %t327.us.us.3.1 = load float, float* %965, align 4, !tbaa !217
  1765.   %966 = fmul float %t327.us.us.3.1, %t327.us.us.3.1
  1766.   %967 = fmul float %t326.us.us.3.1, %t326.us.us.3.1
  1767.   %968 = fsub float %967, %966
  1768.   %969 = fadd float %968, %c_real
  1769.   %970 = shl nsw i64 %indvars.iv.next208.3, 6
  1770.   %971 = add nuw nsw i64 %926, %970
  1771.   %972 = getelementptr inbounds float, float* %f0.0, i64 %971
  1772.   store float %969, float* %972, align 4, !tbaa !215
  1773.   %973 = load float, float* %964, align 4, !tbaa !215
  1774.   %974 = fmul float %t327.us.us.3.1, %973
  1775.   %975 = fmul float %974, 2.000000e+00
  1776.   %976 = fadd float %975, %c_imag
  1777.   %977 = getelementptr inbounds float, float* %f0.1, i64 %971
  1778.   store float %976, float* %977, align 4, !tbaa !217
  1779.   %indvars.iv.next208.3.1 = add nsw i64 %indvars.iv207.3, 2
  1780.   %978 = icmp eq i64 %indvars.iv.next208.3.1, %101
  1781.   br i1 %978, label %"end for f0.s1.r4$x.loopexit.us.us.3", label %"for f0.s1.r4$x.us.us.3"
  1782.  
  1783. "end for f0.s1.r4$x.loopexit.us.us.3":            ; preds = %"for f0.s1.r4$x.us.us.3", %"for f0.s1.r4$x.us.us.3.prol.loopexit"
  1784.   %979 = or i32 %298, 4
  1785.   %980 = add nsw i64 %299, %indvars.iv.next213.3
  1786.   br i1 %lcmp.mod306, label %"for f0.s1.r4$x.us.us.4.prol", label %"for f0.s1.r4$x.us.us.4.prol.loopexit"
  1787.  
  1788. "for f0.s1.r4$x.us.us.4.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us.3"
  1789.   %t325.us.us.4.prol = add i32 %979, 64
  1790.   %981 = sext i32 %t325.us.us.4.prol to i64
  1791.   %982 = add nsw i64 %981, -64
  1792.   %983 = getelementptr inbounds float, float* %f0.0, i64 %982
  1793.   %t326.us.us.4.prol = load float, float* %983, align 4, !tbaa !215
  1794.   %984 = getelementptr inbounds float, float* %f0.1, i64 %982
  1795.   %t327.us.us.4.prol = load float, float* %984, align 4, !tbaa !217
  1796.   %985 = fmul float %t327.us.us.4.prol, %t327.us.us.4.prol
  1797.   %986 = fmul float %t326.us.us.4.prol, %t326.us.us.4.prol
  1798.   %987 = fsub float %986, %985
  1799.   %988 = fadd float %987, %c_real
  1800.   %989 = add nuw nsw i64 %980, 64
  1801.   %990 = getelementptr inbounds float, float* %f0.0, i64 %989
  1802.   store float %988, float* %990, align 4, !tbaa !215
  1803.   %991 = load float, float* %983, align 4, !tbaa !215
  1804.   %992 = fmul float %t327.us.us.4.prol, %991
  1805.   %993 = fmul float %992, 2.000000e+00
  1806.   %994 = fadd float %993, %c_imag
  1807.   %995 = getelementptr inbounds float, float* %f0.1, i64 %989
  1808.   store float %994, float* %995, align 4, !tbaa !217
  1809.   br label %"for f0.s1.r4$x.us.us.4.prol.loopexit"
  1810.  
  1811. "for f0.s1.r4$x.us.us.4.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.4.prol", %"end for f0.s1.r4$x.loopexit.us.us.3"
  1812.   %indvars.iv207.4.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.4.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us.3" ]
  1813.   br i1 %130, label %"end for f0.s1.r4$x.loopexit.us.us.4", label %"for f0.s1.r4$x.us.us.4"
  1814.  
  1815. "for f0.s1.r4$x.us.us.4":                         ; preds = %"for f0.s1.r4$x.us.us.4.prol.loopexit", %"for f0.s1.r4$x.us.us.4"
  1816.   %indvars.iv207.4 = phi i64 [ %indvars.iv.next208.4.1, %"for f0.s1.r4$x.us.us.4" ], [ %indvars.iv207.4.unr.ph, %"for f0.s1.r4$x.us.us.4.prol.loopexit" ]
  1817.   %996 = trunc i64 %indvars.iv207.4 to i32
  1818.   %997 = shl i32 %996, 6
  1819.   %t325.us.us.4 = add i32 %979, %997
  1820.   %998 = sext i32 %t325.us.us.4 to i64
  1821.   %999 = add nsw i64 %998, -64
  1822.   %1000 = getelementptr inbounds float, float* %f0.0, i64 %999
  1823.   %t326.us.us.4 = load float, float* %1000, align 4, !tbaa !215
  1824.   %1001 = getelementptr inbounds float, float* %f0.1, i64 %999
  1825.   %t327.us.us.4 = load float, float* %1001, align 4, !tbaa !217
  1826.   %1002 = fmul float %t327.us.us.4, %t327.us.us.4
  1827.   %1003 = fmul float %t326.us.us.4, %t326.us.us.4
  1828.   %1004 = fsub float %1003, %1002
  1829.   %1005 = fadd float %1004, %c_real
  1830.   %1006 = shl nsw i64 %indvars.iv207.4, 6
  1831.   %1007 = add nuw nsw i64 %980, %1006
  1832.   %1008 = getelementptr inbounds float, float* %f0.0, i64 %1007
  1833.   store float %1005, float* %1008, align 4, !tbaa !215
  1834.   %1009 = load float, float* %1000, align 4, !tbaa !215
  1835.   %1010 = fmul float %t327.us.us.4, %1009
  1836.   %1011 = fmul float %1010, 2.000000e+00
  1837.   %1012 = fadd float %1011, %c_imag
  1838.   %1013 = getelementptr inbounds float, float* %f0.1, i64 %1007
  1839.   store float %1012, float* %1013, align 4, !tbaa !217
  1840.   %indvars.iv.next208.4 = add nuw nsw i64 %indvars.iv207.4, 1
  1841.   %1014 = trunc i64 %indvars.iv.next208.4 to i32
  1842.   %1015 = shl i32 %1014, 6
  1843.   %t325.us.us.4.1 = add i32 %979, %1015
  1844.   %1016 = sext i32 %t325.us.us.4.1 to i64
  1845.   %1017 = add nsw i64 %1016, -64
  1846.   %1018 = getelementptr inbounds float, float* %f0.0, i64 %1017
  1847.   %t326.us.us.4.1 = load float, float* %1018, align 4, !tbaa !215
  1848.   %1019 = getelementptr inbounds float, float* %f0.1, i64 %1017
  1849.   %t327.us.us.4.1 = load float, float* %1019, align 4, !tbaa !217
  1850.   %1020 = fmul float %t327.us.us.4.1, %t327.us.us.4.1
  1851.   %1021 = fmul float %t326.us.us.4.1, %t326.us.us.4.1
  1852.   %1022 = fsub float %1021, %1020
  1853.   %1023 = fadd float %1022, %c_real
  1854.   %1024 = shl nsw i64 %indvars.iv.next208.4, 6
  1855.   %1025 = add nuw nsw i64 %980, %1024
  1856.   %1026 = getelementptr inbounds float, float* %f0.0, i64 %1025
  1857.   store float %1023, float* %1026, align 4, !tbaa !215
  1858.   %1027 = load float, float* %1018, align 4, !tbaa !215
  1859.   %1028 = fmul float %t327.us.us.4.1, %1027
  1860.   %1029 = fmul float %1028, 2.000000e+00
  1861.   %1030 = fadd float %1029, %c_imag
  1862.   %1031 = getelementptr inbounds float, float* %f0.1, i64 %1025
  1863.   store float %1030, float* %1031, align 4, !tbaa !217
  1864.   %indvars.iv.next208.4.1 = add nsw i64 %indvars.iv207.4, 2
  1865.   %1032 = icmp eq i64 %indvars.iv.next208.4.1, %101
  1866.   br i1 %1032, label %"end for f0.s1.r4$x.loopexit.us.us.4", label %"for f0.s1.r4$x.us.us.4"
  1867.  
  1868. "end for f0.s1.r4$x.loopexit.us.us.4":            ; preds = %"for f0.s1.r4$x.us.us.4", %"for f0.s1.r4$x.us.us.4.prol.loopexit"
  1869.   %1033 = or i32 %298, 5
  1870.   %1034 = add nsw i64 %299, %indvars.iv.next213.4
  1871.   br i1 %lcmp.mod308, label %"for f0.s1.r4$x.us.us.5.prol", label %"for f0.s1.r4$x.us.us.5.prol.loopexit"
  1872.  
  1873. "for f0.s1.r4$x.us.us.5.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us.4"
  1874.   %t325.us.us.5.prol = add i32 %1033, 64
  1875.   %1035 = sext i32 %t325.us.us.5.prol to i64
  1876.   %1036 = add nsw i64 %1035, -64
  1877.   %1037 = getelementptr inbounds float, float* %f0.0, i64 %1036
  1878.   %t326.us.us.5.prol = load float, float* %1037, align 4, !tbaa !215
  1879.   %1038 = getelementptr inbounds float, float* %f0.1, i64 %1036
  1880.   %t327.us.us.5.prol = load float, float* %1038, align 4, !tbaa !217
  1881.   %1039 = fmul float %t327.us.us.5.prol, %t327.us.us.5.prol
  1882.   %1040 = fmul float %t326.us.us.5.prol, %t326.us.us.5.prol
  1883.   %1041 = fsub float %1040, %1039
  1884.   %1042 = fadd float %1041, %c_real
  1885.   %1043 = add nuw nsw i64 %1034, 64
  1886.   %1044 = getelementptr inbounds float, float* %f0.0, i64 %1043
  1887.   store float %1042, float* %1044, align 4, !tbaa !215
  1888.   %1045 = load float, float* %1037, align 4, !tbaa !215
  1889.   %1046 = fmul float %t327.us.us.5.prol, %1045
  1890.   %1047 = fmul float %1046, 2.000000e+00
  1891.   %1048 = fadd float %1047, %c_imag
  1892.   %1049 = getelementptr inbounds float, float* %f0.1, i64 %1043
  1893.   store float %1048, float* %1049, align 4, !tbaa !217
  1894.   br label %"for f0.s1.r4$x.us.us.5.prol.loopexit"
  1895.  
  1896. "for f0.s1.r4$x.us.us.5.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.5.prol", %"end for f0.s1.r4$x.loopexit.us.us.4"
  1897.   %indvars.iv207.5.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.5.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us.4" ]
  1898.   br i1 %132, label %"end for f0.s1.r4$x.loopexit.us.us.5", label %"for f0.s1.r4$x.us.us.5"
  1899.  
  1900. "for f0.s1.r4$x.us.us.5":                         ; preds = %"for f0.s1.r4$x.us.us.5.prol.loopexit", %"for f0.s1.r4$x.us.us.5"
  1901.   %indvars.iv207.5 = phi i64 [ %indvars.iv.next208.5.1, %"for f0.s1.r4$x.us.us.5" ], [ %indvars.iv207.5.unr.ph, %"for f0.s1.r4$x.us.us.5.prol.loopexit" ]
  1902.   %1050 = trunc i64 %indvars.iv207.5 to i32
  1903.   %1051 = shl i32 %1050, 6
  1904.   %t325.us.us.5 = add i32 %1033, %1051
  1905.   %1052 = sext i32 %t325.us.us.5 to i64
  1906.   %1053 = add nsw i64 %1052, -64
  1907.   %1054 = getelementptr inbounds float, float* %f0.0, i64 %1053
  1908.   %t326.us.us.5 = load float, float* %1054, align 4, !tbaa !215
  1909.   %1055 = getelementptr inbounds float, float* %f0.1, i64 %1053
  1910.   %t327.us.us.5 = load float, float* %1055, align 4, !tbaa !217
  1911.   %1056 = fmul float %t327.us.us.5, %t327.us.us.5
  1912.   %1057 = fmul float %t326.us.us.5, %t326.us.us.5
  1913.   %1058 = fsub float %1057, %1056
  1914.   %1059 = fadd float %1058, %c_real
  1915.   %1060 = shl nsw i64 %indvars.iv207.5, 6
  1916.   %1061 = add nuw nsw i64 %1034, %1060
  1917.   %1062 = getelementptr inbounds float, float* %f0.0, i64 %1061
  1918.   store float %1059, float* %1062, align 4, !tbaa !215
  1919.   %1063 = load float, float* %1054, align 4, !tbaa !215
  1920.   %1064 = fmul float %t327.us.us.5, %1063
  1921.   %1065 = fmul float %1064, 2.000000e+00
  1922.   %1066 = fadd float %1065, %c_imag
  1923.   %1067 = getelementptr inbounds float, float* %f0.1, i64 %1061
  1924.   store float %1066, float* %1067, align 4, !tbaa !217
  1925.   %indvars.iv.next208.5 = add nuw nsw i64 %indvars.iv207.5, 1
  1926.   %1068 = trunc i64 %indvars.iv.next208.5 to i32
  1927.   %1069 = shl i32 %1068, 6
  1928.   %t325.us.us.5.1 = add i32 %1033, %1069
  1929.   %1070 = sext i32 %t325.us.us.5.1 to i64
  1930.   %1071 = add nsw i64 %1070, -64
  1931.   %1072 = getelementptr inbounds float, float* %f0.0, i64 %1071
  1932.   %t326.us.us.5.1 = load float, float* %1072, align 4, !tbaa !215
  1933.   %1073 = getelementptr inbounds float, float* %f0.1, i64 %1071
  1934.   %t327.us.us.5.1 = load float, float* %1073, align 4, !tbaa !217
  1935.   %1074 = fmul float %t327.us.us.5.1, %t327.us.us.5.1
  1936.   %1075 = fmul float %t326.us.us.5.1, %t326.us.us.5.1
  1937.   %1076 = fsub float %1075, %1074
  1938.   %1077 = fadd float %1076, %c_real
  1939.   %1078 = shl nsw i64 %indvars.iv.next208.5, 6
  1940.   %1079 = add nuw nsw i64 %1034, %1078
  1941.   %1080 = getelementptr inbounds float, float* %f0.0, i64 %1079
  1942.   store float %1077, float* %1080, align 4, !tbaa !215
  1943.   %1081 = load float, float* %1072, align 4, !tbaa !215
  1944.   %1082 = fmul float %t327.us.us.5.1, %1081
  1945.   %1083 = fmul float %1082, 2.000000e+00
  1946.   %1084 = fadd float %1083, %c_imag
  1947.   %1085 = getelementptr inbounds float, float* %f0.1, i64 %1079
  1948.   store float %1084, float* %1085, align 4, !tbaa !217
  1949.   %indvars.iv.next208.5.1 = add nsw i64 %indvars.iv207.5, 2
  1950.   %1086 = icmp eq i64 %indvars.iv.next208.5.1, %101
  1951.   br i1 %1086, label %"end for f0.s1.r4$x.loopexit.us.us.5", label %"for f0.s1.r4$x.us.us.5"
  1952.  
  1953. "end for f0.s1.r4$x.loopexit.us.us.5":            ; preds = %"for f0.s1.r4$x.us.us.5", %"for f0.s1.r4$x.us.us.5.prol.loopexit"
  1954.   %1087 = or i32 %298, 6
  1955.   %1088 = add nsw i64 %299, %indvars.iv.next213.5
  1956.   br i1 %lcmp.mod310, label %"for f0.s1.r4$x.us.us.6.prol", label %"for f0.s1.r4$x.us.us.6.prol.loopexit"
  1957.  
  1958. "for f0.s1.r4$x.us.us.6.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us.5"
  1959.   %t325.us.us.6.prol = add i32 %1087, 64
  1960.   %1089 = sext i32 %t325.us.us.6.prol to i64
  1961.   %1090 = add nsw i64 %1089, -64
  1962.   %1091 = getelementptr inbounds float, float* %f0.0, i64 %1090
  1963.   %t326.us.us.6.prol = load float, float* %1091, align 4, !tbaa !215
  1964.   %1092 = getelementptr inbounds float, float* %f0.1, i64 %1090
  1965.   %t327.us.us.6.prol = load float, float* %1092, align 4, !tbaa !217
  1966.   %1093 = fmul float %t327.us.us.6.prol, %t327.us.us.6.prol
  1967.   %1094 = fmul float %t326.us.us.6.prol, %t326.us.us.6.prol
  1968.   %1095 = fsub float %1094, %1093
  1969.   %1096 = fadd float %1095, %c_real
  1970.   %1097 = add nuw nsw i64 %1088, 64
  1971.   %1098 = getelementptr inbounds float, float* %f0.0, i64 %1097
  1972.   store float %1096, float* %1098, align 4, !tbaa !215
  1973.   %1099 = load float, float* %1091, align 4, !tbaa !215
  1974.   %1100 = fmul float %t327.us.us.6.prol, %1099
  1975.   %1101 = fmul float %1100, 2.000000e+00
  1976.   %1102 = fadd float %1101, %c_imag
  1977.   %1103 = getelementptr inbounds float, float* %f0.1, i64 %1097
  1978.   store float %1102, float* %1103, align 4, !tbaa !217
  1979.   br label %"for f0.s1.r4$x.us.us.6.prol.loopexit"
  1980.  
  1981. "for f0.s1.r4$x.us.us.6.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.6.prol", %"end for f0.s1.r4$x.loopexit.us.us.5"
  1982.   %indvars.iv207.6.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.6.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us.5" ]
  1983.   br i1 %134, label %"end for f0.s1.r4$x.loopexit.us.us.6", label %"for f0.s1.r4$x.us.us.6"
  1984.  
  1985. "for f0.s1.r4$x.us.us.6":                         ; preds = %"for f0.s1.r4$x.us.us.6.prol.loopexit", %"for f0.s1.r4$x.us.us.6"
  1986.   %indvars.iv207.6 = phi i64 [ %indvars.iv.next208.6.1, %"for f0.s1.r4$x.us.us.6" ], [ %indvars.iv207.6.unr.ph, %"for f0.s1.r4$x.us.us.6.prol.loopexit" ]
  1987.   %1104 = trunc i64 %indvars.iv207.6 to i32
  1988.   %1105 = shl i32 %1104, 6
  1989.   %t325.us.us.6 = add i32 %1087, %1105
  1990.   %1106 = sext i32 %t325.us.us.6 to i64
  1991.   %1107 = add nsw i64 %1106, -64
  1992.   %1108 = getelementptr inbounds float, float* %f0.0, i64 %1107
  1993.   %t326.us.us.6 = load float, float* %1108, align 4, !tbaa !215
  1994.   %1109 = getelementptr inbounds float, float* %f0.1, i64 %1107
  1995.   %t327.us.us.6 = load float, float* %1109, align 4, !tbaa !217
  1996.   %1110 = fmul float %t327.us.us.6, %t327.us.us.6
  1997.   %1111 = fmul float %t326.us.us.6, %t326.us.us.6
  1998.   %1112 = fsub float %1111, %1110
  1999.   %1113 = fadd float %1112, %c_real
  2000.   %1114 = shl nsw i64 %indvars.iv207.6, 6
  2001.   %1115 = add nuw nsw i64 %1088, %1114
  2002.   %1116 = getelementptr inbounds float, float* %f0.0, i64 %1115
  2003.   store float %1113, float* %1116, align 4, !tbaa !215
  2004.   %1117 = load float, float* %1108, align 4, !tbaa !215
  2005.   %1118 = fmul float %t327.us.us.6, %1117
  2006.   %1119 = fmul float %1118, 2.000000e+00
  2007.   %1120 = fadd float %1119, %c_imag
  2008.   %1121 = getelementptr inbounds float, float* %f0.1, i64 %1115
  2009.   store float %1120, float* %1121, align 4, !tbaa !217
  2010.   %indvars.iv.next208.6 = add nuw nsw i64 %indvars.iv207.6, 1
  2011.   %1122 = trunc i64 %indvars.iv.next208.6 to i32
  2012.   %1123 = shl i32 %1122, 6
  2013.   %t325.us.us.6.1 = add i32 %1087, %1123
  2014.   %1124 = sext i32 %t325.us.us.6.1 to i64
  2015.   %1125 = add nsw i64 %1124, -64
  2016.   %1126 = getelementptr inbounds float, float* %f0.0, i64 %1125
  2017.   %t326.us.us.6.1 = load float, float* %1126, align 4, !tbaa !215
  2018.   %1127 = getelementptr inbounds float, float* %f0.1, i64 %1125
  2019.   %t327.us.us.6.1 = load float, float* %1127, align 4, !tbaa !217
  2020.   %1128 = fmul float %t327.us.us.6.1, %t327.us.us.6.1
  2021.   %1129 = fmul float %t326.us.us.6.1, %t326.us.us.6.1
  2022.   %1130 = fsub float %1129, %1128
  2023.   %1131 = fadd float %1130, %c_real
  2024.   %1132 = shl nsw i64 %indvars.iv.next208.6, 6
  2025.   %1133 = add nuw nsw i64 %1088, %1132
  2026.   %1134 = getelementptr inbounds float, float* %f0.0, i64 %1133
  2027.   store float %1131, float* %1134, align 4, !tbaa !215
  2028.   %1135 = load float, float* %1126, align 4, !tbaa !215
  2029.   %1136 = fmul float %t327.us.us.6.1, %1135
  2030.   %1137 = fmul float %1136, 2.000000e+00
  2031.   %1138 = fadd float %1137, %c_imag
  2032.   %1139 = getelementptr inbounds float, float* %f0.1, i64 %1133
  2033.   store float %1138, float* %1139, align 4, !tbaa !217
  2034.   %indvars.iv.next208.6.1 = add nsw i64 %indvars.iv207.6, 2
  2035.   %1140 = icmp eq i64 %indvars.iv.next208.6.1, %101
  2036.   br i1 %1140, label %"end for f0.s1.r4$x.loopexit.us.us.6", label %"for f0.s1.r4$x.us.us.6"
  2037.  
  2038. "end for f0.s1.r4$x.loopexit.us.us.6":            ; preds = %"for f0.s1.r4$x.us.us.6", %"for f0.s1.r4$x.us.us.6.prol.loopexit"
  2039.   %1141 = or i32 %298, 7
  2040.   %1142 = add nsw i64 %299, %indvars.iv.next213.6
  2041.   br i1 %lcmp.mod312, label %"for f0.s1.r4$x.us.us.7.prol", label %"for f0.s1.r4$x.us.us.7.prol.loopexit"
  2042.  
  2043. "for f0.s1.r4$x.us.us.7.prol":                    ; preds = %"end for f0.s1.r4$x.loopexit.us.us.6"
  2044.   %t325.us.us.7.prol = add i32 %1141, 64
  2045.   %1143 = sext i32 %t325.us.us.7.prol to i64
  2046.   %1144 = add nsw i64 %1143, -64
  2047.   %1145 = getelementptr inbounds float, float* %f0.0, i64 %1144
  2048.   %t326.us.us.7.prol = load float, float* %1145, align 4, !tbaa !215
  2049.   %1146 = getelementptr inbounds float, float* %f0.1, i64 %1144
  2050.   %t327.us.us.7.prol = load float, float* %1146, align 4, !tbaa !217
  2051.   %1147 = fmul float %t327.us.us.7.prol, %t327.us.us.7.prol
  2052.   %1148 = fmul float %t326.us.us.7.prol, %t326.us.us.7.prol
  2053.   %1149 = fsub float %1148, %1147
  2054.   %1150 = fadd float %1149, %c_real
  2055.   %1151 = add nuw nsw i64 %1142, 64
  2056.   %1152 = getelementptr inbounds float, float* %f0.0, i64 %1151
  2057.   store float %1150, float* %1152, align 4, !tbaa !215
  2058.   %1153 = load float, float* %1145, align 4, !tbaa !215
  2059.   %1154 = fmul float %t327.us.us.7.prol, %1153
  2060.   %1155 = fmul float %1154, 2.000000e+00
  2061.   %1156 = fadd float %1155, %c_imag
  2062.   %1157 = getelementptr inbounds float, float* %f0.1, i64 %1151
  2063.   store float %1156, float* %1157, align 4, !tbaa !217
  2064.   br label %"for f0.s1.r4$x.us.us.7.prol.loopexit"
  2065.  
  2066. "for f0.s1.r4$x.us.us.7.prol.loopexit":           ; preds = %"for f0.s1.r4$x.us.us.7.prol", %"end for f0.s1.r4$x.loopexit.us.us.6"
  2067.   %indvars.iv207.7.unr.ph = phi i64 [ 2, %"for f0.s1.r4$x.us.us.7.prol" ], [ 1, %"end for f0.s1.r4$x.loopexit.us.us.6" ]
  2068.   br i1 %136, label %"end for f0.s1.r4$x.loopexit.us.us.7", label %"for f0.s1.r4$x.us.us.7"
  2069.  
  2070. "for f0.s1.r4$x.us.us.7":                         ; preds = %"for f0.s1.r4$x.us.us.7.prol.loopexit", %"for f0.s1.r4$x.us.us.7"
  2071.   %indvars.iv207.7 = phi i64 [ %indvars.iv.next208.7.1, %"for f0.s1.r4$x.us.us.7" ], [ %indvars.iv207.7.unr.ph, %"for f0.s1.r4$x.us.us.7.prol.loopexit" ]
  2072.   %1158 = trunc i64 %indvars.iv207.7 to i32
  2073.   %1159 = shl i32 %1158, 6
  2074.   %t325.us.us.7 = add i32 %1141, %1159
  2075.   %1160 = sext i32 %t325.us.us.7 to i64
  2076.   %1161 = add nsw i64 %1160, -64
  2077.   %1162 = getelementptr inbounds float, float* %f0.0, i64 %1161
  2078.   %t326.us.us.7 = load float, float* %1162, align 4, !tbaa !215
  2079.   %1163 = getelementptr inbounds float, float* %f0.1, i64 %1161
  2080.   %t327.us.us.7 = load float, float* %1163, align 4, !tbaa !217
  2081.   %1164 = fmul float %t327.us.us.7, %t327.us.us.7
  2082.   %1165 = fmul float %t326.us.us.7, %t326.us.us.7
  2083.   %1166 = fsub float %1165, %1164
  2084.   %1167 = fadd float %1166, %c_real
  2085.   %1168 = shl nsw i64 %indvars.iv207.7, 6
  2086.   %1169 = add nuw nsw i64 %1142, %1168
  2087.   %1170 = getelementptr inbounds float, float* %f0.0, i64 %1169
  2088.   store float %1167, float* %1170, align 4, !tbaa !215
  2089.   %1171 = load float, float* %1162, align 4, !tbaa !215
  2090.   %1172 = fmul float %t327.us.us.7, %1171
  2091.   %1173 = fmul float %1172, 2.000000e+00
  2092.   %1174 = fadd float %1173, %c_imag
  2093.   %1175 = getelementptr inbounds float, float* %f0.1, i64 %1169
  2094.   store float %1174, float* %1175, align 4, !tbaa !217
  2095.   %indvars.iv.next208.7 = add nuw nsw i64 %indvars.iv207.7, 1
  2096.   %1176 = trunc i64 %indvars.iv.next208.7 to i32
  2097.   %1177 = shl i32 %1176, 6
  2098.   %t325.us.us.7.1 = add i32 %1141, %1177
  2099.   %1178 = sext i32 %t325.us.us.7.1 to i64
  2100.   %1179 = add nsw i64 %1178, -64
  2101.   %1180 = getelementptr inbounds float, float* %f0.0, i64 %1179
  2102.   %t326.us.us.7.1 = load float, float* %1180, align 4, !tbaa !215
  2103.   %1181 = getelementptr inbounds float, float* %f0.1, i64 %1179
  2104.   %t327.us.us.7.1 = load float, float* %1181, align 4, !tbaa !217
  2105.   %1182 = fmul float %t327.us.us.7.1, %t327.us.us.7.1
  2106.   %1183 = fmul float %t326.us.us.7.1, %t326.us.us.7.1
  2107.   %1184 = fsub float %1183, %1182
  2108.   %1185 = fadd float %1184, %c_real
  2109.   %1186 = shl nsw i64 %indvars.iv.next208.7, 6
  2110.   %1187 = add nuw nsw i64 %1142, %1186
  2111.   %1188 = getelementptr inbounds float, float* %f0.0, i64 %1187
  2112.   store float %1185, float* %1188, align 4, !tbaa !215
  2113.   %1189 = load float, float* %1180, align 4, !tbaa !215
  2114.   %1190 = fmul float %t327.us.us.7.1, %1189
  2115.   %1191 = fmul float %1190, 2.000000e+00
  2116.   %1192 = fadd float %1191, %c_imag
  2117.   %1193 = getelementptr inbounds float, float* %f0.1, i64 %1187
  2118.   store float %1192, float* %1193, align 4, !tbaa !217
  2119.   %indvars.iv.next208.7.1 = add nsw i64 %indvars.iv207.7, 2
  2120.   %1194 = icmp eq i64 %indvars.iv.next208.7.1, %101
  2121.   br i1 %1194, label %"end for f0.s1.r4$x.loopexit.us.us.7", label %"for f0.s1.r4$x.us.us.7"
  2122.  
  2123. "end for f0.s1.r4$x.loopexit.us.us.7":            ; preds = %"for f0.s1.r4$x.us.us.7", %"for f0.s1.r4$x.us.us.7.prol.loopexit"
  2124.   %indvars.iv.next218 = add nsw i64 %indvars.iv217, 1
  2125.   %1195 = trunc i64 %indvars.iv217 to i32
  2126.   %1196 = icmp eq i32 %152, %1195
  2127.   br i1 %1196, label %"consume f0", label %"for f0.s1.v1.us"
  2128. }
  2129.  
  2130. memory_profiler_mandelbrot.generator: /home/ubuntu/Parallel-IR/lib/Transforms/Tapir/CilkABI.cpp:1056: bool llvm::cilk::populateDetachedCFG(const llvm::DetachInst&, llvm::DominatorTree&, llvm::SmallPtrSetImpl<llvm::BasicBlock*>&, llvm::SmallVectorImpl<llvm::BasicBlock*>&, llvm::SmallPtrSetImpl<llvm::BasicBlock*>&, bool, bool): Assertion `!isa<ReturnInst>(BB->getTerminator()) && "EH block terminated by return."' failed.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement