[fast-isel] Fold "urem x, pow2" -> "and x, pow2-1". This should fix the 271%
[oota-llvm.git] / test / CodeGen / ARM / fast-isel.ll
index 905543a54cf5ecc71e40134749012cd06e6a8826..417e2d9e410ae035548049a74b730fb114fec10c 100644 (file)
@@ -217,3 +217,12 @@ entry:
 ; THUMB: vcmpe.f32 s0, #0
   ret i1 %4
 }
+
+; ARM: @urem_fold
+; THUMB: @urem_fold
+; ARM: and r0, r0, #31
+; THUMB: and r0, r0, #31
+define i32 @urem_fold(i32 %a) nounwind {
+  %rem = urem i32 %a, 32
+  ret i32 %rem
+}