digraph "Scop Graph for 'print_array' function" {
	label="Scop Graph for 'print_array' function";

	Node0x7fffc6c42bf0 [shape=record,label="{entry:\l  br label %entry.split\l}"];
	Node0x7fffc6c42bf0 -> Node0x7fffc6c42f10;
	Node0x7fffc6c42f10 [shape=record,label="{entry.split:                                      \l  br label %for.cond1.preheader\l}"];
	Node0x7fffc6c42f10 -> Node0x7fffc6c4abb0;
	Node0x7fffc6c4abb0 [shape=record,label="{for.cond1.preheader:                              \l  %indvars.iv6 = phi i64 [ 0, %entry.split ], [ %indvars.iv.next7, %for.end ]\l  %0 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8\l  br label %for.body3\l}"];
	Node0x7fffc6c4abb0 -> Node0x7fffc6c4ac10;
	Node0x7fffc6c4ac10 [shape=record,label="{for.body3:                                        \l  %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next,\l... %for.inc ]\l  %1 = phi %struct._IO_FILE* [ %0, %for.cond1.preheader ], [ %5, %for.inc ]\l  %arrayidx5 = getelementptr inbounds [1536 x [1536 x float]], [1536 x [1536 x\l... float]]* @C, i64 0, i64 %indvars.iv6, i64 %indvars.iv\l  %2 = load float, float* %arrayidx5, align 4\l  %conv = fpext float %2 to double\l  %call = tail call i32 (%struct._IO_FILE*, i8*, ...)\l... @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x\l... i8]* @.str, i64 0, i64 0), double %conv) #2\l  %3 = trunc i64 %indvars.iv to i32\l  %rem = urem i32 %3, 80\l  %cmp6 = icmp eq i32 %rem, 79\l  br i1 %cmp6, label %if.then, label %for.inc\l}"];
	Node0x7fffc6c4ac10 -> Node0x7fffc6c4af80;
	Node0x7fffc6c4ac10 -> Node0x7fffc6c4afe0;
	Node0x7fffc6c4af80 [shape=record,label="{if.then:                                          \l  %4 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8\l  %fputc3 = tail call i32 @fputc(i32 10, %struct._IO_FILE* %4)\l  br label %for.inc\l}"];
	Node0x7fffc6c4af80 -> Node0x7fffc6c4afe0;
	Node0x7fffc6c4afe0 [shape=record,label="{for.inc:                                          \l  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1\l  %5 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8\l  %exitcond = icmp ne i64 %indvars.iv.next, 1536\l  br i1 %exitcond, label %for.body3, label %for.end\l}"];
	Node0x7fffc6c4afe0 -> Node0x7fffc6c4ac10[constraint=false];
	Node0x7fffc6c4afe0 -> Node0x7fffc6c4b3b0;
	Node0x7fffc6c4b3b0 [shape=record,label="{for.end:                                          \l  %.lcssa = phi %struct._IO_FILE* [ %5, %for.inc ]\l  %fputc = tail call i32 @fputc(i32 10, %struct._IO_FILE* %.lcssa)\l  %indvars.iv.next7 = add nuw nsw i64 %indvars.iv6, 1\l  %exitcond8 = icmp ne i64 %indvars.iv.next7, 1536\l  br i1 %exitcond8, label %for.cond1.preheader, label %for.end12\l}"];
	Node0x7fffc6c4b3b0 -> Node0x7fffc6c4abb0[constraint=false];
	Node0x7fffc6c4b3b0 -> Node0x7fffc6c4b580;
	Node0x7fffc6c4b580 [shape=record,label="{for.end12:                                        \l  ret void\l}"];
	colorscheme = "paired12"
        subgraph cluster_0x7fffc6c32540 {
          label = "";
          style = solid;
          color = 1
          subgraph cluster_0x7fffc6c32dc0 {
            label = "Call instruction:   %call = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), double %conv) #2";
            style = solid;
            color = 6
            subgraph cluster_0x7fffc6c32690 {
              label = "Call instruction:   %call = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), double %conv) #2";
              style = solid;
              color = 5
              subgraph cluster_0x7fffc6c32f30 {
                label = "Region can not profitably be optimized!";
                style = solid;
                color = 7
                Node0x7fffc6c4ac10;
                Node0x7fffc6c4af80;
              }
              Node0x7fffc6c4afe0;
            }
            Node0x7fffc6c4abb0;
            Node0x7fffc6c4b3b0;
          }
          Node0x7fffc6c42bf0;
          Node0x7fffc6c42f10;
          Node0x7fffc6c4b580;
        }
}
