From 7e885005ba2abf9e88a4ff6b0d7e6a542f04ba4e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 6 Nov 2006 21:26:49 +0000 Subject: [PATCH] add a note llvm-svn: 31477 --- llvm/lib/Target/README.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt index 7285c1b0684a..19bd9d137d57 100644 --- a/llvm/lib/Target/README.txt +++ b/llvm/lib/Target/README.txt @@ -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 ; [#uses=1] + %tmp2 = shr uint %tmp, ubyte 8 ; [#uses=1] + %tmp2 = cast uint %tmp2 to ushort ; [#uses=1] + %tmp5 = shl ushort %a, ubyte 8 ; [#uses=1] + %tmp6 = or ushort %tmp2, %tmp5 ; [#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