[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-28 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

Uroš Bizjak  changed:

   What|Removed |Added

 CC|uros at gcc dot gnu.org|
   Assignee|unassigned at gcc dot gnu.org  |ubizjak at gmail dot com
   Target Milestone|--- |9.3

--- Comment #13 from Uroš Bizjak  ---
Fixed for 9.3+.

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-28 Thread uros at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

--- Comment #12 from uros at gcc dot gnu.org ---
Author: uros
Date: Mon Oct 28 14:16:50 2019
New Revision: 277520

URL: https://gcc.gnu.org/viewcvs?rev=277520=gcc=rev
Log:
PR target/92225
* config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
condition for V2DImode.

testsuite/ChangeLog:

PR target/92225
* gcc.target/i386/pr92225.c: New test.


Added:
branches/gcc-9-branch/gcc/testsuite/gcc.target/i386/pr92225.c
Modified:
branches/gcc-9-branch/gcc/ChangeLog
branches/gcc-9-branch/gcc/config/i386/sse.md
branches/gcc-9-branch/gcc/testsuite/ChangeLog

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-28 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Richard Biener  ---
Fixed.  Thanks Uros.

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-28 Thread uros at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

--- Comment #10 from uros at gcc dot gnu.org ---
Author: uros
Date: Mon Oct 28 11:29:43 2019
New Revision: 277510

URL: https://gcc.gnu.org/viewcvs?rev=277510=gcc=rev
Log:
PR target/92225
* config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
condition for V2DImode.

testsuite/ChangeLog:

PR target/92225
* gcc.target/i386/pr92225.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/i386/pr92225.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-28 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

--- Comment #9 from Uroš Bizjak  ---
(In reply to rguent...@suse.de from comment #8)

> Will you do the fix?

I have it in testing.

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-28 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

--- Comment #8 from rguenther at suse dot de  ---
On Fri, 25 Oct 2019, ubizjak at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225
> 
> --- Comment #7 from Uroš Bizjak  ---
> (In reply to Uroš Bizjak from comment #6)
> > This. V2DImode of REDUC_SSE_SMINMAX_MODE should be conditional on
> > TARGET_SSE4_2.
> 
> --cut here--
> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
> index 403e91d4b176..245cb522321c 100644
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -2771,7 +2771,7 @@
>  ;; Modes handled by reduc_sm{in,ax}* patterns.
>  (define_mode_iterator REDUC_SSE_SMINMAX_MODE
>[(V4SF "TARGET_SSE") (V2DF "TARGET_SSE")
> -   (V2DI "TARGET_SSE") (V4SI "TARGET_SSE") (V8HI "TARGET_SSE")
> +   (V2DI "TARGET_SSE4_2") (V4SI "TARGET_SSE") (V8HI "TARGET_SSE")
> (V16QI "TARGET_SSE")])
> 
>  (define_expand "reduc__scal_"
> --cut here--

Will you do the fix?

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-25 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-10-25
 Ever confirmed|0   |1

--- Comment #3 from Richard Biener  ---
Confirmed.  Eventually ix86_expand_int_vcond fails because the compare needs

4105  /* Only SSE4.1/SSE4.2 supports V2DImode.  */
4106  if (mode == V2DImode)

and code is GT.  Somehow

(define_expand "3"
  [(set (match_operand:VI8_AVX2_AVX512F 0 "register_operand")
(maxmin:VI8_AVX2_AVX512F
  (match_operand:VI8_AVX2_AVX512F 1 "register_operand")
  (match_operand:VI8_AVX2_AVX512F 2 "register_operand")))]
  "TARGET_SSE4_2"


doesn't work?  Ah, because it's directly invoked via

(define_expand "reduc__scal_"
  [(smaxmin:REDUC_SSE_SMINMAX_MODE
 (match_operand: 0 "register_operand")
 (match_operand:REDUC_SSE_SMINMAX_MODE 1 "register_operand"))]
  ""
{
  rtx tmp = gen_reg_rtx (mode);
  ix86_expand_reduc (gen_3, tmp, operands[1]);
  emit_insn (gen_vec_extract (operands[0], tmp,
const0_rtx));
  DONE;
})

[Bug target/92225] ice in gen_smaxv2di3, at config/i386/sse.md:12225

2019-10-25 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92225

--- Comment #2 from David Binderman  ---
Reduced code:

void a(long);
unsigned *b;
void c() {
  long d;
  for (int e; e; e++)
if (b[e] > d)
  d = b[e];
  a(d);
}