Skip to content

Commit 1786117

Browse files
author
Tim Renouf
committed
[AMDGPU] Allow FP inline constant in v_madak_f16 and v_fmaak_f16
Differential Revision: https://reviews.llvm.org/D67680 Change-Id: Ic38f47cb2079c2c1070a441b5943854844d80a7c llvm-svn: 372208
1 parent ef8ef12 commit 1786117

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

llvm/lib/Target/AMDGPU/VOP2Instructions.td

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,9 @@ multiclass VOP2eInstAliases<VOP2_Pseudo ps, VOP2_Real inst> {
251251

252252
class VOP_MADAK <ValueType vt> : VOPProfile <[vt, vt, vt, vt]> {
253253
field Operand ImmOpType = !if(!eq(vt.Size, 32), f32kimm, f16kimm);
254-
field dag Ins32 = (ins VCSrc_f32:$src0, VGPR_32:$src1, ImmOpType:$imm);
254+
field dag Ins32 = !if(!eq(vt.Size, 32),
255+
(ins VCSrc_f32:$src0, VGPR_32:$src1, ImmOpType:$imm),
256+
(ins VCSrc_f16:$src0, VGPR_32:$src1, ImmOpType:$imm));
255257
field bit HasExt = 0;
256258

257259
// Hack to stop printing _e64

llvm/test/CodeGen/AMDGPU/twoaddr-fma.mir

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,3 +181,23 @@ body: |
181181
%1 = V_FMAC_F32_e32 %stack.0, %0, %2, implicit $exec
182182
183183
...
184+
185+
# GCN-LABEL: name: test_fmaak_inline_literal_f16
186+
# GCN: %2:vgpr_32 = V_FMAAK_F16 16384, killed %0, 49664, implicit $exec
187+
188+
---
189+
name: test_fmaak_inline_literal_f16
190+
liveins:
191+
- { reg: '$vgpr0', virtual-reg: '%3' }
192+
body: |
193+
bb.0:
194+
liveins: $vgpr0
195+
196+
%3:vgpr_32 = COPY killed $vgpr0
197+
198+
%26:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec
199+
%28:vgpr_32 = V_FMAC_F16_e32 16384, killed %3, %26, implicit $exec
200+
S_ENDPGM 0
201+
202+
...
203+

llvm/test/CodeGen/AMDGPU/twoaddr-mad.mir

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,23 @@ body: |
188188
%1 = V_MAC_F32_e32 %stack.0, %0, %2, implicit $exec
189189
190190
...
191+
192+
# GCN-LABEL: name: test_madak_inline_literal_f16
193+
# GCN: %2:vgpr_32 = V_MADAK_F16 16384, killed %0, 49664, implicit $exec
194+
195+
---
196+
name: test_madak_inline_literal_f16
197+
liveins:
198+
- { reg: '$vgpr0', virtual-reg: '%3' }
199+
body: |
200+
bb.0:
201+
liveins: $vgpr0
202+
203+
%3:vgpr_32 = COPY killed $vgpr0
204+
205+
%26:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec
206+
%28:vgpr_32 = V_MAC_F16_e32 16384, killed %3, %26, implicit $exec
207+
S_ENDPGM 0
208+
209+
...
210+

0 commit comments

Comments
 (0)