[PATCH] D52559: [AMDGPU] Divergence driven instruction selection. Shift operations.

Alexander via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 27 09:50:29 PDT 2018


alex-t added inline comments.


================
Comment at: lib/Target/AMDGPU/VOP3Instructions.td:587
+    VOP3e_si <op, !cast<VOP3_Pseudo>(NAME).Pfl> {
+      // Hack to stop printing _e64
+      VOP3_Pseudo ps = !cast<VOP3_Pseudo>(NAME);
----------------
rampitec wrote:
> alex-t wrote:
> > rampitec wrote:
> > > Does it really belong to this patch?
> > Sure it does. As soon as I start selecting this _b64  the LIT tests failed because of the odd "_e64" suffix printed by AMDGPUInstrPrinter. It prints it for all with VOP3 flag.
> > The flag was not set before this change because the instructions were created in moveToVALU.  
> > I filed the bug https://bugs.llvm.org/show_bug.cgi?id=39086 for adding the flag to indicate that the instruction does not have 32bit encoding.
> > 
> How can it be possible for moveToVALU to create a VOP3 instruction without a VOP3 flag?
> VOP3_Pseudo sets VOP3 flag. InstSI copies it into TSFlags. VOP3_Real copies TSFlags from a pseudo.
InstSI copies VOP3 to TSFlags and your code checks exactly TSFlags & SIInstrFlags::VOP3


https://reviews.llvm.org/D52559





More information about the llvm-commits mailing list