This commit adds a pattern to wrap a linalg.pad_tensor op with
an scf.if op to separate the cases where we don't need padding
(all pad sizes are actually zeros) and where we indeed need
padding.
This pattern is meant to handle padding inside tiled loops.
Under such cases the padding sizes typically depend on the
loop induction variables. Splitting them would allow treating
perfect tiles and edge tiles separately.
Depends On D117017
This is very limited in terms of control and heuristics.
Should this just be a test pass?