R600/SI: Define a separate MIMG instruction for each possible output value type
authorTom Stellard <thomas.stellard@amd.com>
Thu, 10 Oct 2013 17:11:24 +0000 (17:11 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 10 Oct 2013 17:11:24 +0000 (17:11 +0000)
commit0f9eaaa8aa10bdb658e887782b86f03dbea79cb1
tree1b06eb716b8934bcfcc7f104657cc3db65e3e5ab
parent219e788dc6e38120266d366a51286739fa33123b
R600/SI: Define a separate MIMG instruction for each possible output value type

During instruction selection, we rewrite the destination register
class for MIMG instructions based on their writemasks.  This creates
machine verifier errors since the new register class does not match
the register class in the MIMG instruction definition.

We can avoid this by defining different MIMG instructions for each
possible destination type and then switching to the correct instruction
when we change the register class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192365 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/AMDGPUInstrInfo.cpp
lib/Target/R600/AMDGPUInstrInfo.h
lib/Target/R600/SIISelLowering.cpp
lib/Target/R600/SIInstrInfo.td
lib/Target/R600/SIInstructions.td