add a note
authorChris Lattner <sabre@nondot.org>
Wed, 9 Jan 2008 00:17:57 +0000 (00:17 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 9 Jan 2008 00:17:57 +0000 (00:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45766 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index e6178894afedecfb8172d4bd0923fd27b2211f39..b331acf0320795e9b66c078a6d6bfb6f0e5de53a 100644 (file)
@@ -524,3 +524,24 @@ Investigate lowering of sparse switch statements into perfect hash tables:
 http://burtleburtle.net/bob/hash/perfect.html
 
 //===---------------------------------------------------------------------===//
+
+We should turn things like "load+fabs+store" and "load+fneg+store" into the
+corresponding integer operations.  On a yonah, this loop:
+
+double a[256];
+ for (b = 0; b < 10000000; b++)
+ for (i = 0; i < 256; i++)
+   a[i] = -a[i];
+
+is twice as slow as this loop:
+
+long long a[256];
+ for (b = 0; b < 10000000; b++)
+ for (i = 0; i < 256; i++)
+   a[i] ^= (1ULL << 63);
+
+and I suspect other processors are similar.  On X86 in particular this is a
+big win because doing this with integers allows the use of read/modify/write
+instructions.
+
+//===---------------------------------------------------------------------===//