Single-Dimension Software Pipelining for Multi-Dimensional Loops Single-Dimension Software Pipelining for Multi-Dimensional Loops