[PATCH] D68544: [X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217)
Denis Antrushin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 14 10:43:39 PDT 2019
dantrushin marked an inline comment as done.
dantrushin 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,
----------------
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...
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