add a note
authorChris Lattner <sabre@nondot.org>
Fri, 25 Apr 2008 17:25:00 +0000 (17:25 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 25 Apr 2008 17:25:00 +0000 (17:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50267 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/README_ALTIVEC.txt

index 461b4123c79abe079471889458b3e43a41e3d610..1e4c6fb9844052a31a8b88e6cdb837f7b65d3aeb 100644 (file)
@@ -186,3 +186,26 @@ lowering would be:
 3. lvsl 0; splat index; vcmpeq to generate a select mask
 4. lvsl slot + x; vperm to rotate result into correct slot
 5. vsel result together.
+
+//===----------------------------------------------------------------------===//
+
+Should codegen branches on vec_any/vec_all to avoid mfcr.  Two examples:
+
+#include <altivec.h>
+ int f(vector float a, vector float b)
+ {
+  int aa = 0;
+  if (vec_all_ge(a, b))
+    aa |= 0x1;
+  if (vec_any_ge(a,b))
+    aa |= 0x2;
+  return aa;
+}
+
+vector float f(vector float a, vector float b) { 
+  if (vec_any_eq(a, b)) 
+    return a; 
+  else 
+    return b; 
+}
+