Loading llvm/lib/Target/RISCV/RISCVInstrInfo.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -1614,9 +1614,18 @@ void RISCVInstrInfo::setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2, MachineInstr &NewMI1, MachineInstr &NewMI2) const { // Propagate FP flags from the original instructions. // But clear poison-generating flags because those may not be valid now. uint32_t IntersectedFlags = OldMI1.getFlags() & OldMI2.getFlags(); NewMI1.setFlags(IntersectedFlags); NewMI1.clearFlag(MachineInstr::MIFlag::NoSWrap); NewMI1.clearFlag(MachineInstr::MIFlag::NoUWrap); NewMI1.clearFlag(MachineInstr::MIFlag::IsExact); NewMI2.setFlags(IntersectedFlags); NewMI2.clearFlag(MachineInstr::MIFlag::NoSWrap); NewMI2.clearFlag(MachineInstr::MIFlag::NoUWrap); NewMI2.clearFlag(MachineInstr::MIFlag::IsExact); } void RISCVInstrInfo::finalizeInsInstrs( Loading Loading
llvm/lib/Target/RISCV/RISCVInstrInfo.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -1614,9 +1614,18 @@ void RISCVInstrInfo::setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2, MachineInstr &NewMI1, MachineInstr &NewMI2) const { // Propagate FP flags from the original instructions. // But clear poison-generating flags because those may not be valid now. uint32_t IntersectedFlags = OldMI1.getFlags() & OldMI2.getFlags(); NewMI1.setFlags(IntersectedFlags); NewMI1.clearFlag(MachineInstr::MIFlag::NoSWrap); NewMI1.clearFlag(MachineInstr::MIFlag::NoUWrap); NewMI1.clearFlag(MachineInstr::MIFlag::IsExact); NewMI2.setFlags(IntersectedFlags); NewMI2.clearFlag(MachineInstr::MIFlag::NoSWrap); NewMI2.clearFlag(MachineInstr::MIFlag::NoUWrap); NewMI2.clearFlag(MachineInstr::MIFlag::IsExact); } void RISCVInstrInfo::finalizeInsInstrs( Loading