aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-09-18 04:54:35 +0000
committerChris Lattner <sabre@nondot.org>2006-09-18 04:54:35 +0000
commitb33a42a21f3e44e12c291752dd2cdf3b5d5d65a2 (patch)
tree7320407e2a3083b53289ae2e8e7511f00b41dc95
parentb7363791edfbbc017fd6670c20682aca9f2c543a (diff)
This is closer to what we really want.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30451 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/README.txt5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt
index 695fcc8fa8..e55513b395 100644
--- a/lib/Target/README.txt
+++ b/lib/Target/README.txt
@@ -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.