<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/135393>135393</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir][ROCDL] Intrinsic selection failure when adding Permlanex16Op to ROCDL
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Muzammiluddin-Syed-ECE
</td>
</tr>
</table>
<pre>
As part of a [change to improve subgroup_reduce lowering](https://github.com/llvm/llvm-project/pull/133204), the Permlanex16Op was added to the ROCDL dialect in mlir. However, when trying to use it to lowering a simple matvec, I encounter the "selection" error described below.
Input MLIR:
```
!matA = tensor<32000x4096xf16>
!matB = tensor<2x4096xf16>
!matCF16 = tensor<32000x2xf16>
!matCF32 = tensor<32000x2xf32>
func.func @matvec(%arg0: !matA, %arg1: !matB) -> !matCF16 {
%c0 = arith.constant 0 : index
%cst = arith.constant 0.000000e+00 : f16
%5 = tensor.empty() : !matCF32
%6 = linalg.fill ins(%cst : f16) outs(%5 : !matCF32) -> !matCF32
%7 = linalg.matmul_transpose_b ins(%arg0, %arg1 : !matA, !matB) outs(%6 : !matCF32) -> !matCF32
%8 = arith.truncf %7 : !matCF32 to !matCF16
return %8 : !matCF16
}
```
Command (in IREE):
```
iree-compile <input.mlir> --iree-hal-target-device=hip --iree-hip-target=gfx942
```
Output error:
```
LLVM ERROR: Cannot select: intrinsic %llvm.amdgcn.permlanex16
```
ISEL Debug + Error Backstrace: [See gist](https://gist.github.com/Muzammiluddin-Syed-ECE/d97900363901d5b36d5335016a751117#file-intrinsic_selection_failure_backstrace-txt)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVVuL6zYQ_jXKyxAjS77ED3lwbjSwhy17oK9BtsaOWlk2kpzN9tcXObc9my20ISRGc_u-z5oZ4ZxqDeKSpCuSbmZi9MfeLn-Mf4uuU3qUUpn5zw-U8-16O6t6-bEsHQzCeugbEEDSVX0UpkXwPahusP0JwY1Va_txOFiUY42g-3e0yrQk3RC2OHo_OMJLwnaE7Vrlj2MV1X1H2E7r0-1vPtj-T6w9Ybth1JqwXcw5owlhBWFr8EeE39F2Whg8x9nrAO_CgZASZUASzG-v680LSCU01h6UgU4rG8Fv_Tue0IYk70c04O2HMm0IGh2C8uHpBhgEONUNGqET_oR1CNoDmrofjUc7lSGMOQwlVG8IY4DW9hYkutqqCiVUqPv3CAgtCS33Zhg9_HjZvwUBaEkyev3SkrC4E74Ewjfg0bjeEr7mjFJ6TmiRnZs4I3x7d1z96si-dVrv4uy7hOzZkbN_ceTs6kjLZjR1FH6AJPQmyYKwVNiWEl7ClUPQ6XIaP05XhBUwJ3wLn7HlK0JLCN41nQAIq_wxqnvjvDAewmEJykg83x2d_9YzotMHCVvRS1ggeQ1KP7GLsBv8x4S8gAfAoMHN_aKaVkboNmqU1qCMu3C9lL8kZwX0o78a0q-5vvJ9pM8_p--E70Z98FYYN_QOD9Wj2CTsQ014Evmu7ANH9t9xLD4J6e1o6uaG7nOC0BKPdxZiLfrRmluG8lcryTdfrzYt133XCSOBsIUysH_bbkMnPzWBsojzuu8GpREIX6vQMFHo3EBgPp_sR6HnXtgW_VziSdVI-OaohrtZDVcz4Zu2ORcJe8bzOvrQilO3PsN4efnjB2zf3l5Dn8JaGNN7uLT55Tp6q4xTdVAgTKtIdLKtTTQ8RtJzyf3P7QtssBpbIGwF22lQrET9l_NWBBJlGKc_EaFVzn8_LJ2PfpmY3w9qwnayyAtKecYLGsu04plMOU9pnIk8jeM4J4w3SuP8TuVwn2KHRig9WjxUd2xzf_aEFTO55LLghZjhMs6ThC_yPC9mxyWtFikKmhVJVfOsEQJzViXpIpZJI2XCZmrJKEtpEsdxRgueRxnNMFvUGeNJs2gySRKKnVA6muTsbTtTzo24jHnKCz7TokLtpi3F2HQdGAv7yi6nZVGNrSMJ1cp598jgldfTZpsC0g1JV9NSIOkG9vdXeOcNV96XvSCCou2XJeP7y1qZjVYv__cimxi5aZVNpE5L9k8AAAD__4n5PI0">