GlobalISel: Handle llvm.roundeven
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Sun, 19 Jul 2020 13:56:15 +0000 (09:56 -0400)
committerMatt Arsenault <arsenm2@gmail.com>
Thu, 30 Jul 2020 00:01:12 +0000 (20:01 -0400)
commit0da582d9b6cc8a96682628ff90b5e0e5d155358c
tree436024898271e3b874a417eed1ca634afed08dd6
parent71059257bd4b9780ddf8de4248e415535d8dbbfe
GlobalISel: Handle llvm.roundeven

I still think it's highly questionable that we have two intrinsics
with identical behavior and only vary by the name of the libcall used
if it happens to be lowered that way, but try to reduce the feature
delta between SDAG and GlobalISel for recently added intrinsics. I'm
not sure which opcode should be considered the canonical one, but
lower roundeven back to round.
llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
llvm/include/llvm/Support/TargetOpcodes.def
llvm/include/llvm/Target/GenericOpcodes.td
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
llvm/lib/Target/X86/X86LegalizerInfo.cpp
llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/roundeven.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/GlobalISel/roundeven.ll [new file with mode: 0644]