[polly] Make reduction detection checks more robust - part 1 (#75297)

Existing reduction detection algorithm does two types of memory checks
before marking a load store pair as reduction.

First is to check if load and store are pointing to the same memory. This
check right now detects the following case as reduction. sum[0] = sum[1]
+ A[i]

This is because the check compares only base of the memory addresses
involved and not their indices. This patch addresses this issue and
introduces some debug prints. Added couple of test cases to verify the
functionality of patch as well.

GitOrigin-RevId: fa3307eb3f47b0bd574fc754934f98c0f27e4e36
3 files changed