Add all of the data stream intrinsics and instructions. woo
[oota-llvm.git] / lib / Target / PowerPC / README_ALTIVEC.txt
index 5aca1f4c3ce45ec42ba5124d3e546311da271214..78505120f7cd48b512b0de8cf52634f7599cd28d 100644 (file)
@@ -47,20 +47,20 @@ altivec instructions.  Examples
 
 //===----------------------------------------------------------------------===//
 
-Missing intrinsics:
-
-ds*
-mf*
-vavg*
-vmax*
-vmin*
-vmladduhm
-vmr*
-vsel (some aliases only accessible using builtins)
+FABS/FNEG can be codegen'd with the appropriate and/xor of -0.0.
 
 //===----------------------------------------------------------------------===//
 
-FABS/FNEG can be codegen'd with the appropriate and/xor of -0.0.
+Codegen the constant here with something better than a constant pool load.
+
+void %test_f(<4 x float>* %P, <4 x float>* %Q, float %X) {
+        %tmp = load <4 x float>* %Q
+        %tmp = cast <4 x float> %tmp to <4 x int>
+        %tmp1 = and <4 x int> %tmp, < int 2147483647, int 2147483647, int 2147483647, int 2147483647 > 
+        %tmp2 = cast <4 x int> %tmp1 to <4 x float>
+        store <4 x float> %tmp2, <4 x float>* %P
+        ret void
+}
 
 //===----------------------------------------------------------------------===//
 
@@ -143,3 +143,7 @@ void test(vector int *X, vector int *Y) {
 }
 
 //===----------------------------------------------------------------------===//
+
+Lower "merges" in the front-end to shuffles, reconstruct in the backend.
+
+//===----------------------------------------------------------------------===//