Skip to content

Commit 7b63199

Browse files
committed
Fix subtle bug with type retrieval for relational operators.
1 parent 918ae93 commit 7b63199

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2104,10 +2104,9 @@ void addInstrRequirements(const MachineInstr &MI,
21042104
case SPIRV::OpFUnordLessThanEqual:
21052105
case SPIRV::OpFUnordGreaterThan:
21062106
case SPIRV::OpFUnordGreaterThanEqual: {
2107-
const SPIRVSubtarget &ST = MI.getMF()->getSubtarget<SPIRVSubtarget>();
2108-
SPIRVGlobalRegistry *GR = ST.getSPIRVGlobalRegistry();
2109-
SPIRVType *TypeDef = GR->getSPIRVTypeForVReg(MI.getOperand(2).getReg());
21102107
const MachineRegisterInfo &MRI = MI.getMF()->getRegInfo();
2108+
MachineInstr *OperandDef = MRI.getVRegDef(MI.getOperand(2).getReg());
2109+
SPIRVType *TypeDef = MRI.getVRegDef(OperandDef->getOperand(1).getReg());
21112110
if (TypeDef->getOpcode() == SPIRV::OpTypeVector)
21122111
TypeDef = MRI.getVRegDef(TypeDef->getOperand(1).getReg());
21132112
if (isBFloat16Type(TypeDef)) {

0 commit comments

Comments
 (0)