This is closer to what we really want.
authorChris Lattner <sabre@nondot.org>
Mon, 18 Sep 2006 04:54:35 +0000 (04:54 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 18 Sep 2006 04:54:35 +0000 (04:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30451 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index 695fcc8fa8ea75da78994b1b9500e3f0fa3c10a5..e55513b395acfa5ed511646ee94849ee6a450f60 100644 (file)
@@ -260,12 +260,13 @@ quantum_sigma_x in 462.libquantum contains the following loop:
 Where MAX_UNSIGNED/state is a 64-bit int.  On a 32-bit platform it would be just
 so cool to turn it into something like:
 
+   long long Res = ((MAX_UNSIGNED) 1 << target);
    if (target < 32) {
      for(i=0; i<reg->size; i++)
-       reg->node[i].state ^= ((int) (1 << target));
+       reg->node[i].state ^= Res & 0xFFFFFFFFULL;
    } else {
      for(i=0; i<reg->size; i++)
-       reg->node[i].state ^= (long long)((int) (1 << (target-32))) << 32;
+       reg->node[i].state ^= Res & 0xFFFFFFFF00000000ULL
    }
    
 ... which would only do one 32-bit XOR per loop iteration instead of two.