Skip to content

Commit 9bfd75a

Browse files
committed
[AMDGPU][GISel] Incorporate review comments
1 parent 6b27e8f commit 9bfd75a

File tree

4 files changed

+1168
-138
lines changed

4 files changed

+1168
-138
lines changed

llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -947,7 +947,8 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
947947

948948
bool hasSALUFloat = ST->hasSALUFloatInsts();
949949

950-
addRulesForGOpcs({G_FADD, G_FMUL}, Standard)
950+
addRulesForGOpcs(
951+
{G_FADD, G_FMUL, G_STRICT_FADD, G_STRICT_FSUB, G_STRICT_FMUL}, Standard)
951952
.Uni(S16, {{UniInVgprS16}, {Vgpr16, Vgpr16}}, !hasSALUFloat)
952953
.Uni(S16, {{Sgpr16}, {Sgpr16, Sgpr16}}, hasSALUFloat)
953954
.Div(S16, {{Vgpr16}, {Vgpr16, Vgpr16}})
@@ -961,7 +962,9 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
961962
hasSALUFloat)
962963
.Div(V2S16, {{VgprV2S16}, {VgprV2S16, VgprV2S16}})
963964
.Any({{UniV2S32}, {{UniInVgprV2S32}, {VgprV2S32, VgprV2S32}}})
964-
.Any({{DivV2S32}, {{VgprV2S32}, {VgprV2S32, VgprV2S32}}});
965+
.Any({{DivV2S32}, {{VgprV2S32}, {VgprV2S32, VgprV2S32}}})
966+
.Any({{UniV2S64}, {{UniInVgprV2S64}, {VgprV2S64, VgprV2S64}}})
967+
.Any({{DivV2S64}, {{VgprV2S64}, {VgprV2S64, VgprV2S64}}});
965968

966969
// FNEG and FABS are either folded as source modifiers or can be selected as
967970
// bitwise XOR and AND with Mask. XOR and AND are available on SALU but for
@@ -999,20 +1002,6 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
9991002
.Any({{DivS1, S64}, {{Vcc}, {Vgpr64}}})
10001003
.Any({{UniS1, S64}, {{UniInVcc}, {Vgpr64}}});
10011004

1002-
addRulesForGOpcs({G_STRICT_FADD, G_STRICT_FSUB, G_STRICT_FMUL}, Standard)
1003-
.Uni(S16, {{UniInVgprS16}, {Vgpr16, Vgpr16}})
1004-
.Div(S16, {{Vgpr16}, {Vgpr16, Vgpr16}})
1005-
.Uni(S32, {{UniInVgprS32}, {Vgpr32, Vgpr32}})
1006-
.Div(S32, {{Vgpr32}, {Vgpr32, Vgpr32}})
1007-
.Uni(S64, {{UniInVgprS64}, {Vgpr64, Vgpr64}})
1008-
.Div(S64, {{Vgpr64}, {Vgpr64, Vgpr64}})
1009-
.Uni(V2S16, {{UniInVgprV2S16}, {VgprV2S16, VgprV2S16}})
1010-
.Div(V2S16, {{VgprV2S16}, {VgprV2S16, VgprV2S16}})
1011-
.Any({{UniV2S32}, {{UniInVgprV2S32}, {VgprV2S32, VgprV2S32}}})
1012-
.Any({{DivV2S32}, {{VgprV2S32}, {VgprV2S32, VgprV2S32}}})
1013-
.Any({{UniV2S64}, {{UniInVgprV2S64}, {VgprV2S64, VgprV2S64}}})
1014-
.Any({{DivV2S64}, {{VgprV2S64}, {VgprV2S64, VgprV2S64}}});
1015-
10161005
using namespace Intrinsic;
10171006

10181007
addRulesForIOpcs({amdgcn_s_getpc}).Any({{UniS64, _}, {{Sgpr64}, {None}}});

0 commit comments

Comments
 (0)