[PATCH] D68544: [X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217)
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 14 10:53:00 PDT 2019
RKSimon marked an inline comment as done.
RKSimon added inline comments.
================
Comment at: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp:33437
+ User->getOpcode() == X86ISD::VBROADCAST_LOAD) &&
+ User->getValueSizeInBits(0) > VT.getSizeInBits()) {
+ return extractSubVector(SDValue(User, 0), 0, DAG, DL,
----------------
dantrushin wrote:
> Shouldn't we check for simple types equality here?
> One of my fuzzy tests fails because we try to replace
>
> ```
> t589: v8i16 = X86ISD::VBROADCAST t5, Test::iMeth-482306:0
> ```
>
> with
>
>
> ```
> v8i32,ch = X86ISD::VBROADCAST_LOAD<(load 4 from %ir.52, addrspace 1)> t5:1, t30, Test::iMeth-482306:0
> t680: v4i32 = extract_subvector t679, Constant:i64<0>, Test::iMeth-482306:0
> ```
>
> Which result in assertion violation in SelectionDAG::ReplaceAllUsesWith(), because types are incompatible...
@dantrushin Please can you send me a test case?
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68544/new/
https://reviews.llvm.org/D68544
More information about the llvm-commits
mailing list