Bad code is generated for mpfr_impl.h compare at line 1430. Due to this,
mpfr_asinh is producing wrong values for some inputs.

Original testcase involves random values so created a reduced case. With
the test case attached, even though _err1 is -38, "if condition" is
evaluated true. Following is the disassembly. Working is -O1
-fno-if-conversion. and Not working is -O1.

/* C Code */
    if (_err1 > 0)
      {

/* working code */
        cmp     r3, #0
        ble     .L6

/* not working code*/
        .loc 1 67 0
        movs    r3, r3, asl #1

The patch which is causing this regression seems to be
http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00861.html

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1232017

Title:
  [regression] mpfr tasinh test doesn't terminate when built with Linaro
  GCC 4.8 on armhf

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc-linaro/+bug/1232017/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to