1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/test
Evan Cheng 7cfe7b71e6 Fix buggy fcopysign lowering.
This
define float @foo(float %x, float %y) nounwind readnone {
entry:
  %0 = tail call float @copysignf(float %x, float %y) nounwind readnone
  ret float %0
}

Was compiled to:
    vmov     s0, r1
    bic      r0, r0, #-2147483648
    vmov     s1, r0
    vcmpe.f32    s0, #0
    vmrs         apsr_nzcv, fpscr
    it           lt
    vneglt.f32   s1, s1
    vmov         r0, s1
    bx           lr

This fails to copy the sign of -0.0f because it's lost during the float to int
conversion. Also, it's sub-optimal when the inputs are in GPR registers.

Now it uses integer and + or operations when it's profitable. And it's correct!
    lsrs    r1, r1, #31
    bfi     r0, r1, #31, #1
    bx      lr
rdar://8984306

llvm-svn: 125357
2011-02-11 02:28:55 +00:00
..
Analysis Add another rdar number. 2011-01-24 17:54:01 +00:00
Archive
Assembler implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr. 2011-02-07 16:40:21 +00:00
Bindings/Ocaml
Bitcode
BugPoint
CodeGen Fix buggy fcopysign lowering. 2011-02-11 02:28:55 +00:00
DebugInfo
ExecutionEngine
Feature
FrontendAda Testcase for dragonegg commit 124128. 2011-01-24 18:04:33 +00:00
FrontendC Update llvm-gcc's tests. 2011-01-14 17:01:20 +00:00
FrontendC++ remove a small scattering of basically pointless tests. These are 2011-02-09 16:41:31 +00:00
FrontendFortran
FrontendObjC Update tests to accomodate unnamed_addr introduction. 2011-01-17 17:54:17 +00:00
FrontendObjC++
Integer
lib
Linker Correctly merge available_externally and regular definitions when they have 2011-02-01 05:33:52 +00:00
LLVMC
MC Do AsmMatcher operand classification per-opcode. 2011-02-10 00:08:28 +00:00
Object Revert "Object: Renable the tests now that none of the build bots complain about aliasing." 2011-01-21 06:27:04 +00:00
Other
Scripts
TableGen
Transforms Add a test for the LSR issue exposed by r125254. 2011-02-11 00:49:27 +00:00
Unit
Verifier
CMakeLists.txt
lit.cfg test/lit.cfg: Seek sane tools(and bash) in directories and set to $PATH. 2011-02-09 04:19:21 +00:00
lit.site.cfg.in CMake: Add the new option LLVM_LIT_TOOLS_DIR. It can specify "Path to GnuWin32 tools". 2011-02-09 04:18:58 +00:00
Makefile test/Makefile: "check-all" should update tools/clang/test/Unit/lit.site.cfg, too. Follow up to clang r124777. 2011-02-03 07:36:02 +00:00
Makefile.tests
site.exp.in
TestRunner.sh