From b33a42a21f3e44e12c291752dd2cdf3b5d5d65a2 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 18 Sep 2006 04:54:35 +0000 Subject: [PATCH] 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 --- lib/Target/README.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 695fcc8fa8e..e55513b395a 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; isize; i++) - reg->node[i].state ^= ((int) (1 << target)); + reg->node[i].state ^= Res & 0xFFFFFFFFULL; } else { for(i=0; isize; 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.