Skip to content

Commit 28b8610

Browse files
committed
re-enable bf16
1 parent bc27f5d commit 28b8610

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));
@@ -2665,9 +2646,6 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
26652646

26662647
bool IRTranslator::translateInlineAsm(const CallBase &CB,
26672648
MachineIRBuilder &MIRBuilder) {
2668-
if (containsBF16Type(CB))
2669-
return false;
2670-
26712649
const InlineAsmLowering *ALI = MF->getSubtarget().getInlineAsmLowering();
26722650

26732651
if (!ALI) {
@@ -2756,9 +2734,6 @@ bool IRTranslator::translateCallBase(const CallBase &CB,
27562734
}
27572735

27582736
bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
2759-
if (containsBF16Type(U))
2760-
return false;
2761-
27622737
const CallInst &CI = cast<CallInst>(U);
27632738
auto TII = MF->getTarget().getIntrinsicInfo();
27642739
const Function *F = CI.getCalledFunction();
@@ -3394,9 +3369,6 @@ bool IRTranslator::translateAtomicCmpXchg(const User &U,
33943369

33953370
bool IRTranslator::translateAtomicRMW(const User &U,
33963371
MachineIRBuilder &MIRBuilder) {
3397-
if (containsBF16Type(U))
3398-
return false;
3399-
34003372
const AtomicRMWInst &I = cast<AtomicRMWInst>(U);
34013373
auto Flags = TLI->getAtomicMemOperandFlags(I, *DL);
34023374

0 commit comments

Comments
 (0)