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

    <tr>
        <th>Summary</th>
        <td>
            [SelectionDAG] -use-constant-fp-for-fixed-length-splat not quite working?
        </td>
    </tr>

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

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

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

<pre>
    [tc_leg.tar.gz](https://github.com/user-attachments/files/17200345/tc_leg.tar.gz)

llc -mtriple=s390x-linux-gnu -mcpu=z16 -o - ./tc_leg.ll -use-constant-fp-for-fixed-length-splat

```
auto *T = FixedVectorType::get(V.front()->getType(), V.size());

(gdb) p V.size()
$90 = 4
(gdb) p V.front()->getType()->dump()
<4 x float>


llc: llvm-project/llvm/lib/IR/Type.cpp:691: static llvm::FixedVectorType* llvm::FixedVectorType::get(llvm::Type*, unsigned int): Assertion `isValidElementType(ElementType) && "Element type of a VectorType must " "be an integer, floating point, or " "pointer type."' failed. 
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. 
Stack dump: 
0.      Program arguments: llc -mtriple=s390x-linux-gnu -mcpu=arch15 ./bugpoint-reduced-simplified.bc -o /dev/null -use-constant-fp-for-fixed-length-splat
1.      Running pass 'Function Pass Manager' on module './bugpoint-reduced-simplified.bc'. 
2. Running pass 'SystemZ DAG->DAG Pattern Instruction Selection' on function '@func_79'                                
 #0 0x000002aa17df2ed0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (llc+0x1d72ed0)
 #1 0x000002aa17df09d0 llvm::sys::RunSignalHandlers() (llc+0x1d709d0) 
 #2 0x000002aa17df0bb4 SignalHandler(int) Signals.cpp:0:0     
 #3 0x000002aa1b0401de 
 #4 0x000003ff9bb48c6e raise /build/glibc-8Bkpa0/glibc-2.30/signal/../sysdeps/unix/sysv/linux/raise.c:50:10 
 #5 0x000003ff9bb2b232 abort /build/glibc-8Bkpa0/glibc-2.30/stdlib/abort.c:81:7 
 #6 0x000003ff9bb408b2 __assert_fail_base /build/glibc-8Bkpa0/glibc-2.30/assert/assert.c:89:7 
 #7 0x000003ff9bb40926 (/lib/s390x-linux-gnu/libc.so.6+0x40926) 
 #8 0x000002aa172da314 llvm::FixedVectorType::get(llvm::Type*, unsigned int) (llc+0x125a314)
 #9 0x000002aa17118b34 llvm::ConstantVector::getImpl(llvm::ArrayRef<llvm::Constant*>) (llc+0x1098b34)
#10 0x000002aa17120662 llvm::ConstantVector::get(llvm::ArrayRef<llvm::Constant*>) (llc+0x10a0662)
#11 0x000002aa170e70a6 llvm::ConstantFoldCastInstruction(unsigned int, llvm::Constant*, llvm::Type*) (.part.0) ConstantFold.cpp:0:0
#12 0x000002aa1712105c getFoldedCast(llvm::Instruction::CastOps, llvm::Constant*, llvm::Type*, bool) Constants.cpp:0:0      
#13 0x000002aa1687df88 (anonymous namespace)::FoldBitCast(llvm::Constant*, llvm::Type*, llvm::DataLayout const&) (.part.0) ConstantFolding.cpp:0:0
#14 0x000002aa16880014 llvm::ConstantFoldCastOperand(unsigned int, llvm::Constant*, llvm::Type*, llvm::DataLayout const&) (llc+0x800014)
#15 0x000002aa16bc2c28 llvm::MachineConstantPool::getConstantPoolIndex(llvm::Constant const*, llvm::Align) (llc+0xb42c28)
#16 0x000002aa17bf46e0 llvm::InstrEmitter::AddOperand(llvm::MachineInstrBuilder&, llvm::SDValue, unsigned int, llvm::MCInstrDesc const*, llvm::SmallDenseMap<llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::

```

@paulwalker-arm 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysV0tT4zoa_TXKRmWXLDt-LLIICelh6nZdCrpYzIaSLdnRIEsePWjoXz8l2SF2oLu5cycFifX6ztH3OJaIMbyTjG3A-gqs9yvi7FHpzT-VvDVGyWRVK_rqB23zKFgXW6Lj7gdY7wEuj9YOBqRbgA8AHzpuj66OG9UDfHCG6YhYS5pjz6Q1AB9aLpj_TQqMUJqtAT4sbeIKoD1A2_FbiAZGvdV8EAyke5NW6CUSXLqXqJMORn0zOJDufyQ5jBSMYHy2JwSMnGFRo6SxRNqoHaJW6ajlL4xGgsnOHiMzCGLngCBH019oEmcVBHj7DYJ0Dw9-6QNrrNLfXgfmN51uO2YBLh_iVivpnwCuIpBed8yGOaED4B18iA3_8dauQHq1wMVlR2uAKzgsZ06jWYUCheyj6b-C9h3U9cPCXLrL4AtshSIWpNcLHie3g3QLhXjuo0Grf7PGAnzwTf_Da4APN3cAHzxM3AwDSLd5lfglxhLLm7BydM-lz_D2F4Mzh54nTcu8D50MeUoh9_utPODWGKYtVxKCHHHzQASn14L5fJucsGhVEOAc4BwCjKcBaF8HBlULCTxTgb0z1k_y_zWDRHpM1jHteQTPcdnBQQUmO6j0aXLoYjpYjQHGABewJVwwGsPRu7d_XG_vr6Fxdc8tJLB2HdRsUNpCq-Av6ukUgGVYuDEu1BQk0numEY4yaI8MNpqYI6xJ82Q1adgJ_96S5gmGpEi3Ux-KYfjcatVp0kOiOzfWbMiDT1Uh0c0xWYcarF0X_BBpRl3DaGR4PwjeckbjuvG1CvCBsmeAD9L91UpNJq53TsoQBGIMBLg4ONmETLj1HV-JJCFcBVQS9oo6wfys39Pzkya34Pgdyv2rsaz_F9xvv_ja2m-_wFtiLdMS3khjtRs53DPBwtNEoD2RA7gAGfLNx6Lyg7_5jEQgwCmC6AX5DyYkKWiLGUWzYjKvZny41VzaEORvPuyLYtLk-6MyVjPSh0LYTaUEw6wG4Cv0ktDCm36TC4-dXGCj6mPsOyfveSeJ-AeRVDBtRt25MO9Xh943-_jSfl1ncGEJ4HKiOnabSXiQ_7_wVDq3VqMMJZTNhrPTcNq2VV1nZZMzqAk3PkEOteOC-tITvG6i8uppIOitiePUN0ygAPAh9ulkXg1lgy9BJ_nL2PEclFI63wymYy-pa882QTMu6yUXXHtfkNqLwWe5WDpKclgVYEqvxcUMJb_YMSprDB8fSRDPRy9PjzX5_PbHdW8PI2Z1gVlcYlZBdsu3V8iFjoz9TWxUnIdECSuWaVIu0gRTkibZ_-99sshSvPbGF0VQLdCTpKzTOfpu0q-RwBv4TT-IBYGt1uT1jrUg3b1f7Jml15dkUOWxZueBNFmqQYJRnuPfk_nbRIjHWRBZSgNiBSL5B0QOStAdMXYmkgCXywjsPlg3heqD-AVm8UC0jYOazJHm4nCmii98lqB1AzsWVrDAbuGfOdWREzH2T1_of43oDtZKiTnF9-IFzywX6pWXBW3L0m-VSCVfe-UMlKRnZgjaXk2ZrwS94vbdFj5D7ty5J5b8QV6VszC8jMFUfz91M5fdx57OlnsoEUo-KpVTUvw5ME0k_ZsJ8bmtnHK5RJ7UIpXXC9Z1gxtczmx-Jc2RS3YicuuDeiqseeeNpOzlwzCcuFyQ3QreyQt6debRF_TyRfrWbZaz-Us4pOt1z_1hZLJL6dmz7_YR5l95ufdv13xJ6X7_QIRj71VyPunrLtjYM9P8ZGf3PRFiz6RhX8mw0JkZwLnzjnXc2PGQneTuIqSTmRvZqp-ZelacBtmaL6TMEj6F6heXvek7QwNx4jsRT_72qnu4opuUVmlFVmyTFLgo8nVSrFfHDUopww1JK1qTHK-bukmSkmYVLRAjFcUrvsEIZwlCCcqzPFnHRVWQtGLruqpIgWt_EmQ94SL2ZGOlu1U4zW-SBOVpuhKkZsKEWznGkn2HYdRfKtb7ld6Ei0DtOgMyJLix5mzGcivCdf7tHLrffgHr_WdP2lAqC__juGXwu9JPXHYgPaycFpv__X4ybep5g_8bAAD__-EJ6eE">