Reland 7691790dfd1011d08f5468f63952d7690755aad4 with a MSAN fix
authorKrzysztof Parzyszek <kparzysz@quicinc.com>
Wed, 26 Feb 2020 15:56:12 +0000 (09:56 -0600)
committerKrzysztof Parzyszek <kparzysz@quicinc.com>
Fri, 28 Feb 2020 14:32:58 +0000 (08:32 -0600)
commitc8bfed05e21f945b5ac71cd01d62e2854a8ddcf9
tree35e3dd4ff5c1c2eae85f40234112ab7f1098ec87
parente2a2f3f7fcf2175b16a96c47e5d8cb566258d1ae
Reland 7691790dfd1011d08f5468f63952d7690755aad4 with a MSAN fix

In some cases when HexagonTargetLowering::allowsMemoryAccess returned
true, it did not set the "Fast" argument, leaving it uninitialized.

[Hexagon] Improve casting of boolean HVX vectors to scalars

- Mark memory access for bool vectors as disallowed in target lowering.
  This will prevent combining bitcasts of bool vectors with stores.
- Replace the actual bitcasting code with a faster version.
- Handle casting of v16i1 to i16.
llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
llvm/lib/Target/Hexagon/HexagonISelLowering.h
llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
llvm/test/CodeGen/Hexagon/autohvx/isel-hvx-pred-bitcast.ll
llvm/test/CodeGen/Hexagon/autohvx/isel-store-bitcast-v128i1.ll [new file with mode: 0644]
llvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll
llvm/test/CodeGen/Hexagon/store-vector-pred.ll