[Bug target/89750] Wrong code for _mm_comi_round_ss

2019-03-17 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750

--- Comment #1 from H.J. Lu  ---
ix86_expand_sse_comi_round has

  /* See avxintrin.h for values.  */
  enum rtx_code comi_comparisons[32] =
{
  UNEQ, GT, GE, UNORDERED, LTGT, UNLE, UNLT, ORDERED, UNEQ, UNLT,
  UNLE, LT, LTGT, GE, GT, LT, UNEQ, GT, GE, UNORDERED, LTGT, UNLE,
  UNLT, ORDERED, UNEQ, UNLT, UNLE, LT, LTGT, GE, GT, LT
};

which looks wrong for

#define _CMP_EQ_OQ  0x00
#define _CMP_LT_OS  0x01
#define _CMP_LE_OS  0x02
#define _CMP_UNORD_Q0x03
#define _CMP_NEQ_UQ 0x04
#define _CMP_NLT_US 0x05
#define _CMP_NLE_US 0x06
#define _CMP_ORD_Q  0x07
#define _CMP_EQ_UQ  0x08
#define _CMP_NGE_US 0x09
#define _CMP_NGT_US 0x0a
#define _CMP_FALSE_OQ   0x0b
#define _CMP_NEQ_OQ 0x0c
#define _CMP_GE_OS  0x0d
#define _CMP_GT_OS  0x0e
#define _CMP_TRUE_UQ0x0f
#define _CMP_EQ_OS  0x10
#define _CMP_LT_OQ  0x11
#define _CMP_LE_OQ  0x12
#define _CMP_UNORD_S0x13
#define _CMP_NEQ_US 0x14
#define _CMP_NLT_UQ 0x15
#define _CMP_NLE_UQ 0x16
#define _CMP_ORD_S  0x17
#define _CMP_EQ_US  0x18
#define _CMP_NGE_UQ 0x19
#define _CMP_NGT_UQ 0x1a
#define _CMP_FALSE_OS   0x1b
#define _CMP_NEQ_OS 0x1c
#define _CMP_GE_OQ  0x1d
#define _CMP_GT_OQ  0x1e
#define _CMP_TRUE_US0x1f

[Bug target/89750] Wrong code for _mm_comi_round_ss

2019-10-09 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
So, fixed for 10+?

[Bug target/89750] Wrong code for _mm_comi_round_ss

2019-10-09 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750

--- Comment #5 from Hongtao.liu  ---
(In reply to Jakub Jelinek from comment #4)
> So, fixed for 10+?

Yes.

[Bug target/89750] Wrong code for _mm_comi_round_ss

2019-10-09 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jakub Jelinek  ---
.

[Bug target/89750] Wrong code for _mm_comi_round_ss

2019-05-06 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750

--- Comment #2 from Hongtao.liu  ---
Created attachment 46307
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46307&action=edit
Fix-ix86_expand_sse_comi_round.patch

Fix ix86_expand_sse_comi_round and add runtime tests for it.

[Bug target/89750] Wrong code for _mm_comi_round_ss

2019-06-02 Thread liuhongt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89750

--- Comment #3 from liuhongt at gcc dot gnu.org ---
Author: liuhongt
Date: Mon Jun  3 02:20:33 2019
New Revision: 271853

URL: https://gcc.gnu.org/viewcvs?rev=271853&root=gcc&view=rev
Log:
2019-05-06  H.J. Lu  
Hongtao Liu  

PR target/89750
PR target/86444
* config/i386/i386-expand.c (ix86_expand_sse_comi_round):
Modified, original implementation isn't correct.

2019-05-06  H.J. Lu  
Hongtao Liu  

PR target/89750
PR target/86444
* gcc.target/i386/avx512f-vcomisd-2.c: New.
* gcc.target/i386/avx512f-vcomisd-2.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.target/i386/avx512f-vcomisd-2.c
trunk/gcc/testsuite/gcc.target/i386/avx512f-vcomiss-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386-expand.c
trunk/gcc/testsuite/ChangeLog