re PR target/88594 (ICE in int_mode_for_mode, at stor-layout.c:403)

PR target/88594
	* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
	of GET_MODE (opN) as modes of the libcall arguments.

	* gcc.dg/pr88594.c: New test.

From-SVN: r267571
This commit is contained in:
Jakub Jelinek 2019-01-04 10:00:05 +01:00 committed by Jakub Jelinek
parent 80b23ae866
commit 9d3ac5e3db
4 changed files with 28 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2019-01-04 Jakub Jelinek <jakub@redhat.com>
PR target/88594
* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
of GET_MODE (opN) as modes of the libcall arguments.
2019-01-04 Jan Beulich <jbeulich@suse.com>
* config/i386/sse.md

View File

@ -51014,9 +51014,7 @@ ix86_expand_divmod_libfunc (rtx libfunc, machine_mode mode,
rtx rem = assign_386_stack_local (mode, SLOT_TEMP);
rtx quot = emit_library_call_value (libfunc, NULL_RTX, LCT_NORMAL,
mode,
op0, GET_MODE (op0),
op1, GET_MODE (op1),
mode, op0, mode, op1, mode,
XEXP (rem, 0), Pmode);
*quot_p = quot;
*rem_p = rem;

View File

@ -1,3 +1,8 @@
2019-01-04 Jakub Jelinek <jakub@redhat.com>
PR target/88594
* gcc.dg/pr88594.c: New test.
2019-01-04 Jan Beulich <jbeulich@suse.com>
* gcc.target/i386/avx512bitalg-vpshufbitqmb.c,

View File

@ -0,0 +1,16 @@
/* PR target/88594 */
/* { dg-do compile { target int128 } } */
/* { dg-options "-O2 -fno-tree-dominator-opts -fno-tree-forwprop -fno-tree-vrp" } */
__int128
foo (__int128 x, __int128 *y)
{
int a;
__int128 z, r;
for (a = 0; a < 17; ++a)
;
z = x / a;
r = x % a;
*y = z;
return r;
}