Kill ModuleProvider and ghost linkage by inverting the relationship between
[oota-llvm.git] / 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; 
+}
+