To enable this, two changes are needed:
- Add an optional attribute padding to linalg.conv.
- Compute if the indices accessing is out of bound in the loops. If so, use the
padding value 0. Otherwise, use the value derived from load.
In the patch, the padding only works for lowering without other transformations,
e.g., tiling, fusion, etc.
This must be documented in great detail as it is very intrusive on a bunch of things.
You also want to go into all Linalg transformations and ensure that conv + dilations fails.
I will create a trait for that and refactor later.