summaryrefslogtreecommitdiff
path: root/lib/Target/Alpha/README.txt
diff options
context:
space:
mode:
authorAndrew Lenharth <andrewl@lenharth.org>2006-06-04 00:25:51 +0000
committerAndrew Lenharth <andrewl@lenharth.org>2006-06-04 00:25:51 +0000
commita5cc38bcbda5977d130837bff04f60c61ddee29f (patch)
tree997a85fb4df43c1226b670863e797a7454f1e431 /lib/Target/Alpha/README.txt
parent9e1c1ddd4b514731236c0c24184ae194fb4d3706 (diff)
downloadllvm-a5cc38bcbda5977d130837bff04f60c61ddee29f.tar.gz
llvm-a5cc38bcbda5977d130837bff04f60c61ddee29f.tar.bz2
llvm-a5cc38bcbda5977d130837bff04f60c61ddee29f.tar.xz
ignore ordered/unordered for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28679 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Alpha/README.txt')
-rw-r--r--lib/Target/Alpha/README.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/Target/Alpha/README.txt b/lib/Target/Alpha/README.txt
new file mode 100644
index 0000000000..2d1909a42c
--- /dev/null
+++ b/lib/Target/Alpha/README.txt
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Fix Ordered/Unordered FP stuff
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+improve bytezap opertunities
+ulong %foo(ulong %y) {
+entry:
+ %tmp = and ulong %y, 65535
+ %tmp2 = shr ulong %tmp, ubyte 3
+ ret ulong %tmp2
+}
+
+
+compiles to a 3 instruction sequence without instcombine
+ zapnot $16,3,$0
+ srl $0,3,$0
+ ret $31,($26),1
+
+After instcombine you get
+ulong %foo(ulong %y) {
+entry:
+ %tmp = shr ulong %y, ubyte 3 ; <ulong> [#uses=1]
+ %tmp2 = and ulong %tmp, 8191 ; <ulong> [#uses=1]
+ ret ulong %tmp2
+}
+
+which compiles to
+ lda $0,8191($31)
+ srl $16,3,$1
+ and $1,$0,$0
+ ret $31,($26),1
+