<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/153787>153787</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[X86] Recognise VPMADD52L/H patterns on AVX512IFMA/AVXIFMA targets
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:X86,
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RKSimon
</td>
</tr>
</table>
<pre>
AVX512IFMA/AVXIFMA targets should be able to fold vXi64 mul-add patterns assuming the multiplicands are known to be u52 integers
X86ISD::VPMADD52L patterns can be matched for `(X * Y) + Z` if the upper 12 bits of X, Y AND (X * Y) are all known zero
X86ISD::VPMADD52H patterns are trickier as we extract the upper 52 bits of the (X * Y) 104-bit mulu extended result, but at least basic matching might be achievable
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8UkFu2zAQfA11WdiQVqJsH3RQYggN2hRFAgRObxS5lthQokGunDavL-gGTXJoTxK42JnZmVEx2mEmaoS8EnKfqYVHH5q7z_d28nPWe_OraR8OssCb7rYV2LUPh_QHrMJAHCGOfnEGegLVOwL2cPTOwPlg6wqmxa2UMXBSzBTmCCrGZbLzADxSmrI9OavVbCKoQPA0--c5YfQEi0SwM9NAIYq8FXl72NY393tRtqJsH77dtvu9xC9v2FrNaW9SrEcycPQBRJ0L3B5AYAuPAncg8Aq-izoHe7xIWE4nClAg9JYj-CMcBF7DI7Rf9_BxM8lTzr1KfKHg_y3q07uDAwEHq58sBVARngnoJwel-R2_fONPjx-Ji7xa9ZaTW0vapdmQgUBxcZzE9guDYnCkIkOvotV_LEguT3YY-ZKNHi2dU0KZaUqzK3cqo6bYSIlS7qoqGxuJRXXMjxtVVIVRZd7roq6rvJRHTZp0kdkGc5T5tpBFkcuqWpekzbYsqe5xQ7XZiSqnSVm3du48rX0YMhvjQk0hy812kznVk4uXoiH2Sj_RbESZDBSIAq8F4mRjJLPyJ7aTfVFs_Zxmcp-FJoGu-mWIosqdjRzfaNiyuzQ4Yck93JH2w2wjwd-aCOzepeJn-F-psyW4ZmQ-xZQrdgK7wfK49GvtJ4FdIn79rE7B_yDNArvLsVFg93rvucHfAQAA__-f4RCO">