]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR ipa/61885 (ICE: in types_same_for_odr, at ipa-devirt.c:383 with LTO)
authorUros Bizjak <uros@gcc.gnu.org>
Mon, 21 Jul 2014 08:47:48 +0000 (10:47 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 21 Jul 2014 08:47:48 +0000 (10:47 +0200)
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

gcc/ChangeLog
gcc/config/i386/avx512fintrin.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr61855.c [new file with mode: 0644]

index efb67bac4c0b5c58eaf67c97497d84700586ec8b..8c77d00b861dad5a05e4c7507f1478ccce8a8d49 100644 (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
 
 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>
 
        * config/arm/fa726te.md (726te_alu_op): Likewise.
        * config/arm/fmp626.md (mp626_alu_op): Likewise.
        * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
-       alu_sreg, alu_dsp_reg and alus_sreg.     
+       alu_sreg, alu_dsp_reg and alus_sreg.
        * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
        * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
        * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
        * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
        * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
        subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
-       *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.     
+       *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
        (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
        sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
-       subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type 
+       subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
        alus_reg to alus_sreg.
 
 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
 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>
 
        (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
        (cris_address_cost): Ditto last CONSTANT_P.
        (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
-        callers changed.  Yield cris_offsettable_symbol for non-PIC
-        constant symbolic expressions including labels.  Yield cris_unspec
+       callers changed.  Yield cris_offsettable_symbol for non-PIC
+       constant symbolic expressions including labels.  Yield cris_unspec
        for all unspecs.
        (cris_expand_pic_call_address): New parameter MARKERP.  Set its
-        target to pic_offset_table_rtx for calls that will likely go
-        through PLT, const0_rtx when they can't.  All callers changed.
+       target to pic_offset_table_rtx for calls that will likely go
+       through PLT, const0_rtx when they can't.  All callers changed.
        Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
        symbolic expressions to be PICified.  Remove second, redundant,
        assert on can_create_pseudo_p returning non-zero.  Use
        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
+       ("*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.
+       just CONSTANT_P.
        * config/cris/cris-protos.h (cris_symbol_type_of,
        cris_expand_pic_call_address): Adjust prototypes.
        (cris_legitimate_constant_p): New prototype.
        set_comdat_group to NULL_TREE.
        (verify_symtab): Fix diagnostic.
 
-2014-07-16  David Wohlferd <dw@LimeGreenSocks.com>
+2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
 
        PR target/61662
        * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
 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.
 
index 314895ad7cdb1c473069f38baaf6755cdb479c27..c4caa5ae6956890164c4b76978ea8ff306bc73f9 100644 (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,
index 3111c7394951dd36f373ad54cafbe2a0cd63b0df..fa69d58094271d0280e2369ab0cf86999c0d6449 100644 (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.
diff --git a/gcc/testsuite/gcc.target/i386/pr61855.c b/gcc/testsuite/gcc.target/i386/pr61855.c
new file mode 100644 (file)
index 0000000..09c62ae
--- /dev/null
@@ -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);
+}
+