aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/README.txt')
-rw-r--r--lib/Target/README.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt
index 8077680..650eabf 100644
--- a/lib/Target/README.txt
+++ b/lib/Target/README.txt
@@ -251,3 +251,22 @@ void %test(uint* %P) {
ret void
}
+//===---------------------------------------------------------------------===//
+
+dag/inst combine "clz(x)>>5 -> x==0" for 32-bit x.
+
+Compile:
+
+int bar(int x)
+{
+ int t = __builtin_clz(x);
+ return -(t>>5);
+}
+
+to:
+
+_bar: addic r3,r3,-1
+ subfe r3,r3,r3
+ blr
+
+