llvm-project/llvm/test
Sanjay Patel 8c13e3680d fix invalid load folding with SSE/AVX FP logical instructions (PR22371)
This is a follow-up to the FIXME that was added with D7474 ( http://reviews.llvm.org/rL229531 ).
I thought this load folding bug had been made hard-to-hit, but it turns out to be very easy
when targeting 32-bit x86 and causes a miscompile/crash in Wine:
https://bugs.winehq.org/show_bug.cgi?id=38826
https://llvm.org/bugs/show_bug.cgi?id=22371#c25

The quick fix is to simply remove the scalar FP logical instructions from the load folding table
in X86InstrInfo, but that causes us to miss load folds that should be possible when lowering fabs,
fneg, fcopysign. So the majority of this patch is altering those lowerings to use *vector* FP
logical instructions (because that's all x86 gives us anyway). That lets us do the load folding 
legally.

Differential Revision: http://reviews.llvm.org/D11477

llvm-svn: 243361
2015-07-28 00:48:32 +00:00
..
Analysis [LAA] Split out a helper to print a collection of memchecks 2015-07-27 23:54:41 +00:00
Assembler DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
Bindings [OCaml] Do not use -warn-error in tests. 2015-07-17 17:33:23 +00:00
Bitcode Add argmemonly attribute. 2015-07-11 10:30:36 +00:00
BugPoint Fix typo in comment 2015-07-26 11:37:05 +00:00
CodeGen fix invalid load folding with SSE/AVX FP logical instructions (PR22371) 2015-07-28 00:48:32 +00:00
DebugInfo DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
ExecutionEngine [RuntimeDyld] MachO: Add support for ARM scattered vanilla relocations. 2015-07-24 17:40:04 +00:00
Feature Revert the new EH instructions 2015-07-10 07:15:17 +00:00
FileCheck
Instrumentation [asan] Rename the ABI versioning symbol to '__asan_version_mismatch_check' instead of abusing '__asan_init' 2015-07-23 10:54:06 +00:00
Integer
JitListener IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
LTO Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LibDriver Add support for producing thin archives in llvm-lib. 2015-07-17 16:01:11 +00:00
Linker Linker: Do not expect comdat to exist in source module. 2015-06-22 21:46:51 +00:00
MC Implemented encoding and intrinsics of the following instructions 2015-07-26 14:41:44 +00:00
Object Support printing relocations in files with no section table. 2015-07-23 09:11:05 +00:00
Other [llvm-extract] Drop comdats from declarations 2015-07-06 18:48:02 +00:00
SymbolRewriter
TableGen [TableGen] Improve decoding options for non-orthogonal instructions 2015-07-15 08:04:27 +00:00
Transforms [LSR] Move X86 specific test case to X86/ 2015-07-28 00:13:42 +00:00
Unit
Verifier Revert the new EH instructions 2015-07-10 07:15:17 +00:00
YAMLParser YAML: Implement block scalar parsing. 2015-05-13 23:10:51 +00:00
tools [llvm-mc] Add --no-warn flag with -W alias to disable outputting warnings while assembling. 2015-07-27 22:39:14 +00:00
.clang-format
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
Makefile
Makefile.tests
TestRunner.sh
lit.cfg LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
lit.site.cfg.in