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 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits