Semantics for compiling data parallelism by