mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 18:08:24 +08:00
gdb, i386: Enable AVX512-bfloat16 for i386 targets.
Values of type bfloat16 can also be used on 32-bit targets, which was missed in the original enablement. This also adjusts the testcase to pass with "unix/-m32", where only the lower 8 AVX registers are available. gdb/ChangeLog: 2021-07-21 Felix Willgerodt <Felix.Willgerodt@intel.com> * features/i386/32bit-sse.xml: Add bfloat16 type. * features/i386/32bit-sse.c: Regenerated. gdb/testsuite/ChangeLog: 2021-07-21 Felix Willgerodt <Felix.Willgerodt@intel.com> * gdb.arch/x86-avx512bf16.exp: Only use x/z/ymm 0-7.
This commit is contained in:
@ -10,6 +10,9 @@ create_feature_i386_32bit_sse (struct target_desc *result, long regnum)
|
|||||||
|
|
||||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
|
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
|
||||||
tdesc_type *element_type;
|
tdesc_type *element_type;
|
||||||
|
element_type = tdesc_named_type (feature, "bfloat16");
|
||||||
|
tdesc_create_vector (feature, "v8bf16", element_type, 8);
|
||||||
|
|
||||||
element_type = tdesc_named_type (feature, "ieee_single");
|
element_type = tdesc_named_type (feature, "ieee_single");
|
||||||
tdesc_create_vector (feature, "v4f", element_type, 4);
|
tdesc_create_vector (feature, "v4f", element_type, 4);
|
||||||
|
|
||||||
@ -31,6 +34,8 @@ create_feature_i386_32bit_sse (struct target_desc *result, long regnum)
|
|||||||
tdesc_type_with_fields *type_with_fields;
|
tdesc_type_with_fields *type_with_fields;
|
||||||
type_with_fields = tdesc_create_union (feature, "vec128");
|
type_with_fields = tdesc_create_union (feature, "vec128");
|
||||||
tdesc_type *field_type;
|
tdesc_type *field_type;
|
||||||
|
field_type = tdesc_named_type (feature, "v8bf16");
|
||||||
|
tdesc_add_field (type_with_fields, "v8_bfloat16", field_type);
|
||||||
field_type = tdesc_named_type (feature, "v4f");
|
field_type = tdesc_named_type (feature, "v4f");
|
||||||
tdesc_add_field (type_with_fields, "v4_float", field_type);
|
tdesc_add_field (type_with_fields, "v4_float", field_type);
|
||||||
field_type = tdesc_named_type (feature, "v2d");
|
field_type = tdesc_named_type (feature, "v2d");
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||||
<feature name="org.gnu.gdb.i386.sse">
|
<feature name="org.gnu.gdb.i386.sse">
|
||||||
|
<vector id="v8bf16" type="bfloat16" count="8"/>
|
||||||
<vector id="v4f" type="ieee_single" count="4"/>
|
<vector id="v4f" type="ieee_single" count="4"/>
|
||||||
<vector id="v2d" type="ieee_double" count="2"/>
|
<vector id="v2d" type="ieee_double" count="2"/>
|
||||||
<vector id="v16i8" type="int8" count="16"/>
|
<vector id="v16i8" type="int8" count="16"/>
|
||||||
@ -14,6 +15,7 @@
|
|||||||
<vector id="v4i32" type="int32" count="4"/>
|
<vector id="v4i32" type="int32" count="4"/>
|
||||||
<vector id="v2i64" type="int64" count="2"/>
|
<vector id="v2i64" type="int64" count="2"/>
|
||||||
<union id="vec128">
|
<union id="vec128">
|
||||||
|
<field name="v8_bfloat16" type="v8bf16"/>
|
||||||
<field name="v4_float" type="v4f"/>
|
<field name="v4_float" type="v4f"/>
|
||||||
<field name="v2_double" type="v2d"/>
|
<field name="v2_double" type="v2d"/>
|
||||||
<field name="v16_int8" type="v16i8"/>
|
<field name="v16_int8" type="v16i8"/>
|
||||||
|
@ -64,11 +64,11 @@ gdb_test "print \$zmm6.v32_bfloat16\[1\]" "= 68.5"
|
|||||||
# Test setting of bfloat values
|
# Test setting of bfloat values
|
||||||
gdb_test_no_output "set var \$xmm0.v8_bfloat16\[0\] = 32.25" \
|
gdb_test_no_output "set var \$xmm0.v8_bfloat16\[0\] = 32.25" \
|
||||||
"set %xmm0.v8_bfloat16\[0\]"
|
"set %xmm0.v8_bfloat16\[0\]"
|
||||||
gdb_test_no_output "set var \$ymm8.v16_bfloat16\[1\] = 33.5" \
|
gdb_test_no_output "set var \$ymm4.v16_bfloat16\[1\] = 33.5" \
|
||||||
"set %ymm8.v16_bfloat16\[1\]"
|
"set %ymm4.v16_bfloat16\[1\]"
|
||||||
gdb_test_no_output "set var \$zmm16.v32_bfloat16\[2\] = 22.75" \
|
gdb_test_no_output "set var \$zmm7.v32_bfloat16\[2\] = 22.75" \
|
||||||
"set %zmm16.v32_bfloat16\[2\]"
|
"set %zmm7.v32_bfloat16\[2\]"
|
||||||
|
|
||||||
gdb_test "p \$xmm0.v8_bfloat16\[0\]" "= 32.25"
|
gdb_test "p \$xmm0.v8_bfloat16\[0\]" "= 32.25"
|
||||||
gdb_test "p \$ymm8.v16_bfloat16\[1\]" "= 33.5"
|
gdb_test "p \$ymm4.v16_bfloat16\[1\]" "= 33.5"
|
||||||
gdb_test "p \$zmm16.v32_bfloat16\[2\]" "= 22.75"
|
gdb_test "p \$zmm7.v32_bfloat16\[2\]" "= 22.75"
|
||||||
|
Reference in New Issue
Block a user