this is done, tested by CodeGen/ARM/iabs.ll
authorChris Lattner <sabre@nondot.org>
Mon, 8 Feb 2010 23:48:10 +0000 (23:48 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 8 Feb 2010 23:48:10 +0000 (23:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95609 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/README.txt

index a6f26a5dfe1954d7f3fc66158391aa10959d0fd3..9efb5a1426a5a87bd4ae5a3b8968efbc03c9a826 100644 (file)
@@ -71,26 +71,6 @@ were disabled due to badness with the ARM carry flag on subtracts.
 
 //===---------------------------------------------------------------------===//
 
-We currently compile abs:
-int foo(int p) { return p < 0 ? -p : p; }
-
-into:
-
-_foo:
-        rsb r1, r0, #0
-        cmn r0, #1
-        movgt r1, r0
-        mov r0, r1
-        bx lr
-
-This is very, uh, literal.  This could be a 3 operation sequence:
-  t = (p sra 31); 
-  res = (p xor t)-t
-
-Which would be better.  This occurs in png decode.
-
-//===---------------------------------------------------------------------===//
-
 More load / store optimizations:
 1) Better representation for block transfer? This is from Olden/power: