<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57095>57095</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] Incorrect lowering of tosa::ReluNOp and tosa::ClampOp
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sabauma
</td>
</tr>
</table>
<pre>
Change 2eb50cee11ccbfac71eeb7687b9f136d95fc7f52 changed the implementation of tosa::ClampOp to use a sequence of maxf and minf operations for floating point value.
The clamp operation is lowered to
val = min(val, minVal)
result = max(val, maxVal)
The correct implementation is
val = max(val, minVal)
result = min(val, maxVal)
A reproducer can be found in `@test_simple_f32` of `test/Conversion/TosaToLinalg/tosa-to-linalg.mlir`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9Uttq3DAQ_Rr7Zchiy6u1_eCHdEOgUFoooa9BksdeFVlyddls_74jp2k2vYGwdEZHM8dnRrrx-3A8CTsjMJS8Uoh1rZSchGprRNkeulb2U90cxp5Pqp04A7XxR4gnBL2sBhe0UUTtLLgJoguiaG5pHY1Y1k8rRSAFBAEBvyW0CjNtEZcJhB1h0XYCt6LfMgSYnIfJOEJ2htVpG-EsTMJdUd0V1e3z94FKq5z-9SXoAMY9oc_K3DUZIGeAornLxQrWESrYMYMv-dT_onkMycRnprhcMcXlmnmlwXmPKv5ugw7_qv8m63_rv1H6t_q3RF-9G5NCD0pYkEjmJbJUWygOVbGvIob4GDZxj1PDKJitpy1fFOz-6OwZfSDJBB6ocQ_ug7bCzARzH2-iuzFbYLcY7enhzy6UONSHQ8Wajle8HIdm7JtelFFHg0PB321sfgfv7YtDW2tyS9-MyGc06SONSB6EPwanTN4MpxjXkMPsntas4ynJnXILAWPOL9sNGfGVyhDUISQMdOBt1fPyNMh-FHIcOetZV3HWtV2vBFf7ppYtlxMvjZBoQpZdMGbxCbYUdKY_KPXAKsaqrq7rltX7_Y6PFdbt2HAm2sN-35PNuAhtdlnHzvm59MMmSaY50KXRIYbXSxGCni1uLuX8IsWT80MQUqRFlFvpYZP-AzEbI5Q">