This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: SSE sin and cos for x86 and x86_64


Ping.

SSE2 sin and cos patches (up to 10 times faster) are waiting for
review and my patch with new test cases as well.
I've attached all 3 again (the same as last time)

#1
2012-08-16  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

          * math/libm-test.inc: Update
          Add new test cases in large arguments path.

#2
2012-08-13  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

         * sysdeps/i386/i686/fpu/multiarch/Makefile: Update
         (sysdep_routines): Add s_sinf-sse2, s_conf-sse2

         * sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: New file
         * sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: New file
         * sysdeps/i386/i686/fpu/multiarch/s_sinf.c: New file
         * sysdeps/i386/i686/fpu/multiarch/s_cosf.c: New file
         * sysdeps/ieee754/flt-32/s_sinf.c: Update
         (SINF): Add macro for using routine as __sinf_ia32
         * sysdeps/ieee754/flt-32/s_cosf.c: Update
         (COSF): Add macro for using routine as __cosf_ia32

         * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Fix Copyright
         * sysdeps/i386/i686/fpu/multiarch/e_expf.c: Fix Copyright

#3
2012-08-15  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

       * sysdeps/x86_64/fpu/s_sinf.S: New file.
       * sysdeps/x86_64/fpu/s_cosf.S: New file.
       * sysdeps/x86_64/fpu/libm-test-ulps: Update.

--
Liubov Dmitrieva
Intel Corporation

2012/8/16 Dmitrieva Liubov <liubov.dmitrieva@gmail.com>:
> False alarm. Our functions work correctly.
>
> But anyway I have a separate patch for adding that test cases to "make
> check" (attached).
> It does not reveal new fails in current GLIBC, but several 1-ulp new
> errors on IA.
> And it does not reveal new fails in our new sinf/cosf  functions (and
> no 1-ulp new errors)
>
>
> 2012-08-16  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>
>
>          * math/libm-test.inc: Update
>          Add new test cases in large arguments path.
>
>
> So, no need to fix here, both patches are ok.
>
> The latest version were attached to:
> http://sourceware.org/ml/libc-alpha/2012-08/msg00267.html
> http://sourceware.org/ml/libc-alpha/2012-08/msg00265.html
>
> --
> Liubov Dmitrieva
>
> 2012/8/15 Joseph S. Myers <joseph@codesourcery.com>:
>> On Wed, 15 Aug 2012, Dmitrieva Liubov wrote:
>>
>>> > This code is wrong. You cannot perform argument reduction for large
>>> > arguments by using a single, double, or even extended-precision
>>> > approximation for pi.
>>>
>>> Yes, that's wrong in x86_32 version and will be fixed but 64 bit
>>> version looks ok.
>>
>> If that didn't get detected by the testsuite, I suppose we should add
>> 0x1p+120 (or some such value that detects the problem) to the tests for
>> cos and sin in libm-test.inc.  (The larest float value for cos in the
>> testsuite is 0x1p65; sin also tests 0x1.7f4134p+103.)
>>
>> --
>> Joseph S. Myers
>> joseph@codesourcery.com

Attachment: new_test_cases.patch
Description: Binary data

Attachment: sinf_cosf_x86_32.patch
Description: Binary data

Attachment: sinf_cosf_x86_64.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]