add a note
authorChris Lattner <sabre@nondot.org>
Mon, 6 Nov 2006 21:26:49 +0000 (21:26 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 6 Nov 2006 21:26:49 +0000 (21:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31477 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index 7285c1b0684a0adb151bd231b4aac0097617b59a..19bd9d137d57b98f1c8b1bad77c857cb796a0118 100644 (file)
@@ -287,6 +287,22 @@ unsigned int swap_32(unsigned int v) {
   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