Add strchr(p, 0) -> p + strlen(p) to SimplifyLibCalls
[oota-llvm.git] / test / Transforms / InstCombine / strchr-1.ll
index d2c989462156f5ad80b9fa842e691538ae38d6ad..66b3e2e51c7abeaf8668f6163cd49e1d5e6f014b 100644 (file)
@@ -63,3 +63,16 @@ define void @test_simplify5() {
   store i8* %dst, i8** @chp
   ret void
 }
+
+; Check transformation strchr(p, 0) -> p + strlen(p)
+define void @test_simplify6(i8* %str) {
+; CHECK: %strlen = call i32 @strlen(i8* %str)
+; CHECK-NOT: call i8* @strchr
+; CHECK: %strchr = getelementptr i8* %str, i32 %strlen
+; CHECK: store i8* %strchr, i8** @chp, align 4
+; CHECK: ret void
+
+  %dst = call i8* @strchr(i8* %str, i32 0)
+  store i8* %dst, i8** @chp
+  ret void
+}