new note
authorChris Lattner <sabre@nondot.org>
Wed, 13 Sep 2006 03:54:54 +0000 (03:54 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 13 Sep 2006 03:54:54 +0000 (03:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30285 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README.txt

index 8994569ea9c4f2d6bde3ed89e53bacc41995e220..5e2ab199ad25b50b9dce89d5c64da6d66247461a 100644 (file)
@@ -45,6 +45,19 @@ http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01136.html
 
 Another useful one would be  ~0ULL >> X and ~0ULL << X.
 
+One better solution for 1LL << x is:
+        xorl    %eax, %eax
+        xorl    %edx, %edx
+        testb   $32, %cl
+        sete    %al
+        setne   %dl
+        sall    %cl, %eax
+        sall    %cl, %edx
+
+But that requires good 8-bit subreg support.
+
+
+
 //===---------------------------------------------------------------------===//
 
 Compile this: