A 768 x 432 test pattern was generated with code. It has smooth gradients on top and sharp colour stripes at the bottom. It was turned into a JPEG with libjpeg-turbo's own cjpeg, using -quality 90 -sample 2x1 -dct int.
A small C program decoded the file two ways. It first decoded the whole image, cutting out x 192 to 499, then only that region with jpeg_crop_scanline. The two outputs were compared pixel by pixel, and the count was redone in Python from the raw PPM files.
x=200 was requested. Because of the 16-pixel block boundary, the library returned x=192 and a width of 308, so the same columns were compared in both outputs.
The largest difference is at x=192, y=216. The stored Cb samples are 215 and 91. The full decode calculates (3 x 91 + 215 + 1) >> 2 = 122. In the partial decode 215 is outside the region, so 91 is copied. Light is 127 on both paths, and the pixel becomes RGB 27, 190, 61 instead of 44, 171, 116.
On the right edge at x=499 the real next sample is 177. The full decode gives (3 x 180 + 177 + 2) >> 2 = 179. The AVX2 path writes a copy of 180 into the next cell, so the result is 180.