llvm-6502/lib/CodeGen/SelectionDAG
Bill Wendling 70b7fc96d0 Merging r214670:
------------------------------------------------------------------------
r214670 | spatel | 2014-08-03 15:48:23 -0700 (Sun, 03 Aug 2014) | 8 lines

fix for PR20354 - Miscompile of fabs due to vectorization

This is intended to be the minimal change needed to fix PR20354 ( http://llvm.org/bugs/show_bug.cgi?id=20354 ). The check for a vector operation was wrong; we need to check that the fabs itself is not a vector operation.

This patch will not generate the optimal code. A constant pool load and 'and' op will be generated instead of just returning a value that we can calculate in advance (as we do for the scalar case). I've put a 'TODO' comment for that here and expect to have that patch ready soon.

There is a very similar optimization that we can do in visitFNEG, so I've put another 'TODO' there and expect to have another patch for that too.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_35@215428 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-12 05:41:11 +00:00
..
CMakeLists.txt
DAGCombiner.cpp Merging r214670: 2014-08-12 05:41:11 +00:00
FastISel.cpp [FastISel] Local values shouldn't be alive across an inline asm call with side effects. 2014-07-16 22:20:51 +00:00
FunctionLoweringInfo.cpp
InstrEmitter.cpp
InstrEmitter.h
LegalizeDAG.cpp CodeGen: generate single libcall for fptrunc -> f16 operations. 2014-07-17 11:12:12 +00:00
LegalizeFloatTypes.cpp CodeGen: emit IR-level f16 conversion intrinsics as fptrunc/fpext 2014-07-21 09:13:56 +00:00
LegalizeIntegerTypes.cpp Replace the result usages while legalizing cmpxchg. 2014-07-21 17:33:44 +00:00
LegalizeTypes.cpp Make it possible for ints/floats to return different values from getBooleanContents() 2014-07-10 10:18:12 +00:00
LegalizeTypes.h ARM: support legalisation of "fptrunc ... to half" operations. 2014-07-18 13:01:19 +00:00
LegalizeTypesGeneric.cpp Fix ppcf128 component access on little-endian systems 2014-07-03 15:06:47 +00:00
LegalizeVectorOps.cpp [x86,SDAG] Introduce any- and sign-extend-vector-inreg nodes analogous 2014-07-10 12:32:32 +00:00
LegalizeVectorTypes.cpp [x86,SDAG] Introduce any- and sign-extend-vector-inreg nodes analogous 2014-07-10 12:32:32 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp Fix 'platform-specific' hyphenations 2014-06-30 18:57:16 +00:00
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp fixed typo 2014-07-14 18:21:07 +00:00
ScheduleDAGSDNodes.cpp
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp The hazard recognizer only needs a subtarget, not a target machine 2014-06-13 22:38:52 +00:00
SDNodeDbgValue.h
SelectionDAG.cpp Revert r.215058. 2014-08-12 05:35:26 +00:00
SelectionDAGBuilder.cpp CodeGen: emit IR-level f16 conversion intrinsics as fptrunc/fpext 2014-07-21 09:13:56 +00:00
SelectionDAGBuilder.h Fix 'platform-specific' hyphenations 2014-06-30 18:57:16 +00:00
SelectionDAGDumper.cpp CodeGen: extend f16 conversions to permit types > float. 2014-07-17 10:51:23 +00:00
SelectionDAGISel.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
SelectionDAGPrinter.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
TargetLowering.cpp SelectionDAG: Factor FP_TO_SINT lower code out of DAGLegalizer 2014-07-10 22:40:18 +00:00
TargetSelectionDAGInfo.cpp