AMDGPU: Legalize the operand of SI_INIT_M0
authorNicolai Haehnle <nhaehnle@gmail.com>
Fri, 20 Apr 2018 07:14:25 +0000 (07:14 +0000)
committerNicolai Haehnle <nhaehnle@gmail.com>
Fri, 20 Apr 2018 07:14:25 +0000 (07:14 +0000)
commit7a87977fb21cc30561a00ff8d4914b5a53ad9eca
treeece61ab2cfe2f3ced31bc8e69c4fc676ce1e11b4
parent793af3b9f0a765912a1a27c473b6514c8108ddca
AMDGPU: Legalize the operand of SI_INIT_M0

Summary:
This fixes a case where the argument to a sendmsg intrinsic
ends up in a VGPR, for whatever reason.

The underlying performance issue is that a multiplication that
can be an s_mul_i32 is instead needlessly generated as
v_mul_u32_u24, but this is not addressed by this patch.

Change-Id: I61fd4034314d5acdf6074632c30b65364dfa7328

Reviewers: arsenm, rampitec

Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits

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

llvm-svn: 330393
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.ll