<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58742>58742</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir][scf] Invalid `scf.for` conversion in `populateSCFStructuralTypeConversionsAndLegality`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Hardcode84
</td>
</tr>
</table>
<pre>
https://github.com/llvm/llvm-project/blob/d3f5f330671e718a0e28598c412d09e9a3b54273/mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp#L79
Here `adaptor.getLowerBound(), adaptor.getUpperBound(), adaptor.getStep()` are passed to newly created `scf.for`. If index -> i64 conversion is present it will generate invalid `scf.for`. Need to add `unrealisedConversionCast` back to index type.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVUttu3CAQ_Rr8gmJh8I0HPySbVokU9SXpB2AYe2lZgwDvdv--492maZW2UiVjBg5z5sxl9OY87HMOiYhbwj_iN9u8X8dS-wMenDu-bjch-i-gMx5H50fcjJiaSQjWdhV0Va8Y8L6Rva4rbpgEqcTY1LwT-PTgbNx47OZ3b5W7Ej3vtogvUS1p8vGQtqscV53XqNzLOcDOL0eIyfollToEwsVTJwm7J-z2-n-ACJS0TBkVso_lDPnJnyDe-XUxhPeES8J39Bf4cwj_gp8zhB9Ay6hC9qBSAkOzpwuc3JnqCCrjBeJJTyUKR6ukjxO1i4Fv9IaID9S2NdU_xVObaIiQYMnUZnqyztEZFohIhF5H5ew7vk9wDarMBVoXDOssKnmryU6lvKkclf66Pb3Gz1i3soChattOiLbvZGEGYaSQqsg2OxhIc3dpSHOPFsZEgz7-ScVvKSwbFnxYHarGzv21U7eLeYIZ2fIZPYo1uv8fMZvSCts8NH1X82I_cMkxTV1JwYzuOzbVVW96CZo1OIZ1Xzg1gktbbphOYQfOOK8qVvGKdY0s25ZVujGTmHCJUZCawUFZV26BSx_nIg4XDeM6JwSx1Dm9gTgDdl4AXvnVmvc-Dg8qGu0N9HVxUTxc5H4HOg4Umg">