Skip to content

Commit 970c521

Browse files
committed
re-enable bf16
1 parent 18dd289 commit 970c521

File tree

1 file changed

+0
-28
lines changed

1 file changed

+0
-28
lines changed

llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -296,21 +296,8 @@ void IRTranslator::addMachineCFGPred(CFGEdge Edge, MachineBasicBlock *NewPred) {
296296
MachinePreds[Edge].push_back(NewPred);
297297
}
298298

299-
static bool containsBF16Type(const User &U) {
300-
// BF16 cannot currently be represented by LLT, to avoid miscompiles we
301-
// prevent any instructions using them. FIXME: This can be removed once LLT
302-
// supports bfloat.
303-
return U.getType()->getScalarType()->isBFloatTy() ||
304-
any_of(U.operands(), [](Value *V) {
305-
return V->getType()->getScalarType()->isBFloatTy();
306-
});
307-
}
308-
309299
bool IRTranslator::translateBinaryOp(unsigned Opcode, const User &U,
310300
MachineIRBuilder &MIRBuilder) {
311-
if (containsBF16Type(U))
312-
return false;
313-
314301
// Get or create a virtual register for each value.
315302
// Unless the value is a Constant => loadimm cst?
316303
// or inline constant each time?
@@ -330,9 +317,6 @@ bool IRTranslator::translateBinaryOp(unsigned Opcode, const User &U,
330317

331318
bool IRTranslator::translateUnaryOp(unsigned Opcode, const User &U,
332319
MachineIRBuilder &MIRBuilder) {
333-
if (containsBF16Type(U))
334-
return false;
335-
336320
Register Op0 = getOrCreateVReg(*U.getOperand(0));
337321
Register Res = getOrCreateVReg(U);
338322
uint32_t Flags = 0;
@@ -350,9 +334,6 @@ bool IRTranslator::translateFNeg(const User &U, MachineIRBuilder &MIRBuilder) {
350334

351335
bool IRTranslator::translateCompare(const User &U,
352336
MachineIRBuilder &MIRBuilder) {
353-
if (containsBF16Type(U))
354-
return false;
355-
356337
auto *CI = cast<CmpInst>(&U);
357338
Register Op0 = getOrCreateVReg(*U.getOperand(0));
358339
Register Op1 = getOrCreateVReg(*U.getOperand(1));
@@ -2660,9 +2641,6 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
26602641

26612642
bool IRTranslator::translateInlineAsm(const CallBase &CB,
26622643
MachineIRBuilder &MIRBuilder) {
2663-
if (containsBF16Type(CB))
2664-
return false;
2665-
26662644
const InlineAsmLowering *ALI = MF->getSubtarget().getInlineAsmLowering();
26672645

26682646
if (!ALI) {
@@ -2751,9 +2729,6 @@ bool IRTranslator::translateCallBase(const CallBase &CB,
27512729
}
27522730

27532731
bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
2754-
if (containsBF16Type(U))
2755-
return false;
2756-
27572732
const CallInst &CI = cast<CallInst>(U);
27582733
auto TII = MF->getTarget().getIntrinsicInfo();
27592734
const Function *F = CI.getCalledFunction();
@@ -3389,9 +3364,6 @@ bool IRTranslator::translateAtomicCmpXchg(const User &U,
33893364

33903365
bool IRTranslator::translateAtomicRMW(const User &U,
33913366
MachineIRBuilder &MIRBuilder) {
3392-
if (containsBF16Type(U))
3393-
return false;
3394-
33953367
const AtomicRMWInst &I = cast<AtomicRMWInst>(U);
33963368
auto Flags = TLI->getAtomicMemOperandFlags(I, *DL);
33973369

0 commit comments

Comments
 (0)