re PR ipa/61885 (ICE: in types_same_for_odr, at ipa-devirt.c:383 with LTO)

PR target/61885
	* config/i386/avx512fintrin.h: Move constants for mantissa extraction
	out of #ifdef __OPTIMIZE__.

testsuite/ChangeLog:

	PR target/61885
	* gcc.target/i386/pr61885.c: New test.

From-SVN: r212886
This commit is contained in:
Uros Bizjak 2014-07-21 10:47:48 +02:00
parent 633e5fbb24
commit 9c3c2608ff
4 changed files with 59 additions and 47 deletions

View File

@ -1,3 +1,9 @@
2014-07-21 Uros Bizjak <ubizjak@gmail.com>
PR target/61885
* config/i386/avx512fintrin.h: Move constants for mantissa extraction
out of #ifdef __OPTIMIZE__.
2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
* cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
@ -10,21 +16,18 @@
2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (unspec enum): Fix typo in
UNSPEC_VSLDOI.
* config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
(altivec_vsldoi_<mode>): Likewise.
2014-07-20 Roman Gareev <gareevroman@gmail.com>
* graphite-isl-ast-to-gimple.c:
Fixes a formatting issue related to the number of characters in the
line.
* graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
to the number of characters in the line.
2014-07-20 Roman Gareev <gareevroman@gmail.com>
* graphite-isl-ast-to-gimple.c:
Add using of build_nonstandard_integer_type instead of
int128_integer_type_node
* graphite-isl-ast-to-gimple.c: Add using of
build_nonstandard_integer_type instead of int128_integer_type_node.
2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
@ -146,9 +149,8 @@
2014-07-17 Richard Biener <rguenther@suse.de>
PR rtl-optimization/61801
* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
ASM_INPUT don't set reg_pending_barrier if it appears in a
debug-insn.
* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
don't set reg_pending_barrier if it appears in a debug-insn.
2014-07-16 DJ Delorie <dj@redhat.com>
@ -182,23 +184,20 @@
CONSTANT_P instead of CONSTANT_ADDRESS_P.
("*movsi_internal") <case 9>: Make check for valid unspec operands
for lapc stricter.
<case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition
codes.
<case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
("call", "call_value"): Use second incoming operand as a marker
for pic-offset-table-register being used.
("*expanded_call_non_v32", "*expanded_call_v32")
("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
second incoming operand to CALL, match cris_call_type_marker.
("*expanded_call_value_side"): Ditto. Disable before
reload_completed.
("*expanded_call_value_side"): Ditto. Disable before reload_completed.
("*expanded_call_side"): Ditto. Fix typo in comment.
(moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
CONSTANT_P.
* config/cris/predicates.md ("cris_call_type_marker"): New predicate.
* config/cris/cris.h (CRIS_CONSTANT_P): New macro.
(enum cris_symbol_type): Rename from cris_pic_symbol_type. All
users changed. Add members cris_offsettable_symbol and
cris_unspec.
users changed. Add members cris_offsettable_symbol and cris_unspec.
(cris_symbol_type): Rename from cris_pic_symbol_type.
* config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
just CONSTANT_P.
@ -224,10 +223,8 @@
2014-07-16 Dodji Seketeli <dodji@redhat.com>
Support location tracking for built-in macro tokens
* input.h (is_location_from_builtin_token): New function
declaration.
* input.c (is_location_from_builtin_token): New function
definition.
* input.h (is_location_from_builtin_token): New function declaration.
* input.c (is_location_from_builtin_token): New function definition.
* toplev.c (general_init): Tell libcpp what the pre-defined
spelling location for built-in tokens is.

View File

@ -8103,6 +8103,22 @@ _mm512_stream_load_si512 (void *__P)
return __builtin_ia32_movntdqa512 ((__v8di *)__P);
}
/* Constants for mantissa extraction */
typedef enum
{
_MM_MANT_NORM_1_2, /* interval [1, 2) */
_MM_MANT_NORM_p5_2, /* interval [0.5, 2) */
_MM_MANT_NORM_p5_1, /* interval [0.5, 1) */
_MM_MANT_NORM_p75_1p5 /* interval [0.75, 1.5) */
} _MM_MANTISSA_NORM_ENUM;
typedef enum
{
_MM_MANT_SIGN_src, /* sign = sign(SRC) */
_MM_MANT_SIGN_zero, /* sign = 0 */
_MM_MANT_SIGN_nan /* DEST = NaN if sign(SRC) = 1 */
} _MM_MANTISSA_SIGN_ENUM;
#ifdef __OPTIMIZE__
extern __inline __m128
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
@ -8182,22 +8198,6 @@ _mm512_maskz_getexp_round_pd (__mmask8 __U, __m512d __A, const int __R)
(__mmask8) __U, __R);
}
/* Constants for mantissa extraction */
typedef enum
{
_MM_MANT_NORM_1_2, /* interval [1, 2) */
_MM_MANT_NORM_p5_2, /* interval [0.5, 2) */
_MM_MANT_NORM_p5_1, /* interval [0.5, 1) */
_MM_MANT_NORM_p75_1p5 /* interval [0.75, 1.5) */
} _MM_MANTISSA_NORM_ENUM;
typedef enum
{
_MM_MANT_SIGN_src, /* sign = sign(SRC) */
_MM_MANT_SIGN_zero, /* sign = 0 */
_MM_MANT_SIGN_nan /* DEST = NaN if sign(SRC) = 1 */
} _MM_MANTISSA_SIGN_ENUM;
extern __inline __m512d
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_getmant_round_pd (__m512d __A, _MM_MANTISSA_NORM_ENUM __B,

View File

@ -1,3 +1,8 @@
2014-07-21 Uros Bizjak <ubizjak@gmail.com>
PR target/61885
* gcc.target/i386/pr61885.c: New test.
2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/pack20.ad[sb]: New test.

View File

@ -0,0 +1,10 @@
/* { dg-do compile } */
/* { dg-options "-mavx512f" } */
#include <x86intrin.h>
__m512 test (__m512 x)
{
return _mm512_getmant_ps(x, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_zero);
}