OSDN Git Service

[X86] Remove cvtps2ph xmm->xmm from store folding tables. Add the evex versions of...
authorCraig Topper <craig.topper@intel.com>
Sun, 7 Jan 2018 06:24:23 +0000 (06:24 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 7 Jan 2018 06:24:23 +0000 (06:24 +0000)
commit1d841745693c433b6c9a3aea1e5bb91ef3ad3974
treefaba43c2f79e0e9878b826ed49ff536e3180b918
parent72bb1a1f8befac4c1363b466676c8a252560d6f9
[X86] Remove cvtps2ph xmm->xmm from store folding tables. Add the evex versions of cvtps2ph to the store folding tables.

The memory form of the xmm->xmm version only writes 64-bits. If we use it in the folding tables and its get used for a stack spill, only half the slot will be written. Then a reload may read all 128-bits which will pull in garbage. But without the spill the upper bits of the register would have been zero. By not folding we would preserve the zeros.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321950 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/stack-folding-fp-avx1.ll
test/CodeGen/X86/stack-folding-fp-avx512.ll