diff --git a/gcc/ChangeLog b/gcc/ChangeLog index efb67bac4c0..8c77d00b861 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-07-21 Uros Bizjak + + PR target/61885 + * config/i386/avx512fintrin.h: Move constants for mantissa extraction + out of #ifdef __OPTIMIZE__. + 2014-07-20 Eric Botcazou * cse.c (exp_equiv_p) : For GCSE, return 0 for expressions with @@ -10,21 +16,18 @@ 2014-07-20 Bill Schmidt - * config/rs6000/altivec.md (unspec enum): Fix typo in - UNSPEC_VSLDOI. + * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI. (altivec_vsldoi_): Likewise. 2014-07-20 Roman Gareev - * 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 - * 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 @@ -120,7 +123,7 @@ * 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. @@ -132,10 +135,10 @@ * 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, neg2, - *negsi2_uxtw, tlsle_small_): Rename type alu_reg to alu_sreg. + *negsi2_uxtw, tlsle_small_): Rename type alu_reg to alu_sreg. (add3_compare0, *addsi3_compare0_uxtw, *add3nr_compare0, sub3_compare0, *compare_neg, *neg2_compare0, - subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp): Rename type + subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp): Rename type alus_reg to alus_sreg. 2014-07-17 Andreas Schwab @@ -146,9 +149,8 @@ 2014-07-17 Richard Biener 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 @@ -166,12 +168,12 @@ (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 @@ -182,26 +184,23 @@ CONSTANT_P instead of CONSTANT_ADDRESS_P. ("*movsi_internal") : Make check for valid unspec operands for lapc stricter. - : Clear condition - codes. + : 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. @@ -216,7 +215,7 @@ set_comdat_group to NULL_TREE. (verify_symtab): Fix diagnostic. -2014-07-16 David Wohlferd +2014-07-16 David Wohlferd PR target/61662 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long. @@ -224,10 +223,8 @@ 2014-07-16 Dodji Seketeli 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. diff --git a/gcc/config/i386/avx512fintrin.h b/gcc/config/i386/avx512fintrin.h index 314895ad7cd..c4caa5ae695 100644 --- a/gcc/config/i386/avx512fintrin.h +++ b/gcc/config/i386/avx512fintrin.h @@ -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, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3111c739495..fa69d580942 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-07-21 Uros Bizjak + + PR target/61885 + * gcc.target/i386/pr61885.c: New test. + 2014-07-20 Eric Botcazou * 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 index 00000000000..09c62aebbae --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr61855.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-mavx512f" } */ + +#include + +__m512 test (__m512 x) +{ + return _mm512_getmant_ps(x, _MM_MANT_NORM_1_2, _MM_MANT_SIGN_zero); +} +