aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-path.cc
diff options
context:
space:
mode:
authorkonglin1 <lingling.kong@intel.com>2022-08-15 14:39:22 +0800
committerkonglin1 <lingling.kong@intel.com>2022-08-15 14:39:29 +0800
commit6624ad73064de241e937e97a28b65c50fe14c78e (patch)
treebf98aab33946b4b8bede93f521f589ef41ed5adb /gcc/gimple-range-path.cc
parentc435085e8789ef6c774c74db567293e2d27ff143 (diff)
downloadgcc-6624ad73064de241e937e97a28b65c50fe14c78e.zip
gcc-6624ad73064de241e937e97a28b65c50fe14c78e.tar.gz
gcc-6624ad73064de241e937e97a28b65c50fe14c78e.tar.bz2
x86: Enable __bf16 type for TARGET_SSE2 and above
gcc/ChangeLog: * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type. * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend. (ix86_register_bf16_builtin_type): New function. (ix86_bf16_type_node): New. (ix86_bf16_ptr_type_node): Ditto. (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call. * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode. (ADJUST_FLOAT_FORMAT): Ditto. * config/i386/i386.cc (classify_argument): Handle BFmode. (construct_container): Ditto. (function_value_32): Return __bf16 by %xmm0. (function_value_64): Return __bf16 by SSE register. (ix86_output_ssemov): Handle BFmode. (ix86_legitimate_constant_p): Disable BFmode constant double. (ix86_secondary_reload): Require gpr as intermediate register to store __bf16 from sse register when sse4 is not available. (ix86_scalar_mode_supported_p): Enable __bf16 under sse2. (ix86_mangle_type): Add manlging for __bf16 type. (ix86_invalid_conversion): New function for target hook. (ix86_invalid_unary_op): Ditto. (ix86_invalid_binary_op): Ditto. (TARGET_INVALID_CONVERSION): New define for target hook. (TARGET_INVALID_UNARY_OP): Ditto. (TARGET_INVALID_BINARY_OP): Ditto. * config/i386/i386.h (host_detect_local_cpu): Add BFmode. * config/i386/i386.md ("mode"): Add BFmode. (MODE_SIZE): Ditto. (X87MODEFH): Ditto. (HFBF): Add new define_mode_iterator. (*pushhf_rex64): Change for BFmode. (*push<mode>_rex64): Ditto. (*pushhf): Ditto. (*push<mode>): Ditto. (MODESH): Ditto. (hfbfconstf): Add new define_mode_attr. (*mov<mode>_internal): Add BFmode. gcc/testsuite/ChangeLog: * g++.target/i386/bfloat_cpp_typecheck.C: New test. * gcc.target/i386/bfloat16-1.c: Ditto. * gcc.target/i386/sse2-bfloat16-1.c: Ditto. * gcc.target/i386/sse2-bfloat16-2.c: Ditto. * gcc.target/i386/sse2-bfloat16-scalar-typecheck.c: Ditto.
Diffstat (limited to 'gcc/gimple-range-path.cc')
0 files changed, 0 insertions, 0 deletions