Skip to content

Commit 2120748

Browse files
committed
GlobalISel: Add buildFMA to MachineIRBuilder
llvm-svn: 360888
1 parent 828b685 commit 2120748

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,6 +1268,12 @@ class MachineIRBuilder {
12681268
return buildInstr(TargetOpcode::G_FSUB, {Dst}, {Src0, Src1});
12691269
}
12701270

1271+
/// Build and insert \p Res = G_FMA \p Op0, \p Op1, \p Op2
1272+
MachineInstrBuilder buildFMA(const DstOp &Dst, const SrcOp &Src0,
1273+
const SrcOp &Src1, const SrcOp &Src2) {
1274+
return buildInstr(TargetOpcode::G_FMA, {Dst}, {Src0, Src1, Src2});
1275+
}
1276+
12711277
/// Build and insert \p Res = G_FNEG \p Op0
12721278
MachineInstrBuilder buildFNeg(const DstOp &Dst, const SrcOp &Src0) {
12731279
return buildInstr(TargetOpcode::G_FNEG, {Dst}, {Src0});

llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,18 @@ TEST_F(GISelMITest, TestBuildFPInsts) {
127127

128128
B.buildFAdd(S64, Copies[0], Copies[1]);
129129
B.buildFSub(S64, Copies[0], Copies[1]);
130+
B.buildFMA(S64, Copies[0], Copies[1], Copies[2]);
130131
B.buildFNeg(S64, Copies[0]);
131132
B.buildFAbs(S64, Copies[0]);
132133
B.buildFCopysign(S64, Copies[0], Copies[1]);
133134

134135
auto CheckStr = R"(
135136
; CHECK: [[COPY0:%[0-9]+]]:_(s64) = COPY $x0
136137
; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1
138+
; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
137139
; CHECK: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[COPY0]]:_, [[COPY1]]:_
138140
; CHECK: [[FSUB:%[0-9]+]]:_(s64) = G_FSUB [[COPY0]]:_, [[COPY1]]:_
141+
; CHECK: [[FMA:%[0-9]+]]:_(s64) = G_FMA [[COPY0]]:_, [[COPY1]]:_, [[COPY2]]:_
139142
; CHECK: [[FNEG:%[0-9]+]]:_(s64) = G_FNEG [[COPY0]]:_
140143
; CHECK: [[FABS:%[0-9]+]]:_(s64) = G_FABS [[COPY0]]:_
141144
; CHECK: [[FCOPYSIGN:%[0-9]+]]:_(s64) = G_FCOPYSIGN [[COPY0]]:_, [[COPY1]]:_

0 commit comments

Comments
 (0)