<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/116747>116747</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [mlir][nvvm] NVPTXSerializer does not support FATBIN target in compileToBinaryNVPTX flow
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          MikaOvO
      </td>
    </tr>
</table>

<pre>
    In `lib/Target/LLVM/NVVM/Target.cpp`, `NVPTXSerializer` compile `PTX` to binary with two different flows controlled by `MLIR_ENABLE_NVPTXCOMPILER`.

If building mlir with `-DMLIR_ENABLE_NVPTXCOMPILER=ON`, the flow does not check if the target is `gpu::CompilationTarget::Fatbin`, and compile `PTX` to `cubin` directly, which is not consistent with another flow.

Is this expected? 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U01v4ywQ_jX4ghphHJP64EPS1FKkfFR9o6q3CgO25y0BC3Cy2V-_gmS32tXuxUgD88w8H-beQ2-UqlG5QuU641MYrKt38MkP50PWWnmtNwYjRjS0iDZH7noVEG2227cdos3-LR238kyMI2IE0afYsH97Ob7_pxxwDd-VQ4xgYU8jaBVvX47vsRIsbsFwd8UXCAMOF4sldJ1yygTcaXvxWFgTnNVaSdxeY-tuu3n9eN4vV9vnjzTk6bB72WyfXxEjM0TWiCxv302H2wm0BNPjkwZ3m4EYeVj_G6NYH_Z3EmFQaQcsrfLY2IDFoMQnhi5dhUQag4-Q_TihYomK5VPiyANYcxcrlRseWjB3YG7k37VAjIjp9g5LcEoEfY0NlwHEECelJazx4ENUKBHixoZBubTq7_w9DgN4rL6NSgQlUdHgTNaFrIqKZ6rOF0VeVYu8YtlQl5QXC5JLKoks5FzwR1osSsp4UZY5XbAMakroPM_zirC8KtlsrpgoRNnlHSWie3xEc6JOHPRM6_NpZl2fgfeTqvOcLeaLTPNWaZ-CRmm0A1EaI-fq-P6hnXqP5kSDD_4LIUDQKZypoVyjcmXO5xMq1_iPfH2Z5KdxtC7gZnlcbfa_bDI_JT_aVYpcAkiqZZPT9RDC6KNZtEG06SEMUzsT9oRoE9e5Hw-js_8rEX-BxM4j2twJnmv6IwAA___HCAyn">