digraph D {
  graph [ranksep="1" splines=line ordering="in"];
  node [shape=box];
  edge [arrowhead=none];

  subgraph cluster_W {
    addr [shape=none]

    temp
    const
    float
  }

  subgraph cluster_Z {
    {rank=same
    src [shape=none]
    src0 [label="src0"]
    src1 [label="src1"]
    src2 [label="src2"]
    srcp
    }

  }

  subgraph cluster_R {

    {rank=same
    opcode [shape=none];
    a [label = "a"];
    b [label = "b"];
    c [label = "c"];
    }
  }

  temp:s -> src0:n
  temp:s -> src1:n
  temp:s -> src2:n

  const:s -> src0:n
  const:s -> src1:n
  const:s -> src2:n

  float:s -> src0:n
  float:s -> src1:n
  float:s -> src2:n

  src0:s -> a:n
  src1:s -> a:n
  src2:s -> a:n
  srcp:s -> a:n

  src0:s -> b:n
  src1:s -> b:n
  src2:s -> b:n
  srcp:s -> b:n

  src0:s -> c:n
  src1:s -> c:n
  src2:s -> c:n
  srcp:s -> c:n
}
