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

    <tr>
        <th>Summary</th>
        <td>
            [X86] Crash on fpext <256 x bfloat> to <256 x float>
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Assertion fails:
```
llvm/include/llvm/CodeGen/ValueTypes.h:307: llvm::MVT llvm::EVT::getSimpleVT() const: Assertion `isSimple() && "Expected a SimpleValueType!"' failed.
```

It's a regression introduced by 3cf8535dbf0bf5fafa99ea1f300e2384a7254fba. The code added to the `combineFP_EXTEND` assumes the source type is simple which is wrong for bf16 vectors of size >128.

Reproducer:
```
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "LLVMDialectModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: memory(readwrite, inaccessiblemem: none)
define void @kernel(ptr %0, ptr %1) local_unnamed_addr #0 {
  %3 = load <256 x bfloat>, ptr %0, align 2
  %4 = fpext <256 x bfloat> %3 to <256 x float>
  store <256 x float> %4, ptr %1, align 4
  ret void
}

attributes #0 = { memory(readwrite, inaccessiblemem: none) }

!llvm.module.flags = !{!0}

!0 = !{i32 2, !"Debug Info Version", i32 3}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVU1vIjkQ_TXmUgK57f48cCABViNNVqsdhOYWudvVjTfGRrY7CfvrVzZNYGYyh5WQVYXrPdcrV7uE92owiEtSPJBiPRNjOFi3VGhe7KvqDrPWyvNy5T26oKyBXijtCV8RuiZ0RUo6_ZKr9euRsK0ynR4lErad_ni0Ev9AQ9h2L_SIu_MJ_eJA-IrTivAVpDC-Inz1tN_deZv97mIMGL6p40njfkdYTVgDnTU-ROwtNVJS5S9hUxBhJWElEMY27yfsAkoQMBFdEyEsI4wRViVpKBefKrusXwJhlQcBDgeH3sdTlQnOyrFDCe0ZeNfXBS9k29O2L3rRi6ZBkfWcUmS8zkXFirxvxQJ2B4TOSgQhJUoIFsIBo4bOHltlcPvX8-b7bvPnmpQUhPfjEX0K8XZ0HUI4nxCUB5_kwNtBdYfovzlrBuitg7bPSnjFLljnwfbg1b8IhG8yVi_uVf2Np4sC97t7JfwBnqwcNX5ZA-FrIKxqx-FklQlzh0n9PCWieoVy0XaEVRfoJdvnXmk04ogTmn39un9aK6GxCxfieAcJEIQbMIAUQWhxtmO4QnAeuwLnJ1bR2DosLdHNfnSjVeZpmasPI2M14auM1fO-ppNl0l_lFV7m828x7KdUglOxwlMa73X5XObz0bwY-2bmWpnxfT6Y8QN1K9l2NF3qzFUILn40cMSjdWfCaodCvjkVkLBHUEZ0XWynVuMRo0ow1iBhzYVLYq8MwqtVEkhOX9AZ1ITVp-CAsIJGjsnOYttr2wn9PJpYcPkspIxbnAKpHi6EEEN5UqStkED4IytKeIe211YEwjd3lIleaDUYYHfwPMH7E76HT_CXA4K9bX0wTxQ-WIe_bifqHwVdT8-vUIchFWOqdLW-L7wIwal2DOgn0fHaqof_XXr4iZewLD5Mi2Nq10WvxeCnnshiYVlGf0XQuwjFGbB45uXFWWM7DvDF9Bb26OJTkp6hR4hx_EZ1_RJncsllwxsxw2VWZUVDaVPQ2WFZVFlT1a2UdZV3DJsCRVm2lLeU5qLK2EwtGWU5LbKScdpkdNGzoi1k0RWiyNqu6UlO8SiUXiSB1g0z5f2Iy4blVTbTokXt03xgzOAbpM2YbLGeuWXEzNtx8CSnWvngbyxBBZ0Gy_e6JMUaHp3wB4hD5Hdd81nDzEanl4cQTmnssC1h20GFw9guOnu8zZiUx8nZf7ALcQbFJD1h2yTivwAAAP__pUoC6g">