diff options
Diffstat (limited to 'lib/CodeGen/GlobalISel/IRTranslator.cpp')
| -rw-r--r-- | lib/CodeGen/GlobalISel/IRTranslator.cpp | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/CodeGen/GlobalISel/IRTranslator.cpp b/lib/CodeGen/GlobalISel/IRTranslator.cpp index dccd8e0706ca..239bad2f5355 100644 --- a/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -582,7 +582,7 @@ bool IRTranslator::translateOverflowIntrinsic(const CallInst &CI, unsigned Op,      MIB.addUse(Zero);    } -  MIRBuilder.buildSequence(getOrCreateVReg(CI), Res, 0, Overflow, Width); +  MIRBuilder.buildSequence(getOrCreateVReg(CI), {Res, Overflow}, {0, Width});    return true;  } @@ -686,6 +686,13 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,          .addUse(getOrCreateVReg(*CI.getArgOperand(0)))          .addUse(getOrCreateVReg(*CI.getArgOperand(1)));      return true; +  case Intrinsic::fma: +    MIRBuilder.buildInstr(TargetOpcode::G_FMA) +        .addDef(getOrCreateVReg(CI)) +        .addUse(getOrCreateVReg(*CI.getArgOperand(0))) +        .addUse(getOrCreateVReg(*CI.getArgOperand(1))) +        .addUse(getOrCreateVReg(*CI.getArgOperand(2))); +    return true;    case Intrinsic::memcpy:    case Intrinsic::memmove:    case Intrinsic::memset:  | 
