llvm-project/llvm/lib/Target/NVPTX
Bixia Zheng 6c21ccd245 [NVPTX] Fix the codegen for llvm.round.
Summary:
Previously, we translate llvm.round to PTX cvt.rni, which rounds to the
even interger when the source is equidistant between two integers. This
is not correct as llvm.round should round away from zero. This change
replaces llvm.round with a round away from zero implementation through
target specific custom lowering.

Modify a few affected tests to not check for cvt.rni. Instead, we check
for the use of a few constants used in implementing round. We are also
adding CUDA runnable tests to check for the values produced by
llvm.round to test-suites/External/CUDA.

Reviewers: tra

Subscribers: jholewinski, sanjoy, jlebar, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59947

llvm-svn: 357407
2019-04-01 16:10:26 +00:00
..
InstPrinter Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MCTargetDesc [NVPTX][DEBUGINFO]Temp workaround for crash of ptxas: disable packed bytes in debug sections. 2019-03-08 21:29:17 +00:00
TargetInfo Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [NVPTX] Allow libcalls that are defined in the current module. 2018-12-26 19:12:31 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ManagedStringPool.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTX.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTX.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXAllocaHoisting.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXAllocaHoisting.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXAsmPrinter.cpp [DEBUG_INFO][NVPTX]Emit empty .debug_loc section in presence of the debug option. 2019-03-08 20:08:04 +00:00
NVPTXAsmPrinter.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXAssignValidGlobalNames.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXFrameLowering.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXFrameLowering.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXGenericToNVVM.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXISelDAGToDAG.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXISelDAGToDAG.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXISelLowering.cpp [NVPTX] Fix the codegen for llvm.round. 2019-04-01 16:10:26 +00:00
NVPTXISelLowering.h [NVPTX] Fix the codegen for llvm.round. 2019-04-01 16:10:26 +00:00
NVPTXImageOptimizer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXInstrFormats.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXInstrInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXInstrInfo.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
NVPTXInstrInfo.td [NVPTX] Fix the codegen for llvm.round. 2019-04-01 16:10:26 +00:00
NVPTXIntrinsics.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXLowerAggrCopies.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXLowerAggrCopies.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXLowerAlloca.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXLowerArgs.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
NVPTXMCExpr.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXMCExpr.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXMachineFunctionInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXPeephole.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXPrologEpilogPass.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXProxyRegErasure.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXRegisterInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXRegisterInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXRegisterInfo.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXReplaceImageHandles.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXSubtarget.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXSubtarget.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXTargetMachine.cpp CodeGen: Refactor regallocator command line and target selection 2019-03-19 19:33:12 +00:00
NVPTXTargetMachine.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXTargetObjectFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXTargetTransformInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXTargetTransformInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXUtilities.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVPTXUtilities.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVVMIntrRange.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NVVMReflect.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
cl_common_defines.h