+2022-10-31 Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+ * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of
+ enumerator type btf_enum{,64}.
+ (btf_asm_type): Update btf_kflag according to enumeration type sign
+ using dtd_enum_unsigned field for both: BTF_KIND_ENUM{,64}.
+ (btf_asm_enum_const): New argument to represent the size of
+ the BTF enum type, writing the enumerator constant value for
+ 32 bits, if it's 64 bits then explicitly writes lower 32-bits
+ value and higher 32-bits value.
+ (output_asm_btf_enum_list): Add enumeration size argument.
+ * ctfc.cc (ctf_add_enum): New argument to represent CTF enum
+ basic information.
+ (ctf_add_generic): Use of ei_{name. size, unsigned} to build the
+ dtd structure containing enumeration information.
+ (ctf_add_enumerator): Update comment mention support for BTF
+ enumeration in 64-bits.
+ * dwarf2ctf.cc (gen_ctf_enumeration_type): Extract signedness
+ for enumeration type and use it in ctf_add_enum.
+ * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow
+ use 32/64 bits enumerators.
+ information.
+ (ctf_dtdef): New field to describe enum signedness.
+
+2022-10-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-builtins-bases.cc: Change constexpr back to CONSTEXPR.
+ * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Ditto.
+ * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Ditto.
+ * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Ditto.
+
+2022-10-31 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn-valu.md (fminmaxop): New iterator.
+ (<fexpander><mode>3): New define_expand.
+ (<fexpander><mode>3<exec>): Likewise.
+ (reduc_<fexpander>_scal_<mode>): Likewise.
+ * config/gcn/gcn.md (fexpander): New attribute.
+
+2022-10-31 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn-valu.md (V64_SI): Delete iterator.
+ (V64_DI): Likewise.
+ (V64_1REG): Likewise.
+ (V64_INT_1REG): Likewise.
+ (V64_2REG): Likewise.
+ (V64_ALL): Likewise.
+ (V64_FP): Likewise.
+ (reduc_<reduc_op>_scal_<mode>): Use V_ALL. Use gen_vec_extract.
+ (fold_left_plus_<mode>): Use V_FP.
+ (*<reduc_op>_dpp_shr_<mode>): Use V_1REG.
+ (*<reduc_op>_dpp_shr_<mode>): Use V_DI.
+ (*plus_carry_dpp_shr_<mode>): Use V_INT_1REG.
+ (*plus_carry_in_dpp_shr_<mode>): Use V_SI.
+ (*plus_carry_dpp_shr_<mode>): Use V_DI.
+ (mov_from_lane63_<mode>): Delete.
+ (mov_from_lane63_<mode>): Delete.
+ * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Support partial vectors.
+ * config/gcn/gcn.md (unspec): Remove UNSPEC_MOV_FROM_LANE63.
+
+2022-10-31 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
+ Set base_type as ARG_UNUSED.
+
+2022-10-31 Jakub Jelinek <jakub@redhat.com>
+
+ * builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32,
+ BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X,
+ BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X,
+ BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
+ BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
+ BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
+ BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
+ BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
+ BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
+ BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X,
+ BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32,
+ BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128,
+ BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X,
+ BT_FN_FLOAT128X_COMPLEX_FLOAT128X,
+ BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
+ BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
+ BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
+ BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
+ BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
+ BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
+ BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New.
+ * builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE,
+ CPOW_TYPE, CPROJ_TYPE): Define and undefine later.
+ (BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG,
+ BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN,
+ BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG,
+ BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN,
+ BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS.
+ * fold-const-call.cc (fold_const_call_sc, fold_const_call_cc,
+ fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when
+ CASE_CFN_* is present.
+ * gimple-ssa-backprop.cc (backprop::process_builtin_call_use):
+ Likewise.
+ * builtins.cc (expand_builtin, fold_builtin_1): Likewise.
+ * fold-const.cc (negate_mathfn_p, tree_expr_finite_p,
+ tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p,
+ tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p):
+ Likewise.
+
+2022-10-31 Jakub Jelinek <jakub@redhat.com>
+
+ * builtin-types.def (BT_FN_BFLOAT16_BFLOAT16_BFLOAT16): New.
+ * builtins.def (BUILT_IN_NEXTAFTERF16B): New builtin.
+ * fold-const-call.cc (fold_const_call_sss): Handle
+ CFN_BUILT_IN_NEXTAFTERF16B.
+
+2022-10-31 Jakub Jelinek <jakub@redhat.com>
+
+ * builtin-types.def (BT_FLOAT16_PTR, BT_FLOAT32_PTR, BT_FLOAT64_PTR,
+ BT_FLOAT128_PTR, BT_FLOAT32X_PTR, BT_FLOAT64X_PTR, BT_FLOAT128X_PTR):
+ New DEF_PRIMITIVE_TYPE.
+ (BT_FN_INT_FLOAT16, BT_FN_INT_FLOAT32, BT_FN_INT_FLOAT64,
+ BT_FN_INT_FLOAT128, BT_FN_INT_FLOAT32X, BT_FN_INT_FLOAT64X,
+ BT_FN_INT_FLOAT128X, BT_FN_LONG_FLOAT16, BT_FN_LONG_FLOAT32,
+ BT_FN_LONG_FLOAT64, BT_FN_LONG_FLOAT128, BT_FN_LONG_FLOAT32X,
+ BT_FN_LONG_FLOAT64X, BT_FN_LONG_FLOAT128X, BT_FN_LONGLONG_FLOAT16,
+ BT_FN_LONGLONG_FLOAT32, BT_FN_LONGLONG_FLOAT64,
+ BT_FN_LONGLONG_FLOAT128, BT_FN_LONGLONG_FLOAT32X,
+ BT_FN_LONGLONG_FLOAT64X, BT_FN_LONGLONG_FLOAT128X): New
+ DEF_FUNCTION_TYPE_1.
+ (BT_FN_FLOAT16_FLOAT16_FLOAT16PTR, BT_FN_FLOAT32_FLOAT32_FLOAT32PTR,
+ BT_FN_FLOAT64_FLOAT64_FLOAT64PTR, BT_FN_FLOAT128_FLOAT128_FLOAT128PTR,
+ BT_FN_FLOAT32X_FLOAT32X_FLOAT32XPTR,
+ BT_FN_FLOAT64X_FLOAT64X_FLOAT64XPTR,
+ BT_FN_FLOAT128X_FLOAT128X_FLOAT128XPTR, BT_FN_FLOAT16_FLOAT16_INT,
+ BT_FN_FLOAT32_FLOAT32_INT, BT_FN_FLOAT64_FLOAT64_INT,
+ BT_FN_FLOAT128_FLOAT128_INT, BT_FN_FLOAT32X_FLOAT32X_INT,
+ BT_FN_FLOAT64X_FLOAT64X_INT, BT_FN_FLOAT128X_FLOAT128X_INT,
+ BT_FN_FLOAT16_FLOAT16_INTPTR, BT_FN_FLOAT32_FLOAT32_INTPTR,
+ BT_FN_FLOAT64_FLOAT64_INTPTR, BT_FN_FLOAT128_FLOAT128_INTPTR,
+ BT_FN_FLOAT32X_FLOAT32X_INTPTR, BT_FN_FLOAT64X_FLOAT64X_INTPTR,
+ BT_FN_FLOAT128X_FLOAT128X_INTPTR, BT_FN_FLOAT16_FLOAT16_LONG,
+ BT_FN_FLOAT32_FLOAT32_LONG, BT_FN_FLOAT64_FLOAT64_LONG,
+ BT_FN_FLOAT128_FLOAT128_LONG, BT_FN_FLOAT32X_FLOAT32X_LONG,
+ BT_FN_FLOAT64X_FLOAT64X_LONG, BT_FN_FLOAT128X_FLOAT128X_LONG): New
+ DEF_FUNCTION_TYPE_2.
+ (BT_FN_FLOAT16_FLOAT16_FLOAT16_INTPTR,
+ BT_FN_FLOAT32_FLOAT32_FLOAT32_INTPTR,
+ BT_FN_FLOAT64_FLOAT64_FLOAT64_INTPTR,
+ BT_FN_FLOAT128_FLOAT128_FLOAT128_INTPTR,
+ BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_INTPTR,
+ BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_INTPTR,
+ BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_INTPTR): New DEF_FUNCTION_TYPE_3.
+ * builtins.def (ACOSH_TYPE, ATAN2_TYPE, ATANH_TYPE, COSH_TYPE,
+ FDIM_TYPE, HUGE_VAL_TYPE, HYPOT_TYPE, ILOGB_TYPE, LDEXP_TYPE,
+ LGAMMA_TYPE, LLRINT_TYPE, LOG10_TYPE, LRINT_TYPE, MODF_TYPE,
+ NEXTAFTER_TYPE, REMQUO_TYPE, SCALBLN_TYPE, SCALBN_TYPE, SINH_TYPE):
+ Define and undefine later.
+ (FMIN_TYPE, SQRT_TYPE): Undefine at a later line.
+ (INF_TYPE): Define at a later line.
+ (BUILT_IN_ACOSH, BUILT_IN_ACOS, BUILT_IN_ASINH, BUILT_IN_ASIN,
+ BUILT_IN_ATAN2, BUILT_IN_ATANH, BUILT_IN_ATAN, BUILT_IN_CBRT,
+ BUILT_IN_COSH, BUILT_IN_COS, BUILT_IN_ERFC, BUILT_IN_ERF,
+ BUILT_IN_EXP2, BUILT_IN_EXP, BUILT_IN_EXPM1, BUILT_IN_FDIM,
+ BUILT_IN_FMOD, BUILT_IN_FREXP, BUILT_IN_HYPOT, BUILT_IN_ILOGB,
+ BUILT_IN_LDEXP, BUILT_IN_LGAMMA, BUILT_IN_LLRINT, BUILT_IN_LLROUND,
+ BUILT_IN_LOG10, BUILT_IN_LOG1P, BUILT_IN_LOG2, BUILT_IN_LOGB,
+ BUILT_IN_LOG, BUILT_IN_LRINT, BUILT_IN_LROUND, BUILT_IN_MODF,
+ BUILT_IN_NEXTAFTER, BUILT_IN_POW, BUILT_IN_REMAINDER, BUILT_IN_REMQUO,
+ BUILT_IN_SCALBLN, BUILT_IN_SCALBN, BUILT_IN_SINH, BUILT_IN_SIN,
+ BUILT_IN_TANH, BUILT_IN_TAN, BUILT_IN_TGAMMA): Add
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS.
+ (BUILT_IN_HUGE_VAL): Use HUGE_VAL_TYPE instead of INF_TYPE in
+ DEF_GCC_FLOATN_NX_BUILTINS.
+ * fold-const-call.cc (fold_const_call_ss): Add various CASE_CFN_*_FN:
+ cases when CASE_CFN_* is present.
+ (fold_const_call_sss): Likewise.
+ * builtins.cc (mathfn_built_in_2): Use CASE_MATHFN_FLOATN instead of
+ CASE_MATHFN for various builtins in SEQ_OF_CASE_MATHFN macro.
+ (builtin_with_linkage_p): Add CASE_FLT_FN_FLOATN_NX for various
+ builtins next to CASE_FLT_FN.
+ * fold-const.cc (tree_call_nonnegative_warnv_p): Add CASE_CFN_*_FN:
+ next to CASE_CFN_*: for various builtins.
+ * tree-call-cdce.cc (can_test_argument_range): Add
+ CASE_FLT_FN_FLOATN_NX next to CASE_FLT_FN for various builtins.
+ (edom_only_function): Likewise.
+
+2022-10-31 konglin1 <lingling.kong@intel.com>
+
+ * common/config/i386/i386-common.cc
+ (OPTION_MASK_ISA2_AVXNECONVERT_SET,
+ OPTION_MASK_ISA2_AVXNECONVERT_UNSET): New.
+ (ix86_handle_option): Handle -mavxneconvert, unset
+ avxneconvert when avx2 is disabled.
+ * common/config/i386/i386-cpuinfo.h (processor_types): Add
+ FEATURE_AVXNECONVERT.
+ * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
+ avxneconvert.
+ * common/config/i386/cpuinfo.h (get_available_features):
+ Detect avxneconvert.
+ * config.gcc: Add avxneconvertintrin.h
+ * config/i386/avxneconvertintrin.h: New.
+ * config/i386/avx512bf16vlintrin.h (_mm256_cvtneps_pbh):
+ Unified builtin with avxneconvert.
+ (_mm_cvtneps_pbh): Ditto.
+ * config/i386/cpuid.h (bit_AVXNECONVERT): New.
+ * config/i386/i386-builtin-types.def: Add
+ DEF_POINTER_TYPE (PCV8HF, V8HF, CONST),
+ DEF_POINTER_TYPE (PCV8BF, V8BF, CONST),
+ DEF_POINTER_TYPE (PCV16HF, V16HF, CONST),
+ DEF_POINTER_TYPE (PCV16BF, V16BF, CONST),
+ DEF_FUNCTION_TYPE (V4SF, PCBFLOAT16),
+ DEF_FUNCTION_TYPE (V4SF, PCFLOAT16),
+ DEF_FUNCTION_TYPE (V8SF, PCBFLOAT16),
+ DEF_FUNCTION_TYPE (V8SF, PCFLOAT16),
+ DEF_FUNCTION_TYPE (V4SF, PCV8BF),
+ DEF_FUNCTION_TYPE (V4SF, PCV8HF),
+ DEF_FUNCTION_TYPE (V8SF, PCV16HF),
+ DEF_FUNCTION_TYPE (V8SF, PCV16BF),
+ * config/i386/i386-builtin.def: Add new builtins.
+ * config/i386/i386-c.cc (ix86_target_macros_internal): Define
+ __AVXNECONVERT__.
+ * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
+ Handle V4SF_FTYPE_PCBFLOAT16,V8SF_FTYPE_PCBFLOAT16, V4SF_FTYPE_PCFLOAT16,
+ V8SF_FTYPE_PCFLOAT16,V4SF_FTYPE_PCV8BF,
+ V4SF_FTYPE_PCV8HF,V8SF_FTYPE_PCV16BF,V8SF_FTYPE_PCV16HF.
+ * config/i386/i386-isa.def : Add DEF_PTA(AVXNECONVERT) New.
+ * config/i386/i386-options.cc (isa2_opts): Add -mavxneconvert.
+ (ix86_valid_target_attribute_inner_p): Handle avxneconvert.
+ * config/i386/i386.md: Add attr avx512bf16vl and avxneconvert.
+ * config/i386/i386.opt: Add option -mavxneconvert.
+ * config/i386/immintrin.h: Inculde avxneconvertintrin.h.
+ * config/i386/sse.md (vbcstnebf162ps_<mode>): New define_insn.
+ (vbcstnesh2ps_<mode>): Ditto.
+ (vcvtnee<bf16_ph>2ps_<mode>):Ditto.
+ (vcvtneo<bf16_ph>2ps_<mode>):Ditto.
+ (vcvtneps2bf16_v4sf): Ditto.
+ (*vcvtneps2bf16_v4sf): Ditto.
+ (vcvtneps2bf16_v8sf): Ditto.
+ * doc/invoke.texi: Document -mavxneconvert.
+ * doc/extend.texi: Document avxneconvert.
+ * doc/sourcebuild.texi: Document target avxneconvert.
+
+2022-10-31 konglin1 <lingling.kong@intel.com>
+
+ * config/i386/avx512bf16intrin.h (__attribute__): Change short to bf16.
+ (_mm_cvtsbh_ss): Ditto.
+ (_mm512_cvtne2ps_pbh): Ditto.
+ (_mm512_mask_cvtne2ps_pbh): Ditto.
+ (_mm512_maskz_cvtne2ps_pbh): Ditto.
+ * config/i386/avx512bf16vlintrin.h (__attribute__): Ditto.
+ (_mm256_cvtne2ps_pbh): Ditto.
+ (_mm256_mask_cvtne2ps_pbh): Ditto.
+ (_mm256_maskz_cvtne2ps_pbh): Ditto.
+ (_mm_cvtne2ps_pbh): Ditto.
+ (_mm_mask_cvtne2ps_pbh): Ditto.
+ (_mm_maskz_cvtne2ps_pbh): Ditto.
+ (_mm_cvtness_sbh): Ditto.
+ * config/i386/i386-builtin-types.def (V8BF): Add new
+ DEF_VECTOR_TYPE for BFmode.
+ (V16BF): Ditto.
+ (V32BF): Ditto.
+ * config/i386/i386-builtin.def (BDESC): Fixed builtins.
+ * config/i386/i386-expand.cc (ix86_expand_args_builtin): Changed
+ avx512bf16 ix86_builtin_func_type included HI to BF.
+ * config/i386/immintrin.h: Add SSE2 depend for avx512bf16.
+ * config/i386/sse.md (TARGET_AVX512VL): Changed HI vector to BF
+ vector.
+ (avx512f_cvtneps2bf16_v4sf): New define_expand.
+ (*avx512f_cvtneps2bf16_v4sf): New define_insn.
+ (avx512f_cvtneps2bf16_v4sf_maskz):Ditto.
+ (avx512f_cvtneps2bf16_v4sf_mask): Ditto.
+ (avx512f_cvtneps2bf16_v4sf_mask_1): Ditto.
+
+2022-10-31 liuhongt <hongtao.liu@intel.com>
+
+ PR target/107261
+ * config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode.
+ * config/i386/i386.cc (classify_argument): Handle V4BFmode and
+ V2BFmode.
+ (ix86_convert_const_vector_to_integer): Ditto.
+ * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove
+ V2BFmode.
+ (VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode.
+ (VALID_MMX_REG_MODE): Add V4BFmode.
+ * config/i386/i386.md (mode): Add V4BF and V2BF.
+ (MODE_SIZE): Ditto.
+ * config/i386/mmx.md (MMXMODE) Add V4BF.
+ (V_32): Add V2BF.
+ (V_16_32_64): Add V4BF and V2BF.
+ (mmxinsnmode): Add V4BF and V2BF.
+ (*mov<mode>_internal): Hanlde V4BFmode and V2BFmode.
+
2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
* configure.ac (sjlj-exceptions): Restore dropped line.