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

	Node0x17d21a0 [shape=record,label="{entry:\l  call void @init_array()\l  br label %for.cond\l}"];
	Node0x17d21a0 -> Node0x17d2020;
	Node0x17d2020 [shape=record,label="{for.cond:                                         \l  %indvar3 = phi i64 [ %indvar.next4, %for.inc28 ], [ 0, %entry ]\l  %exitcond6 = icmp ne i64 %indvar3, 1536\l  br i1 %exitcond6, label %for.body, label %for.end30\l}"];
	Node0x17d2020 -> Node0x17d3950;
	Node0x17d2020 -> Node0x17da500;
	Node0x17d3950 [shape=record,label="{for.body:                                         \l  br label %for.cond1\l}"];
	Node0x17d3950 -> Node0x17da760;
	Node0x17da760 [shape=record,label="{for.cond1:                                        \l  %indvar1 = phi i64 [ %indvar.next2, %for.inc25 ], [ 0, %for.body ]\l  %arrayidx5 = getelementptr [1536 x [1536 x float]]* @C, i64 0, i64 %indvar3, i64 %indvar1\l  %exitcond5 = icmp ne i64 %indvar1, 1536\l  br i1 %exitcond5, label %for.body3, label %for.end27\l}"];
	Node0x17da760 -> Node0x17db1e0;
	Node0x17da760 -> Node0x17db250;
	Node0x17db1e0 [shape=record,label="{for.body3:                                        \l  store float 0.000000e+00, float* %arrayidx5, align 4\l  br label %for.cond6\l}"];
	Node0x17db1e0 -> Node0x17da740;
	Node0x17da740 [shape=record,label="{for.cond6:                                        \l  %indvar = phi i64 [ %indvar.next, %for.inc ], [ 0, %for.body3 ]\l  %arrayidx16 = getelementptr [1536 x [1536 x float]]* @A, i64 0, i64 %indvar3, i64 %indvar\l  %arrayidx20 = getelementptr [1536 x [1536 x float]]* @B, i64 0, i64 %indvar, i64 %indvar1\l  %exitcond = icmp ne i64 %indvar, 1536\l  br i1 %exitcond, label %for.body8, label %for.end\l}"];
	Node0x17da740 -> Node0x17da5a0;
	Node0x17da740 -> Node0x17da800;
	Node0x17da5a0 [shape=record,label="{for.body8:                                        \l  %0 = load float* %arrayidx5, align 4\l  %1 = load float* %arrayidx16, align 4\l  %2 = load float* %arrayidx20, align 4\l  %mul = fmul float %1, %2\l  %add = fadd float %0, %mul\l  store float %add, float* %arrayidx5, align 4\l  br label %for.inc\l}"];
	Node0x17da5a0 -> Node0x17da5c0;
	Node0x17da5c0 [shape=record,label="{for.inc:                                          \l  %indvar.next = add i64 %indvar, 1\l  br label %for.cond6\l}"];
	Node0x17da5c0 -> Node0x17da740[constraint=false];
	Node0x17da800 [shape=record,label="{for.end:                                          \l  br label %for.inc25\l}"];
	Node0x17da800 -> Node0x17dae20;
	Node0x17dae20 [shape=record,label="{for.inc25:                                        \l  %indvar.next2 = add i64 %indvar1, 1\l  br label %for.cond1\l}"];
	Node0x17dae20 -> Node0x17da760[constraint=false];
	Node0x17db250 [shape=record,label="{for.end27:                                        \l  br label %for.inc28\l}"];
	Node0x17db250 -> Node0x17dae80;
	Node0x17dae80 [shape=record,label="{for.inc28:                                        \l  %indvar.next4 = add i64 %indvar3, 1\l  br label %for.cond\l}"];
	Node0x17dae80 -> Node0x17d2020[constraint=false];
	Node0x17da500 [shape=record,label="{for.end30:                                        \l  ret i32 0\l}"];
	colorscheme = "paired12"
        subgraph cluster_0x17d3f30 {
          label = "";
          style = solid;
          color = 1
          subgraph cluster_0x17d38d0 {
            label = "";
            style = filled;
            color = 3            subgraph cluster_0x17d3850 {
              label = "";
              style = solid;
              color = 5
              subgraph cluster_0x17d37d0 {
                label = "";
                style = solid;
                color = 7
                Node0x17da740;
                Node0x17da5a0;
                Node0x17da5c0;
              }
              Node0x17da760;
              Node0x17db1e0;
              Node0x17da800;
              Node0x17dae20;
            }
            Node0x17d2020;
            Node0x17d3950;
            Node0x17db250;
            Node0x17dae80;
          }
          Node0x17d21a0;
          Node0x17da500;
        }
}
