9 struct tdesc_feature *feature;
12 tdesc_type *element_type;
13 element_type = tdesc_named_type (feature,
"bfloat16");
14 tdesc_create_vector (feature,
"v8bf16", element_type, 8);
16 element_type = tdesc_named_type (feature,
"ieee_half");
17 tdesc_create_vector (feature,
"v8h", element_type, 8);
19 element_type = tdesc_named_type (feature,
"ieee_single");
20 tdesc_create_vector (feature,
"v4f", element_type, 4);
22 element_type = tdesc_named_type (feature,
"ieee_double");
23 tdesc_create_vector (feature,
"v2d", element_type, 2);
25 element_type = tdesc_named_type (feature,
"int8");
26 tdesc_create_vector (feature,
"v16i8", element_type, 16);
28 element_type = tdesc_named_type (feature,
"int16");
29 tdesc_create_vector (feature,
"v8i16", element_type, 8);
31 element_type = tdesc_named_type (feature,
"int32");
32 tdesc_create_vector (feature,
"v4i32", element_type, 4);
34 element_type = tdesc_named_type (feature,
"int64");
35 tdesc_create_vector (feature,
"v2i64", element_type, 2);
37 tdesc_type_with_fields *type_with_fields;
38 type_with_fields = tdesc_create_union (feature,
"vec128");
39 tdesc_type *field_type;
40 field_type = tdesc_named_type (feature,
"v8bf16");
41 tdesc_add_field (type_with_fields,
"v8_bfloat16", field_type);
42 field_type = tdesc_named_type (feature,
"v8h");
43 tdesc_add_field (type_with_fields,
"v8_half", field_type);
44 field_type = tdesc_named_type (feature,
"v4f");
45 tdesc_add_field (type_with_fields,
"v4_float", field_type);
46 field_type = tdesc_named_type (feature,
"v2d");
47 tdesc_add_field (type_with_fields,
"v2_double", field_type);
48 field_type = tdesc_named_type (feature,
"v16i8");
49 tdesc_add_field (type_with_fields,
"v16_int8", field_type);
50 field_type = tdesc_named_type (feature,
"v8i16");
51 tdesc_add_field (type_with_fields,
"v8_int16", field_type);
52 field_type = tdesc_named_type (feature,
"v4i32");
53 tdesc_add_field (type_with_fields,
"v4_int32", field_type);
54 field_type = tdesc_named_type (feature,
"v2i64");
55 tdesc_add_field (type_with_fields,
"v2_int64", field_type);
56 field_type = tdesc_named_type (feature,
"uint128");
57 tdesc_add_field (type_with_fields,
"uint128", field_type);
59 element_type = tdesc_named_type (feature,
"uint128");
60 tdesc_create_vector (feature,
"v2ui128", element_type, 2);
62 tdesc_create_reg (feature,
"xmm16",
regnum++, 1, NULL, 128,
"vec128");
63 tdesc_create_reg (feature,
"xmm17",
regnum++, 1, NULL, 128,
"vec128");
64 tdesc_create_reg (feature,
"xmm18",
regnum++, 1, NULL, 128,
"vec128");
65 tdesc_create_reg (feature,
"xmm19",
regnum++, 1, NULL, 128,
"vec128");
66 tdesc_create_reg (feature,
"xmm20",
regnum++, 1, NULL, 128,
"vec128");
67 tdesc_create_reg (feature,
"xmm21",
regnum++, 1, NULL, 128,
"vec128");
68 tdesc_create_reg (feature,
"xmm22",
regnum++, 1, NULL, 128,
"vec128");
69 tdesc_create_reg (feature,
"xmm23",
regnum++, 1, NULL, 128,
"vec128");
70 tdesc_create_reg (feature,
"xmm24",
regnum++, 1, NULL, 128,
"vec128");
71 tdesc_create_reg (feature,
"xmm25",
regnum++, 1, NULL, 128,
"vec128");
72 tdesc_create_reg (feature,
"xmm26",
regnum++, 1, NULL, 128,
"vec128");
73 tdesc_create_reg (feature,
"xmm27",
regnum++, 1, NULL, 128,
"vec128");
74 tdesc_create_reg (feature,
"xmm28",
regnum++, 1, NULL, 128,
"vec128");
75 tdesc_create_reg (feature,
"xmm29",
regnum++, 1, NULL, 128,
"vec128");
76 tdesc_create_reg (feature,
"xmm30",
regnum++, 1, NULL, 128,
"vec128");
77 tdesc_create_reg (feature,
"xmm31",
regnum++, 1, NULL, 128,
"vec128");
78 tdesc_create_reg (feature,
"ymm16h",
regnum++, 1, NULL, 128,
"uint128");
79 tdesc_create_reg (feature,
"ymm17h",
regnum++, 1, NULL, 128,
"uint128");
80 tdesc_create_reg (feature,
"ymm18h",
regnum++, 1, NULL, 128,
"uint128");
81 tdesc_create_reg (feature,
"ymm19h",
regnum++, 1, NULL, 128,
"uint128");
82 tdesc_create_reg (feature,
"ymm20h",
regnum++, 1, NULL, 128,
"uint128");
83 tdesc_create_reg (feature,
"ymm21h",
regnum++, 1, NULL, 128,
"uint128");
84 tdesc_create_reg (feature,
"ymm22h",
regnum++, 1, NULL, 128,
"uint128");
85 tdesc_create_reg (feature,
"ymm23h",
regnum++, 1, NULL, 128,
"uint128");
86 tdesc_create_reg (feature,
"ymm24h",
regnum++, 1, NULL, 128,
"uint128");
87 tdesc_create_reg (feature,
"ymm25h",
regnum++, 1, NULL, 128,
"uint128");
88 tdesc_create_reg (feature,
"ymm26h",
regnum++, 1, NULL, 128,
"uint128");
89 tdesc_create_reg (feature,
"ymm27h",
regnum++, 1, NULL, 128,
"uint128");
90 tdesc_create_reg (feature,
"ymm28h",
regnum++, 1, NULL, 128,
"uint128");
91 tdesc_create_reg (feature,
"ymm29h",
regnum++, 1, NULL, 128,
"uint128");
92 tdesc_create_reg (feature,
"ymm30h",
regnum++, 1, NULL, 128,
"uint128");
93 tdesc_create_reg (feature,
"ymm31h",
regnum++, 1, NULL, 128,
"uint128");
94 tdesc_create_reg (feature,
"k0",
regnum++, 1, NULL, 64,
"uint64");
95 tdesc_create_reg (feature,
"k1",
regnum++, 1, NULL, 64,
"uint64");
96 tdesc_create_reg (feature,
"k2",
regnum++, 1, NULL, 64,
"uint64");
97 tdesc_create_reg (feature,
"k3",
regnum++, 1, NULL, 64,
"uint64");
98 tdesc_create_reg (feature,
"k4",
regnum++, 1, NULL, 64,
"uint64");
99 tdesc_create_reg (feature,
"k5",
regnum++, 1, NULL, 64,
"uint64");
100 tdesc_create_reg (feature,
"k6",
regnum++, 1, NULL, 64,
"uint64");
101 tdesc_create_reg (feature,
"k7",
regnum++, 1, NULL, 64,
"uint64");
102 tdesc_create_reg (feature,
"zmm0h",
regnum++, 1, NULL, 256,
"v2ui128");
103 tdesc_create_reg (feature,
"zmm1h",
regnum++, 1, NULL, 256,
"v2ui128");
104 tdesc_create_reg (feature,
"zmm2h",
regnum++, 1, NULL, 256,
"v2ui128");
105 tdesc_create_reg (feature,
"zmm3h",
regnum++, 1, NULL, 256,
"v2ui128");
106 tdesc_create_reg (feature,
"zmm4h",
regnum++, 1, NULL, 256,
"v2ui128");
107 tdesc_create_reg (feature,
"zmm5h",
regnum++, 1, NULL, 256,
"v2ui128");
108 tdesc_create_reg (feature,
"zmm6h",
regnum++, 1, NULL, 256,
"v2ui128");
109 tdesc_create_reg (feature,
"zmm7h",
regnum++, 1, NULL, 256,
"v2ui128");
110 tdesc_create_reg (feature,
"zmm8h",
regnum++, 1, NULL, 256,
"v2ui128");
111 tdesc_create_reg (feature,
"zmm9h",
regnum++, 1, NULL, 256,
"v2ui128");
112 tdesc_create_reg (feature,
"zmm10h",
regnum++, 1, NULL, 256,
"v2ui128");
113 tdesc_create_reg (feature,
"zmm11h",
regnum++, 1, NULL, 256,
"v2ui128");
114 tdesc_create_reg (feature,
"zmm12h",
regnum++, 1, NULL, 256,
"v2ui128");
115 tdesc_create_reg (feature,
"zmm13h",
regnum++, 1, NULL, 256,
"v2ui128");
116 tdesc_create_reg (feature,
"zmm14h",
regnum++, 1, NULL, 256,
"v2ui128");
117 tdesc_create_reg (feature,
"zmm15h",
regnum++, 1, NULL, 256,
"v2ui128");
118 tdesc_create_reg (feature,
"zmm16h",
regnum++, 1, NULL, 256,
"v2ui128");
119 tdesc_create_reg (feature,
"zmm17h",
regnum++, 1, NULL, 256,
"v2ui128");
120 tdesc_create_reg (feature,
"zmm18h",
regnum++, 1, NULL, 256,
"v2ui128");
121 tdesc_create_reg (feature,
"zmm19h",
regnum++, 1, NULL, 256,
"v2ui128");
122 tdesc_create_reg (feature,
"zmm20h",
regnum++, 1, NULL, 256,
"v2ui128");
123 tdesc_create_reg (feature,
"zmm21h",
regnum++, 1, NULL, 256,
"v2ui128");
124 tdesc_create_reg (feature,
"zmm22h",
regnum++, 1, NULL, 256,
"v2ui128");
125 tdesc_create_reg (feature,
"zmm23h",
regnum++, 1, NULL, 256,
"v2ui128");
126 tdesc_create_reg (feature,
"zmm24h",
regnum++, 1, NULL, 256,
"v2ui128");
127 tdesc_create_reg (feature,
"zmm25h",
regnum++, 1, NULL, 256,
"v2ui128");
128 tdesc_create_reg (feature,
"zmm26h",
regnum++, 1, NULL, 256,
"v2ui128");
129 tdesc_create_reg (feature,
"zmm27h",
regnum++, 1, NULL, 256,
"v2ui128");
130 tdesc_create_reg (feature,
"zmm28h",
regnum++, 1, NULL, 256,
"v2ui128");
131 tdesc_create_reg (feature,
"zmm29h",
regnum++, 1, NULL, 256,
"v2ui128");
132 tdesc_create_reg (feature,
"zmm30h",
regnum++, 1, NULL, 256,
"v2ui128");
133 tdesc_create_reg (feature,
"zmm31h",
regnum++, 1, NULL, 256,
"v2ui128");