Chromium Code Reviews| Index: src/IceTargetLoweringMIPS32.cpp | 
| diff --git a/src/IceTargetLoweringMIPS32.cpp b/src/IceTargetLoweringMIPS32.cpp | 
| index 6d6c6b9316f43f8e48f4e759d7493ea7a7eea595..e8ab8aa673e08dd3af60bc8edbe561823b952b68 100644 | 
| --- a/src/IceTargetLoweringMIPS32.cpp | 
| +++ b/src/IceTargetLoweringMIPS32.cpp | 
| @@ -2809,7 +2809,18 @@ void TargetMIPS32::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { | 
| return; | 
| } | 
| case Intrinsics::Ctlz: { | 
| - UnimplementedLoweringError(this, Instr); | 
| + auto *Src = Instr->getArg(0); | 
| + Type SrcTy = Src->getType(); | 
| 
 
Jim Stichnoth
2016/09/22 13:48:27
const Type
 
obucinac
2016/09/22 15:42:07
Done.
 
 | 
| + if (isScalarIntegerType(SrcTy)) { | 
| 
 
Jim Stichnoth
2016/09/22 13:48:27
This code seems a bit unbalanced - it appears to d
 
obucinac
2016/09/22 15:42:07
Done.
 
 | 
| + if (SrcTy == IceType_i64) { | 
| + UnimplementedLoweringError(this, Instr); | 
| + } else { | 
| + auto *DestR = legalizeToReg(Dest); | 
| 
 
Jim Stichnoth
2016/09/22 13:48:27
This doesn't seem right to me.  Dest shouldn't act
 
obucinac
2016/09/22 15:42:07
Done.
 
 | 
| + auto *SrcR = legalizeToReg(Src); | 
| + _clz(DestR, SrcR); | 
| + _mov(Dest, DestR); | 
| + } | 
| + } | 
| return; | 
| } | 
| case Intrinsics::Cttz: { |