A stencil processor comprising: a two-dimensional shift-register array; and a two-dimensional array of execution lanes coupled to the two-dimensional shift-register array to simultaneously process multiple overlapping stencils of image data; wherein the two-dimensional shift-register array has multiple shift registers (R1-R5) per array location; wherein each execution lane in the two-dimensional array of execution lanes comprises a physical register that can, during any cycle, read from or write to any of the multiple shift registers in the two-dimensional shift-register array to which the execution lane is coupled; wherein each execution lane is configured to execute instructions of a kernel program that: causes the two-dimensional shift-register array to shift a sheet of input data stored in the two-dimensional shift-register array, the shifting comprising multiple shifts within the two-dimensional shift register array in a two-dimensional pattern; causes each execution lane to read, from any of its respective shift registers, a plurality of input values, each input value corresponding to data shifted into the respective shift registers during one of the multiple shifts of the two-dimensional pattern; and causes each execution lane to compute a respective resultant output value using the plurality of input values read from the respective shift registers. a two-dimensional shift-register array; and a two-dimensional array of execution lanes coupled to the two-dimensional shift-register array to simultaneously process multiple overlapping stencils of image data; wherein the two-dimensional shift-register array has multiple shift registers (R1-R5) per array location; wherein each execution lane in the two-dimensional array of execution lanes comprises a physical register that can, during any cycle, read from or write to any of the multiple shift registers in the two-dimensional shift-register array to which the execution lane is coupled; wherein each execution lane is configured to execute instructions of a kernel program that: causes the two-dimensional shift-register array to shift a sheet of input data stored in the two-dimensional shift-register array, the shifting comprising multiple shifts within the two-dimensional shift register array in a two-dimensional pattern; causes each execution lane to read, from any of its respective shift registers, a plurality of input values, each input value corresponding to data shifted into the respective shift registers during one of the multiple shifts of the two-dimensional pattern; and causes each execution lane to compute a respective resultant output value using the plurality of input values read from the respective shift registers. causes the two-dimensional shift-register array to shift a sheet of input data stored in the two-dimensional shift-register array, the shifting comprising multiple shifts within the two-dimensional shift register array in a two-dimensional pattern; causes each execution lane to read, from any of its respective shift registers, a plurality of input values, each input value corresponding to data shifted into the respective shift registers during one of the multiple shifts of the two-dimensional pattern; and causes each execution lane to compute a respective resultant output value using the plurality of input values read from the respective shift registers.