AMDGPU: Directly select 16-bank LDS case of llvm.amdgcn.interp.p1.f16
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 1 Jan 2020 02:54:33 +0000 (21:54 -0500)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 29 Jan 2020 16:24:31 +0000 (08:24 -0800)
commit68b102b97ac340698e31ab5af0c4394a9789a49c
treefeae3b49eb34f2d9d21acb4186b39936e5c06dfb
parent0d7bd343127ee161a01a1509effba0fdd480c9e1
AMDGPU: Directly select 16-bank LDS case of llvm.amdgcn.interp.p1.f16

Manually select this is as a tablegen workraound. Both SelectionDAG
and GlobalISel end up misplacing the copy to m0 when both instructions
in the output need it. Neither considers that both output instructions
depend on m0. I don't know of any other pattern we need to handle this
case, so it's less effort to just workaround this for now.
llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/lib/Target/AMDGPU/VOP3Instructions.td