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

    <tr>
        <th>Summary</th>
        <td>
            `bitcast` selection error with `power9-altivec` target feature
        </td>
    </tr>

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

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

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

<pre>
    From Rust `std::simd`:
```
LLVM ERROR: Cannot select: 0x7f38ba33faf0: v16i8 = PPCISD::XXPERM 0x7f38ba3a9e70, 0x7f38ba3a9e70, 0x7f38ba38faf0, crates/core_simd/src/masks.rs:157:46
 0x7f38ba3a9e70: v16i8 = bitcast 0x7f38ba236000, crates/core_simd/src/masks.rs:157:68
    0x7f38ba236000: v4i32,ch = load<(load (s128) from %stack.8)> 0x7f38ba33f5b0, FrameIndex:i64<8>, undef:i64, crates/core_simd/src/masks.rs:157:68
      0x7f38ba236f50: i64 = FrameIndex<8>
      0x7f38ba253620: i64 = undef
  0x7f38ba3a9e70: v16i8 = bitcast 0x7f38ba236000, crates/core_simd/src/masks.rs:157:68
 0x7f38ba236000: v4i32,ch = load<(load (s128) from %stack.8)> 0x7f38ba33f5b0, FrameIndex:i64<8>, undef:i64, crates/core_simd/src/masks.rs:157:68
 0x7f38ba236f50: i64 = FrameIndex<8>
      0x7f38ba253620: i64 = undef
 0x7f38ba38faf0: v4i32,ch = load<(load (s128) from constant-pool)> 0x7f38ba297460, 0x7f38ba38c4d0, undef:i64, crates/core_simd/src/masks.rs:157:46
    0x7f38ba38c4d0: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> TargetConstantPool:i64<<16 x i8> <i8 3, i8 7, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>> 0, Register:i64 $x2
      0x7f38ba236c40: i64 = TargetConstantPool<<16 x i8> <i8 3, i8 7, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>> 0
      0x7f38ba38cee0: i64 = Register $x2
    0x7f38ba253620: i64 = undef
```

This doesn't occur with the `power9-vector` feature.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUllFv5CYQxz_N-AVlhQFj-8EPW2ctnXTXi7ZRdX06YTzepfGaCHCS9tNX2M4lu0qrnk499aTVYjDM_H8zHkB5bw4jYgXZT5BdJ2oKR-sqrQZs_5wG9ejvTNLa7o-qcfZE9pMPBCT1oQO-Bb715tSBpLFDr4Fu4_Pym7vv3__6gez2-4974FtSq3G0gXgcUIc4QJ_ynhet4rxXfTRCHlJpCgL8mtzc1O9-uV68fPp0s9t_eJmuSswpsPqfRorZJKuJdiqgB9Zo6_DzLJg13mlgzUn5O79xHvg2zXLgWyEX3ZeGz5S1Jmjlw5c5jEtKv9qVLFZXhFxait6E4QxYrY-zy8GqDngNrIhPBFjhU1YAK0kf0wIs80Hpu00cAr57HdisnaU1Tp3w3djhE_CtkQJ4XQDfxVfT2GG_jn4DxBlGn80YRopZ_2vvi9-3lmVcsrNli7J16ndMyY-fj_80FRc19tXh0Xb0QY3h6t7a4SJCrMyFvKhkLTr6jYH5UtivIFfDC-SL-Ncbz-3H-vPu59v9bxc0cf4Kc7BhRbhV7oChXuFuIttzaoHXqSRPxMSAE-C1KQiPDKYg-drS79by3Rzx2N_jwfiAblFKgIkn9jclrcXZB_EW7f-U8w0eXmjEM57nSFzG4F-VxMWxt_zfHo0nnUU_AssDsVpPjjyacCThiPEUvbeP6MqrB9TBOpCU9KjC5HCTdBXvSl6qBKtUFqVMaVmI5FjlJZZYZlmnhWiF6LJca6aytG0lLWQrE1MxyjjN0zyVjFOx6bTSsldtzosuzfIeBMWTMsNmGB5OG-sOifF-wkryMhXJoFoc_HwZYGzERzK_BMbi3cBVcc1VOx08CDoYH_yLlWDCgBVIum7FEWc56I0dCTpnV_YXbjUE84A6zgzzx_TMn0xuqI4h3Mf6BdYAaw4mHKd2o-0JWBOdrs3VvbO_x9sEa2apcTuYUf4KAAD__7Vxcpc">