[llvm-commits] CVS: llvm/lib/Target/README.txt
Chris Lattner
sabre at nondot.org
Mon Nov 6 13:27:10 PST 2006
Changes in directory llvm/lib/Target:
README.txt updated: 1.45 -> 1.46
---
Log message:
add a note
---
Diffs of the changes: (+16 -0)
README.txt | 16 ++++++++++++++++
1 files changed, 16 insertions(+)
Index: llvm/lib/Target/README.txt
diff -u llvm/lib/Target/README.txt:1.45 llvm/lib/Target/README.txt:1.46
--- llvm/lib/Target/README.txt:1.45 Fri Nov 3 16:27:39 2006
+++ llvm/lib/Target/README.txt Mon Nov 6 15:26:49 2006
@@ -287,6 +287,22 @@
return v;
}
+Nor is this:
+
+ushort %bad(ushort %a) {
+entry:
+ %tmp = cast ushort %a to uint ; <uint> [#uses=1]
+ %tmp2 = shr uint %tmp, ubyte 8 ; <uint> [#uses=1]
+ %tmp2 = cast uint %tmp2 to ushort ; <ushort> [#uses=1]
+ %tmp5 = shl ushort %a, ubyte 8 ; <ushort> [#uses=1]
+ %tmp6 = or ushort %tmp2, %tmp5 ; <ushort> [#uses=1]
+ ret ushort %tmp6
+}
+
+unsigned short bad(unsigned short a) {
+ return ((a & 0xff00) >> 8 | (a & 0x00ff) << 8);
+}
+
//===---------------------------------------------------------------------===//
These should turn into single 16-bit (unaligned?) loads on little/big endian
More information about the llvm-commits
mailing list