summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/README_ALTIVEC.txt
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-04-16 01:37:57 +0000
committerChris Lattner <sabre@nondot.org>2006-04-16 01:37:57 +0000
commitf3f69decca93d2465957e5ebf1f64b20e2845967 (patch)
tree5f98afa5453fb0b01cc11072dcc608f2f65581af /lib/Target/PowerPC/README_ALTIVEC.txt
parent2efce0a589e2a688a1a06b5dc2ed0db32ae79924 (diff)
downloadllvm-f3f69decca93d2465957e5ebf1f64b20e2845967.tar.gz
llvm-f3f69decca93d2465957e5ebf1f64b20e2845967.tar.bz2
llvm-f3f69decca93d2465957e5ebf1f64b20e2845967.tar.xz
Implement a TODO: have the legalizer canonicalize a bunch of operations to
one type (v4i32) so that we don't have to write patterns for each type, and so that more CSE opportunities are exposed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27731 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/README_ALTIVEC.txt')
-rw-r--r--lib/Target/PowerPC/README_ALTIVEC.txt20
1 files changed, 2 insertions, 18 deletions
diff --git a/lib/Target/PowerPC/README_ALTIVEC.txt b/lib/Target/PowerPC/README_ALTIVEC.txt
index 3c928ad6bb..f5a7c17369 100644
--- a/lib/Target/PowerPC/README_ALTIVEC.txt
+++ b/lib/Target/PowerPC/README_ALTIVEC.txt
@@ -65,7 +65,7 @@ clobbered regs.
//===----------------------------------------------------------------------===//
-Implement passing/returning vectors by value.
+Implement passing vectors by value.
//===----------------------------------------------------------------------===//
@@ -75,7 +75,7 @@ of C1/C2/C3, then a load and vperm of Variable.
//===----------------------------------------------------------------------===//
We currently codegen SCALAR_TO_VECTOR as a store of the scalar to a 16-byte
-aligned stack slot, followed by a lve*x/vperm. We should probably just store it
+aligned stack slot, followed by a load/vperm. We should probably just store it
to a scalar stack slot, then use lvsl/vperm to load it. If the value is already
in memory, this is a huge win.
@@ -92,22 +92,6 @@ be constants. The verifier should enforce this constraint.
//===----------------------------------------------------------------------===//
-Instead of writting a pattern for type-agnostic operations (e.g. gen-zero, load,
-store, and, ...) in every supported type, make legalize do the work. We should
-have a canonical type that we want operations changed to (e.g. v4i32 for
-build_vector) and legalize should change non-identical types to thse. This is
-similar to what it does for operations that are only supported in some types,
-e.g. x86 cmov (not supported on bytes).
-
-This would fix two problems:
-1. Writing patterns multiple times.
-2. Identical operations in different types are not getting CSE'd.
-
-We already do this for shuffle and build_vector. We need load,undef,and,or,xor,
-etc.
-
-//===----------------------------------------------------------------------===//
-
Implement multiply for vector integer types, to avoid the horrible scalarized
code produced by legalize.