[PATCH] D67680: [AMDGPU] Allow FP inline constant in v_madak_f16 and v_fmaak_f16

Tim Renouf via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 18 02:30:49 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL372208: [AMDGPU] Allow FP inline constant in v_madak_f16 and v_fmaak_f16 (authored by tpr, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D67680?vs=220575&id=220635#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67680/new/

https://reviews.llvm.org/D67680

Files:
  llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td
  llvm/trunk/test/CodeGen/AMDGPU/twoaddr-fma.mir
  llvm/trunk/test/CodeGen/AMDGPU/twoaddr-mad.mir


Index: llvm/trunk/test/CodeGen/AMDGPU/twoaddr-mad.mir
===================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/twoaddr-mad.mir
+++ llvm/trunk/test/CodeGen/AMDGPU/twoaddr-mad.mir
@@ -188,3 +188,23 @@
     %1 = V_MAC_F32_e32 %stack.0, %0, %2, implicit $exec
 
 ...
+
+# GCN-LABEL: name: test_madak_inline_literal_f16
+# GCN: %2:vgpr_32 = V_MADAK_F16 16384, killed %0, 49664, implicit $exec
+
+---
+name:            test_madak_inline_literal_f16
+liveins:
+  - { reg: '$vgpr0', virtual-reg: '%3' }
+body:             |
+  bb.0:
+    liveins: $vgpr0
+  
+    %3:vgpr_32 = COPY killed $vgpr0
+
+    %26:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec
+    %28:vgpr_32 = V_MAC_F16_e32 16384, killed %3, %26, implicit $exec
+    S_ENDPGM 0
+
+...
+
Index: llvm/trunk/test/CodeGen/AMDGPU/twoaddr-fma.mir
===================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/twoaddr-fma.mir
+++ llvm/trunk/test/CodeGen/AMDGPU/twoaddr-fma.mir
@@ -181,3 +181,23 @@
     %1 = V_FMAC_F32_e32 %stack.0, %0, %2, implicit $exec
 
 ...
+
+# GCN-LABEL: name: test_fmaak_inline_literal_f16
+# GCN: %2:vgpr_32 = V_FMAAK_F16 16384, killed %0, 49664, implicit $exec
+
+---
+name:            test_fmaak_inline_literal_f16
+liveins:
+  - { reg: '$vgpr0', virtual-reg: '%3' }
+body:             |
+  bb.0:
+    liveins: $vgpr0
+  
+    %3:vgpr_32 = COPY killed $vgpr0
+
+    %26:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec
+    %28:vgpr_32 = V_FMAC_F16_e32 16384, killed %3, %26, implicit $exec
+    S_ENDPGM 0
+
+...
+
Index: llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td
===================================================================
--- llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td
+++ llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td
@@ -251,7 +251,9 @@
 
 class VOP_MADAK <ValueType vt> : VOPProfile <[vt, vt, vt, vt]> {
   field Operand ImmOpType = !if(!eq(vt.Size, 32), f32kimm, f16kimm);
-  field dag Ins32 = (ins VCSrc_f32:$src0, VGPR_32:$src1, ImmOpType:$imm);
+  field dag Ins32 = !if(!eq(vt.Size, 32),
+                        (ins VCSrc_f32:$src0, VGPR_32:$src1, ImmOpType:$imm),
+                        (ins VCSrc_f16:$src0, VGPR_32:$src1, ImmOpType:$imm));
   field bit HasExt = 0;
 
   // Hack to stop printing _e64


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67680.220635.patch
Type: text/x-patch
Size: 2299 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190918/9becfba8/attachment.bin>


More information about the llvm-commits mailing list