llvm-6502/lib
Andrea Di Biagio 14fc08301c [X86][FastIsel] Fix assertion failure when selecting int-to-double conversion (PR23273).
This fixes a regression introduced at revision 231243.
The target-independent selection algorithm in FastISel knows how to select
a SINT_TO_FP if the target is SSE but not AVX. That is because on X86, the
tablegen'd 'fastEmit' functions know how to select CVTSI2SSrr and CVTSI2SDrr.

Method X86FastISel::X86SelectSIToFP was therefore working under the
wrong assumption that the target was AVX. That assumption was incorrect since
we can have a target that is neither AVX nor SSE.

So, rather than asserting for the presence of AVX, we should have had an
early exit from 'X86SelectSIToFP' if the target was not AVX.
This patch fixes the issue replacing the invalid assertion with an early exit.

Thanks to Dimitry Andric for reporting this problem and for providing a small
reproducible testcase. Added test pr23273.ll.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235295 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-20 11:56:59 +00:00
..
Analysis [LoopAccesses] Improve debug output 2015-04-17 22:43:10 +00:00
AsmParser [opaque pointer type] Use the parsed explicit pointee type when error-checking geps during LL parsing 2015-04-17 22:32:13 +00:00
Bitcode [opaque pointer types] Use the pointee type loaded from bitcode when constructing a LoadInst 2015-04-17 19:56:21 +00:00
CodeGen [InlineAsm] Remove EarlyClobber on registers that are also inputs 2015-04-20 00:01:30 +00:00
DebugInfo [PDB] Support executables and source/line info. 2015-04-17 22:40:36 +00:00
ExecutionEngine Revert "[RuntimeDyldELF] Fold Placeholder into Addend" 2015-04-16 08:58:15 +00:00
Fuzzer Removing a spurious space; NFC. 2015-04-06 16:09:13 +00:00
IR DebugInfo: Remove DIDescriptor from the DebugInfo API 2015-04-17 23:20:10 +00:00
IRReader Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker DebugInfo: Gut DISubprogram and DILexicalBlock* 2015-04-14 03:40:37 +00:00
LTO [LTO API] add lto_codegen_set_should_internalize. 2015-04-17 17:10:09 +00:00
MC Compute A-B when A or B is weak. 2015-04-17 21:15:17 +00:00
Object Change range-based for-loops to be -Wrange-loop-analysis clean. 2015-04-15 01:21:15 +00:00
Option Remove more superfluous .str() and replace std::string concatenation with Twine. 2015-03-30 15:42:36 +00:00
Passes [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
Support Revert r235177 as the Handle is used to fail GetExitCodeProcess on purpose. 2015-04-17 12:11:15 +00:00
TableGen Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
Target [X86][FastIsel] Fix assertion failure when selecting int-to-double conversion (PR23273). 2015-04-20 11:56:59 +00:00
Transforms [NFC] Refactor identification of reductions as common utility function. 2015-04-20 04:38:33 +00:00
CMakeLists.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
LLVMBuild.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
Makefile [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00