diff --git a/deps/aro/Builtins/BuiltinFunction.zig b/deps/aro/Builtins/BuiltinFunction.zig deleted file mode 100644 index 013889b8e4..0000000000 --- a/deps/aro/Builtins/BuiltinFunction.zig +++ /dev/null @@ -1,13037 +0,0 @@ -//! Autogenerated by ./scripts/generate_builtins_dafsa.zig, do not edit - -const std = @import("std"); -const Properties = @import("Properties.zig"); -const TargetSet = Properties.TargetSet; - -tag: Tag, -param_str: []const u8, -properties: Properties, - -/// Integer starting at 0 derived from the unique index, -/// corresponds with the builtin_data array index. -pub const Tag = enum(u16) { _ }; - -const Self = @This(); - -pub fn fromName(name: []const u8) ?@This() { - const data_index = tagFromName(name) orelse return null; - return builtin_data[@intFromEnum(data_index)]; -} - -pub fn tagFromName(name: []const u8) ?Tag { - const unique_index = uniqueIndex(name) orelse return null; - return @enumFromInt(unique_index - 1); -} - -pub fn fromTag(tag: Tag) @This() { - return builtin_data[@intFromEnum(tag)]; -} - -pub fn nameFromTagIntoBuf(tag: Tag, name_buf: []u8) []u8 { - std.debug.assert(name_buf.len >= longest_builtin_name); - const unique_index = @intFromEnum(tag) + 1; - return nameFromUniqueIndex(unique_index, name_buf); -} - -pub fn nameFromTag(tag: Tag) NameBuf { - var name_buf: NameBuf = undefined; - const unique_index = @intFromEnum(tag) + 1; - const name = nameFromUniqueIndex(unique_index, &name_buf.buf); - name_buf.len = @intCast(name.len); - return name_buf; -} - -pub const NameBuf = struct { - buf: [longest_builtin_name]u8 = undefined, - len: std.math.IntFittingRange(0, longest_builtin_name), - - pub fn span(self: *const NameBuf) []const u8 { - return self.buf[0..self.len]; - } -}; - -pub fn exists(name: []const u8) bool { - if (name.len < shortest_builtin_name or name.len > longest_builtin_name) return false; - - var index: u16 = 0; - for (name) |c| { - index = findInList(dafsa[index].child_index, c) orelse return false; - } - return dafsa[index].end_of_word; -} - -test exists { - try std.testing.expect(exists("__builtin_canonicalize")); - try std.testing.expect(!exists("__builtin_canonicaliz")); - try std.testing.expect(!exists("__builtin_canonicalize.")); -} - -pub fn isVarArgs(self: @This()) bool { - return self.param_str[self.param_str.len - 1] == '.'; -} - -pub const shortest_builtin_name = 3; -pub const longest_builtin_name = 43; - -pub const BuiltinsIterator = struct { - index: u16 = 1, - name_buf: [longest_builtin_name]u8 = undefined, - - pub const Entry = struct { - /// Memory of this slice is overwritten on every call to `next` - name: []const u8, - builtin: Self, - }; - - pub fn next(self: *BuiltinsIterator) ?Entry { - if (self.index > builtin_data.len) return null; - const index = self.index; - const data_index = index - 1; - self.index += 1; - return .{ - .name = nameFromUniqueIndex(index, &self.name_buf), - .builtin = builtin_data[data_index], - }; - } -}; - -test BuiltinsIterator { - var it = BuiltinsIterator{}; - - var seen = std.StringHashMap(Self).init(std.testing.allocator); - defer seen.deinit(); - - var arena_state = std.heap.ArenaAllocator.init(std.testing.allocator); - defer arena_state.deinit(); - const arena = arena_state.allocator(); - - while (it.next()) |entry| { - const index = uniqueIndex(entry.name).?; - var buf: [longest_builtin_name]u8 = undefined; - const name_from_index = nameFromUniqueIndex(index, &buf); - try std.testing.expectEqualStrings(entry.name, name_from_index); - - if (seen.contains(entry.name)) { - std.debug.print("iterated over {s} twice\n", .{entry.name}); - std.debug.print("current data: {}\n", .{entry.builtin}); - std.debug.print("previous data: {}\n", .{seen.get(entry.name).?}); - return error.TestExpectedUniqueEntries; - } - try seen.put(try arena.dupe(u8, entry.name), entry.builtin); - } - try std.testing.expectEqual(@as(usize, builtin_data.len), seen.count()); -} - -/// Search siblings of `first_child_index` for the `char` -/// If found, returns the index of the node within the `dafsa` array. -/// Otherwise, returns `null`. -fn findInList(first_child_index: u16, char: u8) ?u16 { - var index = first_child_index; - while (true) { - if (dafsa[index].char == char) return index; - if (dafsa[index].end_of_list) return null; - index += 1; - } - unreachable; -} - -/// Returns a unique (minimal perfect hash) index (starting at 1) for the `name`, -/// or null if the name was not found. -fn uniqueIndex(name: []const u8) ?u16 { - if (name.len < shortest_builtin_name or name.len > longest_builtin_name) return null; - - var index: u16 = 0; - var node_index: u16 = 0; - - for (name) |c| { - const child_index = findInList(dafsa[node_index].child_index, c) orelse return null; - var sibling_index = dafsa[node_index].child_index; - while (true) { - const sibling_c = dafsa[sibling_index].char; - std.debug.assert(sibling_c != 0); - if (sibling_c < c) { - index += dafsa[sibling_index].number; - } - if (dafsa[sibling_index].end_of_list) break; - sibling_index += 1; - } - node_index = child_index; - if (dafsa[node_index].end_of_word) index += 1; - } - - if (!dafsa[node_index].end_of_word) return null; - - return index; -} - -/// Returns a slice of `buf` with the name associated with the given `index`. -/// This function should only be called with an `index` that -/// is already known to exist within the `dafsa`, e.g. an index -/// returned from `uniqueIndex`. -fn nameFromUniqueIndex(index: u16, buf: []u8) []u8 { - std.debug.assert(index >= 1 and index <= builtin_data.len); - - var node_index: u16 = 0; - var count: u16 = index; - var fbs = std.io.fixedBufferStream(buf); - const w = fbs.writer(); - - while (true) { - var sibling_index = dafsa[node_index].child_index; - while (true) { - if (dafsa[sibling_index].number > 0 and dafsa[sibling_index].number < count) { - count -= dafsa[sibling_index].number; - } else { - w.writeByte(dafsa[sibling_index].char) catch unreachable; - node_index = sibling_index; - if (dafsa[node_index].end_of_word) { - count -= 1; - } - break; - } - - if (dafsa[sibling_index].end_of_list) break; - sibling_index += 1; - } - if (count == 0) break; - } - - return fbs.getWritten(); -} - -pub const MaxParamCount = 12; - -/// We're 1 bit shy of being able to fit this in a u32: -/// - char only contains 0-9, a-z, A-Z, and _, so it could use a enum(u6) with a way to convert <-> u8 -/// (note: this would have a performance cost that may make the u32 not worth it) -/// - number has a max value of > 2047 and < 4095 (the first _ node has the largest number), -/// so it could fit into a u12 -/// - child_index currently has a max of > 4095 and < 8191, so it could fit into a u13 -/// -/// with the end_of_word/end_of_list 2 bools, that makes 33 bits total -const Node = packed struct(u64) { - char: u8, - /// Nodes are numbered with "an integer which gives the number of words that - /// would be accepted by the automaton starting from that state." This numbering - /// allows calculating "a one-to-one correspondence between the integers 1 to L - /// (L is the number of words accepted by the automaton) and the words themselves." - /// - /// Essentially, this allows us to have a minimal perfect hashing scheme such that - /// it's possible to store & lookup the properties of each builtin using a separate array. - number: u16, - /// If true, this node is the end of a valid builtin. - /// Note: This does not necessarily mean that this node does not have child nodes. - end_of_word: bool, - /// If true, this node is the end of a sibling list. - /// If false, then (index + 1) will contain the next sibling. - end_of_list: bool, - /// Padding bits to get to u64, unsure if there's some way to use these to improve something. - _extra: u22 = 0, - /// Index of the first child of this node. - child_index: u16, -}; - -const dafsa = [_]Node{ - .{ .char = 0, .end_of_word = false, .end_of_list = true, .number = 0, .child_index = 1 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3601, .child_index = 19 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 25, .child_index = 32 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 37 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 82, .child_index = 39 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 50 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 33, .child_index = 52 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 62 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 63 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 64 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 36, .child_index = 67 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 73 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 76 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 78 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 17, .child_index = 80 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 54, .child_index = 83 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 14, .child_index = 92 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 96 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 100 }, - .{ .char = 'B', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 102 }, - .{ .char = 'E', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 103 }, - .{ .char = 'I', .end_of_word = false, .end_of_list = false, .number = 29, .child_index = 104 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 105 }, - .{ .char = 'R', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 106 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3525, .child_index = 107 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 125 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 127 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 129 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 130 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 131 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 133 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 134 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 135 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 137 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 138 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 140 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 141 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 142 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 144 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 25, .child_index = 145 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 151 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 137 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 152 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 154 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 155 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 156 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 159 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 161 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 162 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 164 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 165 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 166 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 168 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 169 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 170 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 171 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 172 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 175 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 177 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 178 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 179 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 180 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 181 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 182 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 183 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 184 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 194 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 195 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 196 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 197 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 199 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 201 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 203 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 204 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 205 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 206 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 207 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 209 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 210 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 211 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 213 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 214 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 215 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 216 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 217 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 218 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 220 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 151 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 178 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 31, .child_index = 221 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 223 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 196 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 224 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 226 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 227 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 228 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 231 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 235 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 236 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 237 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 238 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 239 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 240 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 241 }, - .{ .char = 'G', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 242 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 243 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2967, .child_index = 248 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 249 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 252 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 255 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 257 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 259 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 260 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 390, .child_index = 262 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 264 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 265 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 113, .child_index = 266 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 269 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 270 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 271 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 273 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 274 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 275 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 276 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 277 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 278 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 279 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 281 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 282 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 283 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 284 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 285 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 286 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 287 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 288 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 289 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 223 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 290 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 292 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 293 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 294 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 137 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 295 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 296 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 140 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 164 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 297 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 298 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 299 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 300 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 296 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 301 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 302 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 303 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 209 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 306 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 307 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 223 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 151 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 223 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 308 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 311 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 9, .child_index = 312 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 294 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 316 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 317 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 318 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = false, .number = 6, .child_index = 319 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 206 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 322 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 323 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 210 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 324 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 327 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 328 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 329 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 330 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 331 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 332 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 333 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 334 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 335 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 336 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 337 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 338 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 339 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 341 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 342 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 343 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 345 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 346 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 194 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 201 }, - .{ .char = 'g', .end_of_word = true, .end_of_list = false, .number = 15, .child_index = 347 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 352 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 353 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 354 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 295 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 355 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 360 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 363 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 364 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 365 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 203 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 366 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 368 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 370 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 371 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 372 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 374 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 375 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 303 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 176 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 377 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 379 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 303 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 338 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 342 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 389 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 390 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 393 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 178 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 327 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 220 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 178 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 394 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 397 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 398 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 399 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 400 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 401 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 402 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 275 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 403 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 404 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 405 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 406 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 407 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 408 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 409 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 410 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 411 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 238 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 413 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 415 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 170 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 416 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 418 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 419 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 420 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 389, .child_index = 421 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 422 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 423 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 424 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 425 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 108, .child_index = 427 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 428 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 429 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 430 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 431 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 433 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 434 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 435 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 289 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 436 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 437 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 438 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 439 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 352 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 440 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 441 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 443 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 303 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 444 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 445 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 9, .child_index = 446 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 451 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 452 }, - .{ .char = 'g', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 296 }, - .{ .char = 'j', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 453 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 301 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 298 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 454 }, - .{ .char = 'm', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 455 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 456 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 458 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 299 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 459 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 460 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 461 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 297 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 462 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 464 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 466 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 467 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 468 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 469 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 470 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 471 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 472 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 473 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 474 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 336 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 299 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 475 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 476 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 374 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 297 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 478 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 479 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 480 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 484 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 485 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 486 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 487 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 488 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 490 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 491 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 492 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 332 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 493 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 494 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 495 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 497 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 498 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 499 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 292 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 485 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 500 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 505 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 506 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 507 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 509 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 511 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 512 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 513 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 515 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 516 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 517 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 518 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 519 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 520 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 521 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 522 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 323 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 524 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 525 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 527 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 528 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 529 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 531 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 532 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 533 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 534 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 535 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 536 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 537 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 538 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 539 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 540 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 541 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 438 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 542 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 543 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 544 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 545 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 546 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 389, .child_index = 547 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 419 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 548 }, - .{ .char = 'v', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 550 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 540 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 108, .child_index = 551 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 540 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 552 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 553 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 554 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 555 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 556 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 557 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 558 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 559 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 560 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 561 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 563 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 563 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 566 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 567 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 568 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'y', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 570 }, - .{ .char = '1', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 571 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 573 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 574 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 575 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 576 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 577 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 238 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 578 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 579 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 580 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 581 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 582 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 579 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 583 }, - .{ .char = '0', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 322 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 584 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 292 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 586 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 292 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 587 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 588 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 589 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 590 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 591 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 592 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 595 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 596 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 282 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 217 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 598 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 450 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 600 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 601 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 602 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 604 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 505 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 393 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 607 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 457 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 608 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 613 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 292 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 614 }, - .{ .char = 'k', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 497 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 615 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 484 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 618 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 619 }, - .{ .char = 'F', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 620 }, - .{ .char = 'T', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 621 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 622 }, - .{ .char = 'E', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 623 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 624 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 625 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 626 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 627 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 628 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 629 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 630 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 631 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 632 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 633 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 634 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 635 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 636 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 637 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 389, .child_index = 638 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 499 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 108, .child_index = 639 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 520 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 641 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 642 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 643 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 644 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 645 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 646 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 647 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 649 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 650 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 651 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 652 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 653 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 568 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 521 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 656 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 657 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 658 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 659 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 660 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 661 }, - .{ .char = 'o', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 662 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 206 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 361 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 663 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 664 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 311 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 598 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'k', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 665 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 667 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 286 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 668 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 669 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 670 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 671 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 672 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 673 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 674 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 675 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 676 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 677 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 678 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 679 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 680 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 681 }, - .{ .char = '0', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 680 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 682 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 683 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 684 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 389, .child_index = 686 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 107, .child_index = 701 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 710 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 711 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 712 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 714 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 715 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 716 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 717 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 718 }, - .{ .char = '6', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '4', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 719 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 720 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 206 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 721 }, - .{ .char = 'm', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 353 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 722 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 723 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 722 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 724 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 524 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 725 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 726 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 727 }, - .{ .char = 'C', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 728 }, - .{ .char = 'A', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 729 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 730 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 731 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 732 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 733 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 734 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 735 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 736 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 737 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 738 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 739 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 649 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 48, .child_index = 740 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 742 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 744 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 40, .child_index = 746 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 748 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 58, .child_index = 749 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 753 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 84, .child_index = 755 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 23, .child_index = 759 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 761 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 53, .child_index = 762 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 29, .child_index = 766 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 770 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 771 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 773 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 774 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 776 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 40, .child_index = 777 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 778 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 779 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 780 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 13, .child_index = 781 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 784 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 785 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 786 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 787 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 788 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 789 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 790 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 8, .child_index = 791 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 793 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 794 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 795 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 796 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 797 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 456 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 798 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 206 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 799 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 800 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 671 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 801 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 802 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 803 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 804 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 805 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 806 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 811 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 812 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 813 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 814 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 815 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 816 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 817 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 818 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 819 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 820 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 821 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 26, .child_index = 823 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 827 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 828 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 34, .child_index = 829 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 833 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 834 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 835 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 837 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 839 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 72, .child_index = 840 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 828 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 842 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 843 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 844 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 845 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 846 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 14, .child_index = 847 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 33, .child_index = 848 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 849 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 850 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 851 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 853 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 854 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 855 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 856 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 842 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 857 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 858 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 859 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 859 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 860 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 861 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 862 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 863 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 864 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 865 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 866 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 867 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 868 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 780 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 869 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 870 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 871 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 872 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 873 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 649 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 874 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 875 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 876 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 877 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 203 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 322 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 878 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 879 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 880 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 881 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 882 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 883 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 884 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 885 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 886 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 887 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 888 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 889 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2967, .child_index = 891 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 912 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 913 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 914 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 915 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 916 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 917 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 918 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 920 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 921 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 922 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 923 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 924 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 925 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 926 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 927 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 929 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 930 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 931 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 924 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 932 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 933 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 935 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 936 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 15, .child_index = 937 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 939 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 940 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 940 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 941 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 36, .child_index = 942 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 942 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 837 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 943 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 944 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 947 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 950 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 951 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 952 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 953 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 954 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 955 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 956 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 923 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 957 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 958 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 842 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 959 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 864 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 868 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 960 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 961 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 859 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 962 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 864 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 963 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 964 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 965 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 966 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 967 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 968 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 969 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 970 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 971 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 972 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 973 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 974 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 975 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 976 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 977 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 978 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 979 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 980 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 981 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 982 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 983 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 984 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 985 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 986 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 28, .child_index = 987 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 302, .child_index = 988 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 997 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 114, .child_index = 1001 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1013 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 58, .child_index = 1018 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 49, .child_index = 1022 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1030 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1031 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 27, .child_index = 1033 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 52, .child_index = 1037 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 686, .child_index = 1043 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 25, .child_index = 1049 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1052 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 142, .child_index = 1055 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 52, .child_index = 1060 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 71, .child_index = 1064 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 19, .child_index = 1076 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 13, .child_index = 1080 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 1273, .child_index = 1084 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 22, .child_index = 1089 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1092 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1093 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 521 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1094 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1095 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 1096 }, - .{ .char = '0', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1097 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1098 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1099 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1101 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1102 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1103 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1104 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 940 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 940 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 926 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 1107 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1109 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1110 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 924 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 924 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 932 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1111 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 1095 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1112 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1113 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 1114 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1122 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1123 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 292 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 486 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1124 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 1095 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1125 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 1126 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 1128 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1129 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1130 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1131 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1133 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1134 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 929 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1135 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1136 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 1137 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1138 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1139 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1141 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1142 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1143 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1144 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1145 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1146 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1147 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1148 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1151 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1154 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1156 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1157 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 29, .child_index = 1158 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1165 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1166 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1167 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1168 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1169 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1170 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1171 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1172 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1173 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1174 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 28, .child_index = 1175 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 135 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1184 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1185 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1186 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 122, .child_index = 1188 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 403 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 134, .child_index = 1189 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 1190 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1192 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 142 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1193 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1194 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 144 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 30, .child_index = 1195 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1202 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 137 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1203 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1205 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 154 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 1206 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 20, .child_index = 1210 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1214 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 161 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 162 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1217 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1219 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1220 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1221 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1222 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1223 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1224 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 25, .child_index = 1225 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1226 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 23, .child_index = 1227 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1229 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1230 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1231 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1232 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 20, .child_index = 1234 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1237 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1239 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 178 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1242 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1243 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1244 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1245 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1246 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 1247 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 13, .child_index = 1250 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1257 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1259 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1260 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1261 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 1263 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1265 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1267 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1269 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 135, .child_index = 1270 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1271 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 534, .child_index = 1272 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1273 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 1274 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 1275 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1277 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1278 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1279 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1280 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1281 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 1283 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 108, .child_index = 1285 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1286 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 1288 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1289 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 19, .child_index = 1290 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1294 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 1295 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1297 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1298 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1299 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1300 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 1301 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1303 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 220 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1304 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1306 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1307 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 20, .child_index = 1309 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1312 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1313 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1260 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1314 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1315 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1297 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1303 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1317 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1320 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 227 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1263, .child_index = 1321 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1322 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 231 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 14, .child_index = 1324 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 235 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 236 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1325 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1326 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1327 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 1331 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1339 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1342 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1343 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1344 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1346 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1347 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1348 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1352 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 451 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1353 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1347 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1327 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1357 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1358 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1353 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1359 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1360 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1362 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1360 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1362 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1360 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1363 }, - .{ .char = 's', .end_of_word = true, .end_of_list = false, .number = 6, .child_index = 1365 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 13, .child_index = 1368 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1372 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1373 }, - .{ .char = '4', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 954 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1374 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1375 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1327 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 1376 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 930 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1352 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1377 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1378 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1382 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 1385 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1386 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1388 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1389 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1393 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1394 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1395 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1396 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1397 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1398 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1399 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1400 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1401 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1402 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1403 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1404 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1405 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1406 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1407 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1408 }, - .{ .char = 'A', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1409 }, - .{ .char = 'C', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1410 }, - .{ .char = 'D', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1411 }, - .{ .char = 'E', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 1412 }, - .{ .char = 'I', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1413 }, - .{ .char = 'O', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1414 }, - .{ .char = 'X', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1415 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1416 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1417 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1418 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1419 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1420 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1421 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1422 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1423 }, - .{ .char = 'C', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1424 }, - .{ .char = 'N', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1425 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1426 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1427 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1428 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1429 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1430 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 1431 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1434 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1437 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1438 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1440 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1441 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 122, .child_index = 1442 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 134, .child_index = 1443 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1313 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1444 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 1445 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1446 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1447 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 294 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 137 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1448 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1449 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 296 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 140 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 164 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1450 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1451 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 299 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1452 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1453 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 296 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1454 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1455 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1457 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1458 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1461 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 9, .child_index = 1462 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 209 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 306 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1465 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 223 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1455 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1466 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1467 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1468 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1469 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1470 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 1471 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 8, .child_index = 1472 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = false, .number = 21, .child_index = 1475 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1481 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1483 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1484 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1485 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1486 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1487 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = false, .number = 10, .child_index = 1488 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1491 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1492 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1493 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 210 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1494 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1495 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1497 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1498 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1500 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1501 }, - .{ .char = '3', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1502 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1503 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 332 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 5, .child_index = 1504 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1506 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1507 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1508 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1510 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1511 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1512 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1513 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1515 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 344 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1516 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1517 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1518 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 194 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1265 }, - .{ .char = 'g', .end_of_word = true, .end_of_list = false, .number = 23, .child_index = 1519 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 352 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1524 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1525 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 295 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1526 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1527 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 135, .child_index = 1531 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1532 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 534, .child_index = 1533 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1534 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 10, .child_index = 1535 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1538 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1539 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1540 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1542 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1544 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1545 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1546 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1547 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1548 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 8, .child_index = 1549 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 108, .child_index = 1552 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1553 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 365 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 1555 }, - .{ .char = '0', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 1556 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1557 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 1559 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1560 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1562 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1563 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1565 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1566 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1567 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 1568 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1570 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1575 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1576 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 9, .child_index = 1462 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1577 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1578 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 210 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1579 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 327 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1580 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1581 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 377 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 17, .child_index = 1582 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1438 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 8, .child_index = 1589 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1592 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1593 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1594 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1596 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1597 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1580 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1263, .child_index = 1598 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 176 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 178 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 1599 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1600 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1603 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1100 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1100 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1100 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 1604 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1606 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1607 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1608 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 1609 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1611 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1612 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1613 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 519 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1615 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1616 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1617 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1618 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1619 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1620 }, - .{ .char = 'm', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1621 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1621 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1621 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1621 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1622 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1621 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1623 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '4', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '2', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1362 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '4', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1360 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1360 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1360 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1363 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1360 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1624 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1625 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1626 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1629 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 1630 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1631 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1632 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1633 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1634 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1635 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1636 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1638 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1639 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 1640 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1641 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1642 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1643 }, - .{ .char = '1', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1644 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '4', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1645 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1646 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1647 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1397 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1648 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1649 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1650 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1651 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1652 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1653 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1654 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1655 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1656 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1657 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1658 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1659 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1661 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1662 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1663 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1664 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1663 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1665 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1414 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1667 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1668 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1669 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 887 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1670 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1671 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1672 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1673 }, - .{ .char = 'F', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1674 }, - .{ .char = 'S', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1674 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 409 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1430 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1675 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1676 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1677 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1427 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1430 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1678 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1427 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1430 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1680 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 8, .child_index = 1589 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1682 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1683 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1686 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1687 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 122, .child_index = 1688 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 134, .child_index = 1689 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1705 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 12, .child_index = 1706 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1710 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1711 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1712 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1714 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1717 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1718 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1719 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 549 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1720 }, - .{ .char = 'j', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1721 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1722 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1723 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1715 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1725 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1727 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1728 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1729 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1730 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1731 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 1732 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1715 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1733 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1734 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 5, .child_index = 1504 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1735 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1736 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1737 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1738 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'm', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1739 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1740 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1741 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1742 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1743 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1744 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 458 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1745 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1450 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1746 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1747 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1748 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1749 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1750 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1751 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1752 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1753 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1754 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 457 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1755 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1756 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1757 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1743 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1758 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1759 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 5, .child_index = 1504 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1715 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1450 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1761 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1762 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1763 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 484 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 485 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1766 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 135, .child_index = 1767 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 534, .child_index = 1768 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1682 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1783 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1784 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1786 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1787 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1788 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1789 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1790 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1791 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1792 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1793 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1794 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 361 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 108, .child_index = 1795 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1808 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1809 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 1810 }, - .{ .char = '0', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 1813 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1814 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 295 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 1816 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1817 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1818 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1819 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 332 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1820 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1821 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1822 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1824 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1825 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1826 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 497 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 344 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 519 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1827 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1828 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1822 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1829 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1822 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1830 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 500 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 505 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 323 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 509 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 511 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 512 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 513 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1733 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1715 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1831 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1832 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1833 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1834 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1835 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1836 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1263, .child_index = 1837 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 1838 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 887 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 888 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1839 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 1840 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1841 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1842 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1843 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1844 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1844 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 1845 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1846 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1847 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1848 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1849 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1611 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1850 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1851 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1852 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1853 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1854 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1855 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1856 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1857 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1858 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 655 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1861 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1863 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 1864 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1865 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1866 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1867 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1868 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1869 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 655 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1870 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1352 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 1871 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1872 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1873 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1874 }, - .{ .char = '6', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1875 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1876 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1877 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1878 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1879 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1880 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1401 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1881 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1882 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1883 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 286 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 451 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1884 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1885 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1886 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1665 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1887 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1888 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 1889 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1890 }, - .{ .char = 'I', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1406 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1891 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1892 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1168 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1893 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1168 }, - .{ .char = 'S', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1894 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1895 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1896 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1900 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1901 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 1903 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1427 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1430 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1906 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 549 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1907 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1908 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 122, .child_index = 1909 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 1910 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1913 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1916 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1917 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 1918 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 1919 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 420 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1921 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 1922 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1925 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 51, .child_index = 1927 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 1934 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 1937 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1942 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 1943 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 274 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1945 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1715 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1733 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 1715 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1946 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1947 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1950 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1951 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1733 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1952 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1953 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1485 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 332 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1954 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1955 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1956 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1957 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 1959 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1961 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1962 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1963 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1964 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1965 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1966 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 1967 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1968 }, - .{ .char = '0', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1969 }, - .{ .char = '1', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1970 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1971 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1972 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1973 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1974 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1975 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1976 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1977 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1978 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1979 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 328 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1980 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1981 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1982 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1983 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1984 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1985 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 579 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1986 }, - .{ .char = '0', .end_of_word = true, .end_of_list = false, .number = 5, .child_index = 1504 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1987 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1988 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 291 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1989 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1990 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 135, .child_index = 1991 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 50, .child_index = 2003 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 56, .child_index = 2007 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 50, .child_index = 2013 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 26, .child_index = 2018 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 106, .child_index = 2021 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 2032 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 2034 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 2036 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 73, .child_index = 2037 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 2042 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2044 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 2045 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 97, .child_index = 2046 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2053 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2054 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2055 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2056 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2057 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2058 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2059 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2060 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2061 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2062 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2063 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2064 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2065 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2066 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2067 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2068 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2070 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2071 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 41, .child_index = 2072 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2078 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2079 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2081 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 19, .child_index = 2084 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2089 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2090 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 2094 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2097 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2100 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2101 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2102 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2103 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2104 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 2105 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2107 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1826 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 2108 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2109 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2110 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2111 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2112 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 10, .child_index = 2113 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1682 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2116 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2118 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2120 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2121 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2122 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2123 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2124 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1970 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 1504 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1546 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2125 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2126 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2127 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1263, .child_index = 2128 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 2129 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 986 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2131 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2133 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1847 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1847 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2134 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2135 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2135 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2136 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1847 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2137 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2138 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2142 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2143 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2144 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2145 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2146 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2147 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2148 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 655 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2149 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2150 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 2151 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2152 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2153 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1869 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2154 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2156 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 2157 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2158 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2159 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2160 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2161 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2162 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2163 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 580 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2164 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2165 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 649 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 649 }, - .{ .char = 'g', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2166 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2167 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2168 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2169 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2170 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2171 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2172 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 582 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2173 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2174 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2175 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2176 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2177 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2179 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2180 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2181 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2182 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2183 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2180 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2184 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2186 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2186 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2187 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2188 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 2190 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 122, .child_index = 2191 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2192 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2193 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2196 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1883 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2197 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 2198 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2201 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2202 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2204 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2205 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2207 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2208 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2210 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2211 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2212 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2214 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2217 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 2219 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2221 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 2223 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2226 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2227 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 520 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2229 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2212 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2217 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2217 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 2230 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2226 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2232 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 431 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2211 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 2233 }, - .{ .char = 'v', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 2234 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '3', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2235 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 649 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2236 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2237 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2238 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2239 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2240 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2241 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2242 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2243 }, - .{ .char = '6', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 238 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2244 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2245 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2246 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2247 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2249 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2250 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 2251 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2243 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2252 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2253 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2254 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2255 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2256 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2257 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2258 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2259 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2260 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2261 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2262 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2263 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2264 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2167 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 2265 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2267 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2268 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2269 }, - .{ .char = 'y', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2270 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2270 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 19, .child_index = 2271 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2274 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 2277 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 2278 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2279 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2280 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2281 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 2284 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 21, .child_index = 2289 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2292 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 25, .child_index = 2295 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2297 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 2298 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2299 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2300 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2301 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2302 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 2303 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2304 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 13, .child_index = 2306 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 2308 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2309 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2310 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2311 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 32, .child_index = 2312 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2314 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2311 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2315 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2316 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 2032 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2317 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 2318 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2324 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2325 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2326 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2328 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2329 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 14, .child_index = 2330 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2334 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 26, .child_index = 2337 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2344 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2347 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2348 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 2349 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2350 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2351 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 28, .child_index = 2354 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 20, .child_index = 2356 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 2357 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2359 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2360 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2361 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2044 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2363 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 2365 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2367 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2368 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 2369 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2371 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 32, .child_index = 2372 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2374 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 24, .child_index = 2376 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2377 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2044 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2378 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2379 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2380 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2381 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2382 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2383 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2384 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2385 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2386 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2387 }, - .{ .char = 'y', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1485 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2388 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2389 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2390 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2391 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2392 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2393 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2394 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2396 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2397 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2398 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 13, .child_index = 2400 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2403 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2405 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2406 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1342 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2407 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2408 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2409 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2411 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2412 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2415 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2416 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2419 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2420 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2421 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2422 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2423 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2425 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2426 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2430 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1616 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2431 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2432 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2433 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2434 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2435 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2436 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2437 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2438 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2439 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2440 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 2441 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2442 }, - .{ .char = 'o', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1974 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2443 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2445 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 3, .child_index = 1724 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1682 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1534 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2446 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2447 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2448 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 297 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2449 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 429 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2450 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2451 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2452 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1263, .child_index = 2453 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2465 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2468 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2469 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2470 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2471 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2472 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2473 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2474 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1847 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2475 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2476 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2477 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2478 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2479 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2481 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2482 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2483 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2484 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 568 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2488 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 2489 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1869 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1869 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2490 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2490 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2491 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 2492 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2493 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2494 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2495 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2496 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2497 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2498 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 674 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2499 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2500 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 584 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2501 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2502 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2503 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2504 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2505 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2506 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2507 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2508 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2509 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2183 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2510 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2511 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2183 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2512 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2513 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2510 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2512 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2510 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2184 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2514 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2515 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2516 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 122, .child_index = 2518 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1362 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 332 }, - .{ .char = 's', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1881 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1881 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2535 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2536 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 332 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 2537 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2539 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 2540 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 1362 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2542 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2543 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 1661 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 463 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2544 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1652 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 2545 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2547 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2536 }, - .{ .char = 'v', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2212 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2548 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 14, .child_index = 2550 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2552 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2555 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2557 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 2537 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 332 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2539 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2558 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2560 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2561 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2562 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2563 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2557 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2566 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2567 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2569 }, - .{ .char = '2', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2570 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2571 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2572 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2573 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2574 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2575 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1491 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2576 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2577 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2578 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2579 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2580 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2581 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2582 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 2583 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2584 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2585 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1744 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2586 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2587 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 729 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2588 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1451 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2589 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2591 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2592 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1166 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2593 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2594 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2595 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2596 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2597 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2599 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2600 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 15, .child_index = 2601 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2602 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 479 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2603 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2604 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 2605 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2606 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2608 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2609 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2610 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 463 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2611 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2613 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2614 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2615 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 2616 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2617 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2618 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 2619 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2620 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2621 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2622 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 2623 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 13, .child_index = 2626 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2621 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 24, .child_index = 2627 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2363 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2630 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2631 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2633 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2634 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2635 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2363 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2636 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2309 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2637 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2639 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2646 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 2647 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2647 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2649 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2651 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2652 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2653 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2654 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2655 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2658 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2659 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2660 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2663 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2664 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2667 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2668 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2670 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2671 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2672 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2674 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2675 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2676 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2677 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2678 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2679 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2653 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2654 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2680 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2658 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2659 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2682 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 2683 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2667 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2687 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2688 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2689 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2690 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2691 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2695 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2697 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2701 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2703 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 20, .child_index = 2704 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 20, .child_index = 2704 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2650 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2706 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2707 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2708 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2711 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2711 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2712 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2713 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2714 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2716 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2717 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2644 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2718 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 2719 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 2719 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2697 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 24, .child_index = 2722 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2724 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1524 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2725 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2726 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2727 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2728 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2729 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2730 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2731 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2732 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2733 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2734 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2735 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2736 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2737 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2741 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2742 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2744 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2746 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2747 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2748 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2749 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2751 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 2752 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2757 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2758 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2759 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2760 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2761 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2762 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2763 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2762 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1342 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2764 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2765 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2766 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2767 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2764 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2768 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2765 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2766 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2769 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2770 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2772 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2773 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2774 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2775 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2777 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2778 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2779 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2780 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2778 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2781 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2782 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 656 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2783 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2784 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2785 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2786 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2787 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2788 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2790 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 2791 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2725 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2795 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2796 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 2797 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1487 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2575 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2798 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2799 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2800 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2801 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2802 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2803 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2805 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2807 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2808 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2812 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2814 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 393, .child_index = 2815 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2819 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2821 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 836, .child_index = 2823 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2837 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2838 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2839 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2840 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2841 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2842 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2843 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2844 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2845 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2846 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2847 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2848 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1352 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1624 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 506 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2849 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2850 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1100 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2851 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2852 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2853 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2854 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2855 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 2856 }, - .{ .char = '3', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2235 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 2857 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2864 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2865 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2866 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2867 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2868 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2869 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2870 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2871 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2872 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2873 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2874 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1362 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2875 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2876 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2877 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2878 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2879 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2880 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2879 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2879 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2881 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2882 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2883 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2884 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2885 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2887 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 13, .child_index = 2888 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 15, .child_index = 2892 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2894 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 2896 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2900 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 2901 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2905 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2906 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 2909 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2912 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 11, .child_index = 2914 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 23, .child_index = 2917 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2923 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 2924 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 2926 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2928 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2929 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 549 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2930 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1362 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1362 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1808 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1665 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 649 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2931 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 463 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2557 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 2933 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2938 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2940 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 2941 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2940 }, - .{ .char = 't', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2944 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2931 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2945 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2946 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2947 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2948 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2949 }, - .{ .char = 't', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2944 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2951 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1749 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2952 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2953 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2954 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2955 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 512 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2956 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2957 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2958 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2959 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2960 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 568 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2961 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2962 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2963 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 2964 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2965 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2966 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1143 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2967 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2968 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2969 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2970 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2971 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2972 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2973 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2974 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2975 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2976 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2977 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2978 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2979 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2980 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 15, .child_index = 2981 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2985 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2986 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2987 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 2988 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2991 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2991 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 2995 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2712 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2997 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2998 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2999 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3000 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3001 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 14, .child_index = 3002 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3007 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3008 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 3009 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3011 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3012 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3013 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3014 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3015 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 3016 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 13, .child_index = 3018 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3020 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3021 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3022 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 3024 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2363 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2363 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'v', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2697 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3026 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3022 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3022 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3027 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3028 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2702 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2654 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2680 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3029 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3031 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3032 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3033 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3034 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2702 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3032 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2652 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3035 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3035 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3036 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3037 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2682 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2702 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3037 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2702 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2654 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2680 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3029 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3038 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3040 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3027 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3027 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3041 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2701 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3042 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3043 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3044 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2697 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3045 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2708 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3047 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2650 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3050 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2708 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3051 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3052 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'v', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3041 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3042 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3053 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3056 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2697 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2701 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 3057 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3059 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3060 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3061 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3062 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3063 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2161 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3064 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3065 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3066 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 1485 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3067 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3068 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3069 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 311 }, - .{ .char = 't', .end_of_word = true, .end_of_list = false, .number = 4, .child_index = 3070 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 451 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 458 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3072 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3074 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3076 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3077 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3078 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3079 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2747 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2751 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2751 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2751 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3080 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3081 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3082 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3083 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3084 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3086 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3089 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3090 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3092 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3094 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3095 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3096 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3097 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3097 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3098 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2431 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3099 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3100 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3101 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3102 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3103 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3104 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3105 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3106 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3107 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3108 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3109 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3110 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3112 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 664 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3115 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3116 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 1491 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3117 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3118 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3119 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3120 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3121 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3122 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3123 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3124 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3125 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3126 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3127 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 3128 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3130 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3131 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3120 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3132 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3133 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3130 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3134 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 388, .child_index = 3135 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3126 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3147 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3130 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3149 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 36, .child_index = 3150 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 15, .child_index = 3152 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 71, .child_index = 3153 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 45, .child_index = 3156 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 3157 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 294, .child_index = 3159 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 32, .child_index = 3166 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 35, .child_index = 3167 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 81, .child_index = 3168 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3173 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3174 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 42, .child_index = 3175 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 163, .child_index = 3181 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3189 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2814 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3190 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3191 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3190 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3192 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3193 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3194 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3195 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3196 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3197 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3198 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3199 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3200 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3201 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3202 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3203 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3204 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3205 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 3206 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3207 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3209 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3211 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3212 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3213 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3214 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3215 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3216 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3217 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3218 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3219 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3220 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3221 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 3222 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3223 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3224 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3225 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 3226 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3227 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 486 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3228 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3229 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3230 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2879 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3231 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3232 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3233 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3234 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3235 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3236 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3237 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3238 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3239 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3240 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 3241 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3243 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3244 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3245 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3246 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1891 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3247 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3248 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3250 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3252 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2787 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 3253 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3254 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3255 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3256 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3257 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3258 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3259 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3260 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3261 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3262 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3263 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3264 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 3265 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3266 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3267 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3273 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3274 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3275 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3276 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3278 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3279 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3274 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3280 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3281 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3282 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3283 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3284 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3101 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3285 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 3287 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2940 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3285 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3285 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 3287 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2940 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3287 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3285 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3285 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3285 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 648 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2946 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 648 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3288 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 238 }, - .{ .char = '8', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2243 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3289 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3290 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3291 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3292 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3293 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3294 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3295 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3296 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 581 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3297 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3298 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3299 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 3300 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3301 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3302 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3303 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3304 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3305 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3306 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2267 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3307 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2972 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3308 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3309 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3310 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3311 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 3312 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 569 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3314 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 519 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3316 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3317 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3318 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3320 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3322 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3323 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3324 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3326 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3327 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 3328 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3329 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3330 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3331 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3332 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3330 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3333 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3334 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3336 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3338 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3339 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3330 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3340 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3341 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 17, .child_index = 3342 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2985 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3344 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3341 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 451 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3345 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 3346 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3341 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 7, .child_index = 3312 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3314 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3047 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2701 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 2644 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 568 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3347 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3349 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3045 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2687 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2668 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3350 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3351 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3354 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2716 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2701 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 2701 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2712 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2687 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3051 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 2644 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3022 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3355 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 1715 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 1987 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3357 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3358 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3359 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3360 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3362 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3363 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 463 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3364 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3365 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3366 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 3367 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3367 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2482 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2482 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3368 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3369 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3370 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3371 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3372 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 585 }, - .{ .char = '4', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'u', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3373 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3375 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 3330 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3330 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3376 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3377 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3378 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1352 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3379 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3084 }, - .{ .char = 'v', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 3381 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3383 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3384 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3385 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3386 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3387 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3388 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3389 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3390 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 458 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 463 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 457 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3391 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3392 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2800 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3393 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 238 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3132 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3132 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3394 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3395 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3396 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3397 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3398 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3399 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3400 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3401 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3404 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3405 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3406 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3407 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3408 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 3409 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3411 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 20, .child_index = 3412 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3414 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 242, .child_index = 3415 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 3420 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3421 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3423 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 3424 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3425 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 42, .child_index = 3427 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3431 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3432 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3433 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 30, .child_index = 3434 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3435 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 15, .child_index = 3436 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 30, .child_index = 3438 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3439 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 3440 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 45, .child_index = 3441 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3442 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3439 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3443 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3444 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3445 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 186, .child_index = 3446 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 36, .child_index = 3451 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 3452 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 20, .child_index = 3453 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 32, .child_index = 3455 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 35, .child_index = 3459 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 3465 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 3466 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3467 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 34, .child_index = 3468 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3469 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3470 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3471 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3472 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3473 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 3474 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3476 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3477 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3478 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 3479 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3484 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3485 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3486 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 3487 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 24, .child_index = 3487 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 48, .child_index = 3489 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 3495 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3173 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3497 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3498 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3499 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3500 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3291 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3504 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3505 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3506 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3507 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1618 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2562 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3509 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2267 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2976 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3510 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 3511 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3512 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3512 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 463 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3513 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3514 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3209 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3212 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3515 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3516 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3517 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3518 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 3519 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'E', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3520 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3521 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 10, .child_index = 3522 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3527 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3528 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3529 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3530 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3531 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3532 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3533 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3534 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3535 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3536 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3537 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3538 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3539 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3540 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3541 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3547 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2477 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3264 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3548 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3549 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3550 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3551 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3552 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3553 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3554 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3555 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3557 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3558 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3559 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3561 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3562 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3563 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3564 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3565 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 680 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3566 }, - .{ .char = 'q', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 3567 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3569 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3570 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3572 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3573 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 3574 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3576 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3577 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3578 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3579 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3580 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3581 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3579 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3582 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3583 }, - .{ .char = 'T', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3584 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3585 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3379 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3586 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3500 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3587 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3588 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3589 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3590 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3591 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3592 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3593 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3594 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 3595 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3596 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3597 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3598 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3365 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3599 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2594 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3600 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3601 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3602 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3603 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3604 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3605 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3607 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3608 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3611 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2712 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3612 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3613 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3614 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3616 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3322 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3617 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3619 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3620 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3621 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3622 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3323 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3623 }, - .{ .char = 'u', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3626 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3619 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3628 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3629 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3630 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3632 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3634 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3635 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 3637 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 7, .child_index = 3639 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3641 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3642 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3645 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3648 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3648 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3649 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2702 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3350 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3651 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3652 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3653 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3654 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3655 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3656 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3657 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3658 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3659 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3660 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3661 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3662 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3663 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3664 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3665 }, - .{ .char = '0', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '1', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3666 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3668 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3669 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 3670 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3671 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3672 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3673 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3674 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3675 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3676 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3677 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3678 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3500 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3391 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3679 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3680 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3126 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3681 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3682 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3683 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3684 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3686 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3686 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3686 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3687 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3688 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3689 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3691 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3692 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3693 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3694 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3695 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3697 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3698 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3699 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3700 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3701 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 206, .child_index = 3702 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 3707 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3708 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3709 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3710 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3711 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3713 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3714 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3715 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3716 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3717 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3717 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3719 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3423 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3720 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3721 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 30, .child_index = 3722 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3470 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3724 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3728 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 30, .child_index = 3722 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3729 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 40, .child_index = 3730 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 45, .child_index = 3734 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3470 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3736 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3737 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3738 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 30, .child_index = 3739 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3741 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = false, .number = 114, .child_index = 3742 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 3746 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3747 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 36, .child_index = 3748 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 3750 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3752 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 3753 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3755 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 3756 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3758 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3759 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3761 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3762 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 3763 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3766 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3767 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3728 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 3770 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 3770 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3771 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 34, .child_index = 3773 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3775 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3776 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3777 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3778 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3779 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 3781 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3782 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3783 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3784 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3476 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3785 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3786 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3789 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3790 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3786 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3791 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3792 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3793 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 3794 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3796 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3797 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3798 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 16, .child_index = 3799 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3803 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3804 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 16, .child_index = 3799 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 30, .child_index = 3722 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3805 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3807 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3809 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3810 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '3', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2235 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 649 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3811 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3814 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3815 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2267 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3818 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 3819 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3512 }, - .{ .char = 'b', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3820 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3821 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 323 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 1652 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 3822 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3823 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2944 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '8', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'A', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3824 }, - .{ .char = 'P', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2966 }, - .{ .char = 'S', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3825 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3826 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3827 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 521 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2431 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3828 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3829 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3830 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3831 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3832 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3833 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3834 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3838 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3839 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3840 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3842 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3843 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3844 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3845 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3847 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3848 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3849 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3850 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3580 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3851 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3852 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3853 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3854 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3855 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3856 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2854 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3857 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3264 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3858 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3859 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3860 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3861 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3862 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3863 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3864 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3867 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3868 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3869 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3870 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3871 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3870 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3872 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3874 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3875 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3876 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3878 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3879 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 680 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3880 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3881 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3882 }, - .{ .char = 'T', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 3884 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3886 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3887 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3888 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3889 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3890 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 664 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3891 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3892 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3893 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 3894 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3895 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3600 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3896 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3897 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 579 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3898 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2168 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3899 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3900 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3901 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3902 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3341 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3905 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2490 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3619 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3619 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3619 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3322 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3907 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3908 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 578 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3910 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3912 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3913 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3914 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3916 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3917 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3918 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3919 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3920 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3921 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3901 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3323 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3922 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3619 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3923 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3925 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3926 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3928 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3930 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3901 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3900 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3931 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 2702 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2702 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3934 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3935 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3936 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3937 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3938 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3939 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2431 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3940 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3941 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3942 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3943 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 2751 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3944 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3945 }, - .{ .char = '4', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '8', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3946 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3947 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3669 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3948 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 3949 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3950 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3951 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3952 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3953 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3955 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3956 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3957 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3958 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3961 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1166 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3962 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3963 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3964 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3965 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3966 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3967 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3969 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3970 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3971 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3972 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3974 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 3976 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3977 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3974 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3980 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3694 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3982 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 15, .child_index = 3983 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3985 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = false, .number = 170, .child_index = 3986 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 3989 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3990 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 3991 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3993 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3977 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3994 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3994 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3995 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3996 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3998 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3999 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4002 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4002 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 3974 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4003 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4005 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 4006 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4008 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4010 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4010 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4010 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4010 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4011 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4012 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4013 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4016 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4017 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 24, .child_index = 4019 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 27, .child_index = 4021 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 4023 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4025 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4025 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4025 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 4027 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4025 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4025 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 28, .child_index = 4029 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 30, .child_index = 4033 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 28, .child_index = 4029 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 28, .child_index = 4029 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 4027 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4025 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 18, .child_index = 4038 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 3746 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4039 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4040 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4041 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 4025 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4042 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4044 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4045 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4045 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4046 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3755 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3758 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4047 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4049 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4050 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4051 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4051 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4052 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3761 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3762 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3766 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 4006 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4053 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4054 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 22, .child_index = 4055 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4008 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4057 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4058 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3728 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3783 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3997 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4060 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4060 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4061 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4062 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3798 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3785 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3789 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3790 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4063 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4065 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4066 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4067 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4068 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3796 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4069 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4071 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4072 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4075 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 3797 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3798 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3803 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3804 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4076 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4078 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3783 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4079 }, - .{ .char = '3', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2235 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 649 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4081 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4082 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1352 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 549 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3507 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3289 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 33, .child_index = 4084 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4092 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4093 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 4094 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4095 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 1661 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 2544 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4096 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4097 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4098 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4099 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4100 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4101 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4102 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 680 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 458 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 568 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 569 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 569 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4103 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4104 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4105 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4107 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2602 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3847 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4108 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4109 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4110 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4112 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4113 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = '3', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4114 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4115 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4116 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4117 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4118 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4119 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4120 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4121 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4122 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4123 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4124 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4125 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4126 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4127 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4128 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4129 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4130 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4131 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4132 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4133 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4134 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4136 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4137 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4139 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4140 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4141 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2931 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4142 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 549 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4143 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4144 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4145 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4146 }, - .{ .char = 'A', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 4147 }, - .{ .char = 'T', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4148 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4149 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 4, .child_index = 4150 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4152 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1789 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4153 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 25, .child_index = 4154 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4166 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4167 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4168 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4169 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4170 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4173 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3901 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4175 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4175 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4175 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4175 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3323 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4176 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4177 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4179 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2431 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4180 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 656 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4181 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3917 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3918 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4182 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3901 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4183 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3917 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3925 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4184 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4185 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4186 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4187 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4190 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4175 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'h', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 2701 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4191 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4192 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4194 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4195 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4196 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3118 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4197 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4198 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4199 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4200 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3379 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3230 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4203 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4204 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4205 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4206 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4207 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4208 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4209 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4210 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3597 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3961 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4211 }, - .{ .char = 'i', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4211 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4212 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1166 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1166 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1166 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4213 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4214 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4215 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4215 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4216 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4217 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4218 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3712 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4219 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4220 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4221 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4222 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4223 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4224 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 4225 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4226 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 84, .child_index = 4228 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 84, .child_index = 4228 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4225 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 4233 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3989 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3712 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4234 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 3977 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4236 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4237 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4066 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4238 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4239 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4240 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 344 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3682 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3470 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4241 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3470 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3470 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4243 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4244 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4245 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3997 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3997 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4246 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3997 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 12, .child_index = 4248 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4248 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 4250 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 4251 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 4250 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4250 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3470 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3470 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 4253 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4253 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4254 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4255 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4255 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4257 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4260 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4254 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4255 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4255 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4257 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 18, .child_index = 4027 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4262 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4262 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3779 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3783 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3783 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4264 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 3759 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 3755 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3762 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3766 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4265 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4266 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4047 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3762 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4268 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4270 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 4271 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4241 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4244 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4244 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4244 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 12, .child_index = 4273 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4275 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4276 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3785 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3790 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3785 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4278 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4280 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4281 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4282 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4282 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4283 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3798 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 3803 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3804 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4284 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3798 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3804 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3798 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4285 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4285 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4286 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4288 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4288 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4289 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4291 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4292 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 10, .child_index = 4293 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4297 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4298 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4299 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4300 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4301 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4302 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 10, .child_index = 4303 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4305 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4306 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4307 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4308 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4309 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4310 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4312 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4313 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4314 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4317 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4318 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4319 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4320 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 405 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4321 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4322 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 459 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4323 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4324 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4325 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4327 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4328 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4329 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4330 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4331 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4332 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4333 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4334 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4336 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2243 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4338 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4339 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4340 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4341 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3899 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4342 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4343 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4344 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4345 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 569 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4346 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4347 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4348 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4346 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4349 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3861 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4350 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4352 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3569 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4353 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4354 }, - .{ .char = 'T', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4355 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4356 }, - .{ .char = 'f', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 2944 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4357 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4358 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4359 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4361 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4362 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4365 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4366 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4368 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3209 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4369 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3530 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4370 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4372 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4375 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4376 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4377 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4378 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4379 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 412 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 656 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4380 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4381 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3323 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3327 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4382 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2431 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4383 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4384 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3327 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4385 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3619 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4386 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4387 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4185 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4388 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4389 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4390 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4391 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4392 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4393 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 460 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4394 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4395 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4396 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4397 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2071 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4398 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1342 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4399 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4400 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4401 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4402 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4403 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4404 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4405 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4406 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4407 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 344 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'M', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '3', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4408 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4409 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4410 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4411 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4412 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3728 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3728 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4413 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4415 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4416 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4416 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4417 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4418 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 36, .child_index = 4420 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 8, .child_index = 4423 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 28, .child_index = 4426 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4225 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4412 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4412 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4066 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4427 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3791 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3791 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4429 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4430 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4430 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4431 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4432 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4435 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4011 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4436 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 4437 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4437 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4438 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 9, .child_index = 4439 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4439 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4440 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4441 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4441 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4441 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4443 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4441 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4444 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4445 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4445 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4446 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4446 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4448 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4278 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4051 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4051 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4449 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4449 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4450 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 6, .child_index = 3776 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4452 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4446 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4453 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4455 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4427 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4427 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4457 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4458 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3796 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4459 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4455 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3783 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4461 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2161 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4462 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4463 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4464 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4465 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4466 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4467 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4298 }, - .{ .char = 't', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4299 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4300 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4468 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4472 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4473 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4474 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4475 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4476 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = false, .number = 5, .child_index = 4477 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4478 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4479 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4480 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4481 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4482 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4483 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 311 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 460 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4484 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4486 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4487 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4489 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2145 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4490 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4491 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3833 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4492 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4493 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4494 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 3558 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4495 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4496 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4497 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4498 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4500 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4501 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4502 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 1352 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 451 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4338 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4503 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4504 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4505 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4506 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4507 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3246 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 579 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4508 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4509 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1883 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4510 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2741 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 580 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 3569 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4511 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4512 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4513 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4514 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4515 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4516 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4517 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 344 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4518 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4519 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4520 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 738 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4521 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 2192 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4523 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 568 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4524 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4525 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 580 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4526 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 457 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 286 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4527 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4528 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4529 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4530 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4531 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4532 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 412 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4180 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 561 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4533 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3622 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4534 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4535 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4180 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4536 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4537 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4538 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4539 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4540 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4541 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4542 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4543 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4544 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3223 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1098 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4547 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4548 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 8, .child_index = 4552 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4554 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4555 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4556 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4557 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4558 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4559 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4560 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4217 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4562 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4562 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4220 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4565 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4566 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4568 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4569 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4569 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4569 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4569 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 28, .child_index = 4029 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4569 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4571 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4569 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4572 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 28, .child_index = 4029 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4236 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4573 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4574 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 3470 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4432 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4435 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 3728 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4246 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4576 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4250 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 9, .child_index = 4578 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4580 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4581 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4582 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4582 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4214 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4583 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4583 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4584 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4587 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4588 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4588 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4589 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4590 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4590 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4431 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4265 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4432 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4432 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3530 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4591 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4593 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4299 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4594 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4595 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4464 }, - .{ .char = '0', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '1', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '2', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = '3', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4596 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4597 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 1140 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4598 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4599 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4600 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4601 }, - .{ .char = 'C', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4602 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4603 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4604 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4605 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4606 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4607 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4608 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2946 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4609 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4611 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4126 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3264 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4612 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 460 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3393 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4613 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4614 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4615 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4616 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4617 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 460 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4619 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4620 }, - .{ .char = '3', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4621 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4622 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4623 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4624 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4625 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4626 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4627 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4628 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4629 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4630 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4631 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4632 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4633 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4634 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4635 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4636 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4637 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4638 }, - .{ .char = 's', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 664 }, - .{ .char = 'g', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 4639 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4641 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4642 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4635 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1616 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4643 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 585 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4644 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4645 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 561 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4646 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4647 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4649 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4650 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4651 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 458 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4652 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4653 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4654 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4655 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4656 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4658 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4659 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4660 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4661 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4662 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4663 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4664 }, - .{ .char = '2', .end_of_word = false, .end_of_list = false, .number = 4, .child_index = 4665 }, - .{ .char = '3', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4665 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4666 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4667 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4668 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4556 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4671 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4672 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4435 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4673 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4220 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4234 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = '_', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4674 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4675 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4676 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4676 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4677 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4562 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4562 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4244 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4459 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4011 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4058 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4275 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4443 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4580 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4678 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4278 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 655 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4278 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4679 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4680 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4682 }, - .{ .char = '3', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4683 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4684 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4685 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4472 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4686 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4688 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4472 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 866 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4478 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 5, .child_index = 4692 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4694 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4695 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4696 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4697 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4698 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4699 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4699 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4700 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '8', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4701 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4702 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 680 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3580 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4556 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4703 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2712 }, - .{ .char = '1', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 4704 }, - .{ .char = '2', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4704 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4705 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 496 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3861 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4706 }, - .{ .char = 'c', .end_of_word = true, .end_of_list = true, .number = 3, .child_index = 4707 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4708 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4709 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4710 }, - .{ .char = 'g', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4711 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4712 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3264 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4713 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4208 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4714 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4715 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4716 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4717 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4718 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4719 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2167 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4720 }, - .{ .char = '2', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4721 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4722 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4723 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4724 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4725 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4726 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4387 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4536 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4387 }, - .{ .char = 'q', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4185 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4727 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4728 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4729 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4730 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4731 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4731 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4732 }, - .{ .char = 'w', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4733 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4734 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4735 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4736 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4737 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4738 }, - .{ .char = 'D', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4739 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4741 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4126 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'y', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4742 }, - .{ .char = '5', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4743 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4220 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4744 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4571 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4674 }, - .{ .char = 'x', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3997 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4278 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4066 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4066 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4745 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3190 }, - .{ .char = '4', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3190 }, - .{ .char = 'k', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 1881 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 458 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4747 }, - .{ .char = 'w', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'x', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'y', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'z', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 649 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4748 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = true, .number = 6, .child_index = 4751 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4755 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4756 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4757 }, - .{ .char = 'n', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4758 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3807 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4759 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4760 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4761 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4762 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4763 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4764 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4765 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4334 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4129 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4766 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4767 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4768 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4769 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 6, .child_index = 4770 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4772 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4773 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4774 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4775 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4776 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4777 }, - .{ .char = '0', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4778 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4779 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4780 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4781 }, - .{ .char = 'j', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4782 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4783 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4785 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4786 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4787 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4659 }, - .{ .char = 'd', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4732 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 291 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4788 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4789 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4790 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4791 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4792 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4791 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4793 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4793 }, - .{ .char = 'D', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4795 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4798 }, - .{ .char = '1', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4799 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4800 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4677 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4677 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4802 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4803 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 496 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3288 }, - .{ .char = '1', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 648 }, - .{ .char = '6', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 649 }, - .{ .char = '8', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'P', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4804 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4805 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4806 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2972 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4807 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4808 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2490 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4809 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2730 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2946 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4811 }, - .{ .char = '6', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3861 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2712 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4812 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4813 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3881 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 3, .child_index = 4404 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 3, .child_index = 4327 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4814 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4815 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4816 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4817 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4818 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 471 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4819 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4820 }, - .{ .char = 'z', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4821 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4822 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 2, .child_index = 4823 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4823 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4824 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2799 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4825 }, - .{ .char = 'p', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4732 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 183 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4826 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4827 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4828 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4829 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4829 }, - .{ .char = 'f', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4829 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4829 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4830 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4612 }, - .{ .char = '2', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4831 }, - .{ .char = 'M', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 655 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 's', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4833 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4834 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4835 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4836 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 4, .child_index = 4837 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2883 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4841 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 2946 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2946 }, - .{ .char = 'm', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4842 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3288 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 311 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4843 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4844 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 451 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4845 }, - .{ .char = 'c', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4846 }, - .{ .char = 'v', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 323 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4847 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4848 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 3937 }, - .{ .char = 'a', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4849 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4850 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4851 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4830 }, - .{ .char = 'h', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4852 }, - .{ .char = '_', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4829 }, - .{ .char = 'l', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 'u', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'k', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4853 }, - .{ .char = 'q', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4854 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4855 }, - .{ .char = 'b', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4856 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4505 }, - .{ .char = 's', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 520 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 420 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4857 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4858 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4859 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4860 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3223 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4861 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4862 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 3117 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4863 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2384 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4864 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4830 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 5, .child_index = 4865 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4868 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4869 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4870 }, - .{ .char = '1', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'n', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4871 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4872 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 457 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 2161 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4873 }, - .{ .char = 'u', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4874 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4834 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = false, .number = 2, .child_index = 4875 }, - .{ .char = 'l', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4875 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4877 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4878 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4879 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4126 }, - .{ .char = 'g', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 572 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 450 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4880 }, - .{ .char = 'e', .end_of_word = true, .end_of_list = false, .number = 1, .child_index = 0 }, - .{ .char = 't', .end_of_word = true, .end_of_list = true, .number = 1, .child_index = 0 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 2, .child_index = 4882 }, - .{ .char = 'S', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4883 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4884 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = false, .number = 1, .child_index = 4885 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4886 }, - .{ .char = 'r', .end_of_word = true, .end_of_list = true, .number = 2, .child_index = 4887 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4888 }, - .{ .char = 'o', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 654 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4889 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4890 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 459 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4891 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4892 }, - .{ .char = 'd', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4893 }, - .{ .char = 'i', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 1654 }, - .{ .char = 'a', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4894 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4895 }, - .{ .char = '_', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4896 }, - .{ .char = 'r', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4830 }, - .{ .char = 't', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4897 }, - .{ .char = 'y', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4898 }, - .{ .char = 'p', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4899 }, - .{ .char = 'e', .end_of_word = false, .end_of_list = true, .number = 1, .child_index = 4830 }, -}; -const builtin_data = blk: { - @setEvalBranchQuota(3948); - break :blk [_]@This(){ - // _Block_object_assign - .{ .tag = @enumFromInt(0), .param_str = "vv*vC*iC", .properties = .{ .header = .blocks, .attributes = .{ .lib_function_without_prefix = true } } }, - // _Block_object_dispose - .{ .tag = @enumFromInt(1), .param_str = "vvC*iC", .properties = .{ .header = .blocks, .attributes = .{ .lib_function_without_prefix = true } } }, - // _Exit - .{ .tag = @enumFromInt(2), .param_str = "vi", .properties = .{ .header = .stdlib, .attributes = .{ .noreturn = true, .lib_function_without_prefix = true } } }, - // _InterlockedAnd - .{ .tag = @enumFromInt(3), .param_str = "NiNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedAnd16 - .{ .tag = @enumFromInt(4), .param_str = "ssD*s", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedAnd8 - .{ .tag = @enumFromInt(5), .param_str = "ccD*c", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedCompareExchange - .{ .tag = @enumFromInt(6), .param_str = "NiNiD*NiNi", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedCompareExchange16 - .{ .tag = @enumFromInt(7), .param_str = "ssD*ss", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedCompareExchange64 - .{ .tag = @enumFromInt(8), .param_str = "LLiLLiD*LLiLLi", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedCompareExchange8 - .{ .tag = @enumFromInt(9), .param_str = "ccD*cc", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedCompareExchangePointer - .{ .tag = @enumFromInt(10), .param_str = "v*v*D*v*v*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedCompareExchangePointer_nf - .{ .tag = @enumFromInt(11), .param_str = "v*v*D*v*v*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedDecrement - .{ .tag = @enumFromInt(12), .param_str = "NiNiD*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedDecrement16 - .{ .tag = @enumFromInt(13), .param_str = "ssD*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchange - .{ .tag = @enumFromInt(14), .param_str = "NiNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchange16 - .{ .tag = @enumFromInt(15), .param_str = "ssD*s", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchange8 - .{ .tag = @enumFromInt(16), .param_str = "ccD*c", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangeAdd - .{ .tag = @enumFromInt(17), .param_str = "NiNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangeAdd16 - .{ .tag = @enumFromInt(18), .param_str = "ssD*s", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangeAdd8 - .{ .tag = @enumFromInt(19), .param_str = "ccD*c", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangePointer - .{ .tag = @enumFromInt(20), .param_str = "v*v*D*v*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangeSub - .{ .tag = @enumFromInt(21), .param_str = "NiNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangeSub16 - .{ .tag = @enumFromInt(22), .param_str = "ssD*s", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedExchangeSub8 - .{ .tag = @enumFromInt(23), .param_str = "ccD*c", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedIncrement - .{ .tag = @enumFromInt(24), .param_str = "NiNiD*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedIncrement16 - .{ .tag = @enumFromInt(25), .param_str = "ssD*", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedOr - .{ .tag = @enumFromInt(26), .param_str = "NiNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedOr16 - .{ .tag = @enumFromInt(27), .param_str = "ssD*s", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedOr8 - .{ .tag = @enumFromInt(28), .param_str = "ccD*c", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedXor - .{ .tag = @enumFromInt(29), .param_str = "NiNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedXor16 - .{ .tag = @enumFromInt(30), .param_str = "ssD*s", .properties = .{ .language = .all_ms_languages } }, - // _InterlockedXor8 - .{ .tag = @enumFromInt(31), .param_str = "ccD*c", .properties = .{ .language = .all_ms_languages } }, - // _MoveFromCoprocessor - .{ .tag = @enumFromInt(32), .param_str = "UiIUiIUiIUiIUiIUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initOne(.arm) } }, - // _MoveFromCoprocessor2 - .{ .tag = @enumFromInt(33), .param_str = "UiIUiIUiIUiIUiIUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initOne(.arm) } }, - // _MoveToCoprocessor - .{ .tag = @enumFromInt(34), .param_str = "vUiIUiIUiIUiIUiIUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initOne(.arm) } }, - // _MoveToCoprocessor2 - .{ .tag = @enumFromInt(35), .param_str = "vUiIUiIUiIUiIUiIUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initOne(.arm) } }, - // _ReturnAddress - .{ .tag = @enumFromInt(36), .param_str = "v*", .properties = .{ .language = .all_ms_languages } }, - // __GetExceptionInfo - .{ .tag = @enumFromInt(37), .param_str = "v*.", .properties = .{ .language = .all_ms_languages, .attributes = .{ .custom_typecheck = true, .eval_args = false } } }, - // __abnormal_termination - .{ .tag = @enumFromInt(38), .param_str = "i", .properties = .{ .language = .all_ms_languages } }, - // __annotation - .{ .tag = @enumFromInt(39), .param_str = "wC*.", .properties = .{ .language = .all_ms_languages } }, - // __arithmetic_fence - .{ .tag = @enumFromInt(40), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true, .const_evaluable = true } } }, - // __assume - .{ .tag = @enumFromInt(41), .param_str = "vb", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // __atomic_always_lock_free - .{ .tag = @enumFromInt(42), .param_str = "bzvCD*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __atomic_clear - .{ .tag = @enumFromInt(43), .param_str = "vvD*i", .properties = .{} }, - // __atomic_is_lock_free - .{ .tag = @enumFromInt(44), .param_str = "bzvCD*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __atomic_signal_fence - .{ .tag = @enumFromInt(45), .param_str = "vi", .properties = .{} }, - // __atomic_test_and_set - .{ .tag = @enumFromInt(46), .param_str = "bvD*i", .properties = .{} }, - // __atomic_thread_fence - .{ .tag = @enumFromInt(47), .param_str = "vi", .properties = .{} }, - // __builtin___CFStringMakeConstantString - .{ .tag = @enumFromInt(48), .param_str = "FC*cC*", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin___NSStringMakeConstantString - .{ .tag = @enumFromInt(49), .param_str = "FC*cC*", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin___clear_cache - .{ .tag = @enumFromInt(50), .param_str = "vc*c*", .properties = .{} }, - // __builtin___fprintf_chk - .{ .tag = @enumFromInt(51), .param_str = "iP*RicC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 2 } } }, - // __builtin___get_unsafe_stack_bottom - .{ .tag = @enumFromInt(52), .param_str = "v*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___get_unsafe_stack_ptr - .{ .tag = @enumFromInt(53), .param_str = "v*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___get_unsafe_stack_start - .{ .tag = @enumFromInt(54), .param_str = "v*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___get_unsafe_stack_top - .{ .tag = @enumFromInt(55), .param_str = "v*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___memccpy_chk - .{ .tag = @enumFromInt(56), .param_str = "v*v*vC*izz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___memcpy_chk - .{ .tag = @enumFromInt(57), .param_str = "v*v*vC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___memmove_chk - .{ .tag = @enumFromInt(58), .param_str = "v*v*vC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___mempcpy_chk - .{ .tag = @enumFromInt(59), .param_str = "v*v*vC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___memset_chk - .{ .tag = @enumFromInt(60), .param_str = "v*v*izz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___printf_chk - .{ .tag = @enumFromInt(61), .param_str = "iicC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 1 } } }, - // __builtin___snprintf_chk - .{ .tag = @enumFromInt(62), .param_str = "ic*RzizcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 4 } } }, - // __builtin___sprintf_chk - .{ .tag = @enumFromInt(63), .param_str = "ic*RizcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 3 } } }, - // __builtin___stpcpy_chk - .{ .tag = @enumFromInt(64), .param_str = "c*c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___stpncpy_chk - .{ .tag = @enumFromInt(65), .param_str = "c*c*cC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___strcat_chk - .{ .tag = @enumFromInt(66), .param_str = "c*c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___strcpy_chk - .{ .tag = @enumFromInt(67), .param_str = "c*c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___strlcat_chk - .{ .tag = @enumFromInt(68), .param_str = "zc*cC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___strlcpy_chk - .{ .tag = @enumFromInt(69), .param_str = "zc*cC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___strncat_chk - .{ .tag = @enumFromInt(70), .param_str = "c*c*cC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___strncpy_chk - .{ .tag = @enumFromInt(71), .param_str = "c*c*cC*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin___vfprintf_chk - .{ .tag = @enumFromInt(72), .param_str = "iP*RicC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 2 } } }, - // __builtin___vprintf_chk - .{ .tag = @enumFromInt(73), .param_str = "iicC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 1 } } }, - // __builtin___vsnprintf_chk - .{ .tag = @enumFromInt(74), .param_str = "ic*RzizcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 4 } } }, - // __builtin___vsprintf_chk - .{ .tag = @enumFromInt(75), .param_str = "ic*RizcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 3 } } }, - // __builtin_abort - .{ .tag = @enumFromInt(76), .param_str = "v", .properties = .{ .attributes = .{ .noreturn = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_abs - .{ .tag = @enumFromInt(77), .param_str = "ii", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_acos - .{ .tag = @enumFromInt(78), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acosf - .{ .tag = @enumFromInt(79), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acosf128 - .{ .tag = @enumFromInt(80), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acosh - .{ .tag = @enumFromInt(81), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acoshf - .{ .tag = @enumFromInt(82), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acoshf128 - .{ .tag = @enumFromInt(83), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acoshl - .{ .tag = @enumFromInt(84), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_acosl - .{ .tag = @enumFromInt(85), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_add_overflow - .{ .tag = @enumFromInt(86), .param_str = "b.", .properties = .{ .attributes = .{ .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_addc - .{ .tag = @enumFromInt(87), .param_str = "UiUiCUiCUiCUi*", .properties = .{} }, - // __builtin_addcb - .{ .tag = @enumFromInt(88), .param_str = "UcUcCUcCUcCUc*", .properties = .{} }, - // __builtin_addcl - .{ .tag = @enumFromInt(89), .param_str = "ULiULiCULiCULiCULi*", .properties = .{} }, - // __builtin_addcll - .{ .tag = @enumFromInt(90), .param_str = "ULLiULLiCULLiCULLiCULLi*", .properties = .{} }, - // __builtin_addcs - .{ .tag = @enumFromInt(91), .param_str = "UsUsCUsCUsCUs*", .properties = .{} }, - // __builtin_align_down - .{ .tag = @enumFromInt(92), .param_str = "v*vC*z", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_align_up - .{ .tag = @enumFromInt(93), .param_str = "v*vC*z", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_alloca - .{ .tag = @enumFromInt(94), .param_str = "v*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_alloca_uninitialized - .{ .tag = @enumFromInt(95), .param_str = "v*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_alloca_with_align - .{ .tag = @enumFromInt(96), .param_str = "v*zIz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_alloca_with_align_uninitialized - .{ .tag = @enumFromInt(97), .param_str = "v*zIz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_amdgcn_alignbit - .{ .tag = @enumFromInt(98), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_alignbyte - .{ .tag = @enumFromInt(99), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_atomic_dec32 - .{ .tag = @enumFromInt(100), .param_str = "UZiUZiD*UZiUicC*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_atomic_dec64 - .{ .tag = @enumFromInt(101), .param_str = "UWiUWiD*UWiUicC*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_atomic_inc32 - .{ .tag = @enumFromInt(102), .param_str = "UZiUZiD*UZiUicC*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_atomic_inc64 - .{ .tag = @enumFromInt(103), .param_str = "UWiUWiD*UWiUicC*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_buffer_wbinvl1 - .{ .tag = @enumFromInt(104), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_class - .{ .tag = @enumFromInt(105), .param_str = "bdi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_classf - .{ .tag = @enumFromInt(106), .param_str = "bfi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cosf - .{ .tag = @enumFromInt(107), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cubeid - .{ .tag = @enumFromInt(108), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cubema - .{ .tag = @enumFromInt(109), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cubesc - .{ .tag = @enumFromInt(110), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cubetc - .{ .tag = @enumFromInt(111), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cvt_pk_i16 - .{ .tag = @enumFromInt(112), .param_str = "E2sii", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cvt_pk_u16 - .{ .tag = @enumFromInt(113), .param_str = "E2UsUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cvt_pk_u8_f32 - .{ .tag = @enumFromInt(114), .param_str = "UifUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cvt_pknorm_i16 - .{ .tag = @enumFromInt(115), .param_str = "E2sff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cvt_pknorm_u16 - .{ .tag = @enumFromInt(116), .param_str = "E2Usff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_cvt_pkrtz - .{ .tag = @enumFromInt(117), .param_str = "E2hff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_dispatch_ptr - .{ .tag = @enumFromInt(118), .param_str = "v*4", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_div_fixup - .{ .tag = @enumFromInt(119), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_div_fixupf - .{ .tag = @enumFromInt(120), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_div_fmas - .{ .tag = @enumFromInt(121), .param_str = "ddddb", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_div_fmasf - .{ .tag = @enumFromInt(122), .param_str = "ffffb", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_div_scale - .{ .tag = @enumFromInt(123), .param_str = "dddbb*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_div_scalef - .{ .tag = @enumFromInt(124), .param_str = "fffbb*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_ds_append - .{ .tag = @enumFromInt(125), .param_str = "ii*3", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_ds_bpermute - .{ .tag = @enumFromInt(126), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_ds_consume - .{ .tag = @enumFromInt(127), .param_str = "ii*3", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_ds_faddf - .{ .tag = @enumFromInt(128), .param_str = "ff*3fIiIiIb", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_ds_fmaxf - .{ .tag = @enumFromInt(129), .param_str = "ff*3fIiIiIb", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_ds_fminf - .{ .tag = @enumFromInt(130), .param_str = "ff*3fIiIiIb", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_ds_permute - .{ .tag = @enumFromInt(131), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_ds_swizzle - .{ .tag = @enumFromInt(132), .param_str = "iiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_endpgm - .{ .tag = @enumFromInt(133), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .noreturn = true } } }, - // __builtin_amdgcn_exp2f - .{ .tag = @enumFromInt(134), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_fcmp - .{ .tag = @enumFromInt(135), .param_str = "WUiddIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_fcmpf - .{ .tag = @enumFromInt(136), .param_str = "WUiffIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_fence - .{ .tag = @enumFromInt(137), .param_str = "vUicC*", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_fmed3f - .{ .tag = @enumFromInt(138), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_fract - .{ .tag = @enumFromInt(139), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_fractf - .{ .tag = @enumFromInt(140), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_frexp_exp - .{ .tag = @enumFromInt(141), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_frexp_expf - .{ .tag = @enumFromInt(142), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_frexp_mant - .{ .tag = @enumFromInt(143), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_frexp_mantf - .{ .tag = @enumFromInt(144), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_grid_size_x - .{ .tag = @enumFromInt(145), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_grid_size_y - .{ .tag = @enumFromInt(146), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_grid_size_z - .{ .tag = @enumFromInt(147), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_groupstaticsize - .{ .tag = @enumFromInt(148), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_iglp_opt - .{ .tag = @enumFromInt(149), .param_str = "vIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_implicitarg_ptr - .{ .tag = @enumFromInt(150), .param_str = "v*4", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_interp_mov - .{ .tag = @enumFromInt(151), .param_str = "fUiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_interp_p1 - .{ .tag = @enumFromInt(152), .param_str = "ffUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_interp_p1_f16 - .{ .tag = @enumFromInt(153), .param_str = "ffUiUibUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_interp_p2 - .{ .tag = @enumFromInt(154), .param_str = "fffUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_interp_p2_f16 - .{ .tag = @enumFromInt(155), .param_str = "hffUiUibUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_is_private - .{ .tag = @enumFromInt(156), .param_str = "bvC*0", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_is_shared - .{ .tag = @enumFromInt(157), .param_str = "bvC*0", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_kernarg_segment_ptr - .{ .tag = @enumFromInt(158), .param_str = "v*4", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_ldexp - .{ .tag = @enumFromInt(159), .param_str = "ddi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_ldexpf - .{ .tag = @enumFromInt(160), .param_str = "ffi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_lerp - .{ .tag = @enumFromInt(161), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_log_clampf - .{ .tag = @enumFromInt(162), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_logf - .{ .tag = @enumFromInt(163), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_mbcnt_hi - .{ .tag = @enumFromInt(164), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_mbcnt_lo - .{ .tag = @enumFromInt(165), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_mqsad_pk_u16_u8 - .{ .tag = @enumFromInt(166), .param_str = "WUiWUiUiWUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_mqsad_u32_u8 - .{ .tag = @enumFromInt(167), .param_str = "V4UiWUiUiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_msad_u8 - .{ .tag = @enumFromInt(168), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_qsad_pk_u16_u8 - .{ .tag = @enumFromInt(169), .param_str = "WUiWUiUiWUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_queue_ptr - .{ .tag = @enumFromInt(170), .param_str = "v*4", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_rcp - .{ .tag = @enumFromInt(171), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_rcpf - .{ .tag = @enumFromInt(172), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_read_exec - .{ .tag = @enumFromInt(173), .param_str = "WUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_read_exec_hi - .{ .tag = @enumFromInt(174), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_read_exec_lo - .{ .tag = @enumFromInt(175), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_readfirstlane - .{ .tag = @enumFromInt(176), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_readlane - .{ .tag = @enumFromInt(177), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_rsq - .{ .tag = @enumFromInt(178), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_rsq_clamp - .{ .tag = @enumFromInt(179), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_rsq_clampf - .{ .tag = @enumFromInt(180), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_rsqf - .{ .tag = @enumFromInt(181), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_s_barrier - .{ .tag = @enumFromInt(182), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_dcache_inv - .{ .tag = @enumFromInt(183), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_decperflevel - .{ .tag = @enumFromInt(184), .param_str = "vIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_getpc - .{ .tag = @enumFromInt(185), .param_str = "WUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_getreg - .{ .tag = @enumFromInt(186), .param_str = "UiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_incperflevel - .{ .tag = @enumFromInt(187), .param_str = "vIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_sendmsg - .{ .tag = @enumFromInt(188), .param_str = "vIiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_sendmsghalt - .{ .tag = @enumFromInt(189), .param_str = "vIiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_setprio - .{ .tag = @enumFromInt(190), .param_str = "vIs", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_setreg - .{ .tag = @enumFromInt(191), .param_str = "vIiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_sleep - .{ .tag = @enumFromInt(192), .param_str = "vIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_s_waitcnt - .{ .tag = @enumFromInt(193), .param_str = "vIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_sad_hi_u8 - .{ .tag = @enumFromInt(194), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sad_u16 - .{ .tag = @enumFromInt(195), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sad_u8 - .{ .tag = @enumFromInt(196), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sbfe - .{ .tag = @enumFromInt(197), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sched_barrier - .{ .tag = @enumFromInt(198), .param_str = "vIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_sched_group_barrier - .{ .tag = @enumFromInt(199), .param_str = "vIiIiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_sicmp - .{ .tag = @enumFromInt(200), .param_str = "WUiiiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sicmpl - .{ .tag = @enumFromInt(201), .param_str = "WUiWiWiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sinf - .{ .tag = @enumFromInt(202), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sqrt - .{ .tag = @enumFromInt(203), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_sqrtf - .{ .tag = @enumFromInt(204), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_trig_preop - .{ .tag = @enumFromInt(205), .param_str = "ddi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_trig_preopf - .{ .tag = @enumFromInt(206), .param_str = "ffi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_ubfe - .{ .tag = @enumFromInt(207), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_uicmp - .{ .tag = @enumFromInt(208), .param_str = "WUiUiUiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_uicmpl - .{ .tag = @enumFromInt(209), .param_str = "WUiWUiWUiIi", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_wave_barrier - .{ .tag = @enumFromInt(210), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.amdgpu) } }, - // __builtin_amdgcn_workgroup_id_x - .{ .tag = @enumFromInt(211), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workgroup_id_y - .{ .tag = @enumFromInt(212), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workgroup_id_z - .{ .tag = @enumFromInt(213), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workgroup_size_x - .{ .tag = @enumFromInt(214), .param_str = "Us", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workgroup_size_y - .{ .tag = @enumFromInt(215), .param_str = "Us", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workgroup_size_z - .{ .tag = @enumFromInt(216), .param_str = "Us", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workitem_id_x - .{ .tag = @enumFromInt(217), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workitem_id_y - .{ .tag = @enumFromInt(218), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_amdgcn_workitem_id_z - .{ .tag = @enumFromInt(219), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_annotation - .{ .tag = @enumFromInt(220), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_arm_cdp - .{ .tag = @enumFromInt(221), .param_str = "vUIiUIiUIiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_cdp2 - .{ .tag = @enumFromInt(222), .param_str = "vUIiUIiUIiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_clrex - .{ .tag = @enumFromInt(223), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_arm_cls - .{ .tag = @enumFromInt(224), .param_str = "UiZUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_cls64 - .{ .tag = @enumFromInt(225), .param_str = "UiWUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_clz - .{ .tag = @enumFromInt(226), .param_str = "UiZUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_clz64 - .{ .tag = @enumFromInt(227), .param_str = "UiWUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_cmse_TT - .{ .tag = @enumFromInt(228), .param_str = "Uiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_cmse_TTA - .{ .tag = @enumFromInt(229), .param_str = "Uiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_cmse_TTAT - .{ .tag = @enumFromInt(230), .param_str = "Uiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_cmse_TTT - .{ .tag = @enumFromInt(231), .param_str = "Uiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_dbg - .{ .tag = @enumFromInt(232), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_dmb - .{ .tag = @enumFromInt(233), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_dsb - .{ .tag = @enumFromInt(234), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_get_fpscr - .{ .tag = @enumFromInt(235), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_isb - .{ .tag = @enumFromInt(236), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_ldaex - .{ .tag = @enumFromInt(237), .param_str = "v.", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_arm_ldc - .{ .tag = @enumFromInt(238), .param_str = "vUIiUIivC*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_ldc2 - .{ .tag = @enumFromInt(239), .param_str = "vUIiUIivC*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_ldc2l - .{ .tag = @enumFromInt(240), .param_str = "vUIiUIivC*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_ldcl - .{ .tag = @enumFromInt(241), .param_str = "vUIiUIivC*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_ldrex - .{ .tag = @enumFromInt(242), .param_str = "v.", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_arm_ldrexd - .{ .tag = @enumFromInt(243), .param_str = "LLUiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mcr - .{ .tag = @enumFromInt(244), .param_str = "vUIiUIiUiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mcr2 - .{ .tag = @enumFromInt(245), .param_str = "vUIiUIiUiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mcrr - .{ .tag = @enumFromInt(246), .param_str = "vUIiUIiLLUiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mcrr2 - .{ .tag = @enumFromInt(247), .param_str = "vUIiUIiLLUiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mrc - .{ .tag = @enumFromInt(248), .param_str = "UiUIiUIiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mrc2 - .{ .tag = @enumFromInt(249), .param_str = "UiUIiUIiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mrrc - .{ .tag = @enumFromInt(250), .param_str = "LLUiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_mrrc2 - .{ .tag = @enumFromInt(251), .param_str = "LLUiUIiUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_nop - .{ .tag = @enumFromInt(252), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_arm_prefetch - .{ .tag = @enumFromInt(253), .param_str = "!", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qadd - .{ .tag = @enumFromInt(254), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qadd16 - .{ .tag = @enumFromInt(255), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qadd8 - .{ .tag = @enumFromInt(256), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qasx - .{ .tag = @enumFromInt(257), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qdbl - .{ .tag = @enumFromInt(258), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qsax - .{ .tag = @enumFromInt(259), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qsub - .{ .tag = @enumFromInt(260), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qsub16 - .{ .tag = @enumFromInt(261), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_qsub8 - .{ .tag = @enumFromInt(262), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_rbit - .{ .tag = @enumFromInt(263), .param_str = "UiUi", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_rbit64 - .{ .tag = @enumFromInt(264), .param_str = "WUiWUi", .properties = .{ .target_set = TargetSet.initOne(.aarch64), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_rsr - .{ .tag = @enumFromInt(265), .param_str = "UicC*", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_rsr64 - .{ .tag = @enumFromInt(266), .param_str = "!", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_rsrp - .{ .tag = @enumFromInt(267), .param_str = "v*cC*", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_sadd16 - .{ .tag = @enumFromInt(268), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_sadd8 - .{ .tag = @enumFromInt(269), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_sasx - .{ .tag = @enumFromInt(270), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_sel - .{ .tag = @enumFromInt(271), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_set_fpscr - .{ .tag = @enumFromInt(272), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_sev - .{ .tag = @enumFromInt(273), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_arm_sevl - .{ .tag = @enumFromInt(274), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_arm_shadd16 - .{ .tag = @enumFromInt(275), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_shadd8 - .{ .tag = @enumFromInt(276), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_shasx - .{ .tag = @enumFromInt(277), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_shsax - .{ .tag = @enumFromInt(278), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_shsub16 - .{ .tag = @enumFromInt(279), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_shsub8 - .{ .tag = @enumFromInt(280), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlabb - .{ .tag = @enumFromInt(281), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlabt - .{ .tag = @enumFromInt(282), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlad - .{ .tag = @enumFromInt(283), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smladx - .{ .tag = @enumFromInt(284), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlald - .{ .tag = @enumFromInt(285), .param_str = "LLiiiLLi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlaldx - .{ .tag = @enumFromInt(286), .param_str = "LLiiiLLi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlatb - .{ .tag = @enumFromInt(287), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlatt - .{ .tag = @enumFromInt(288), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlawb - .{ .tag = @enumFromInt(289), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlawt - .{ .tag = @enumFromInt(290), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlsd - .{ .tag = @enumFromInt(291), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlsdx - .{ .tag = @enumFromInt(292), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlsld - .{ .tag = @enumFromInt(293), .param_str = "LLiiiLLi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smlsldx - .{ .tag = @enumFromInt(294), .param_str = "LLiiiLLi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smuad - .{ .tag = @enumFromInt(295), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smuadx - .{ .tag = @enumFromInt(296), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smulbb - .{ .tag = @enumFromInt(297), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smulbt - .{ .tag = @enumFromInt(298), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smultb - .{ .tag = @enumFromInt(299), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smultt - .{ .tag = @enumFromInt(300), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smulwb - .{ .tag = @enumFromInt(301), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smulwt - .{ .tag = @enumFromInt(302), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smusd - .{ .tag = @enumFromInt(303), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_smusdx - .{ .tag = @enumFromInt(304), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_ssat - .{ .tag = @enumFromInt(305), .param_str = "iiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_ssat16 - .{ .tag = @enumFromInt(306), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_ssax - .{ .tag = @enumFromInt(307), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_ssub16 - .{ .tag = @enumFromInt(308), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_ssub8 - .{ .tag = @enumFromInt(309), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_stc - .{ .tag = @enumFromInt(310), .param_str = "vUIiUIiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_stc2 - .{ .tag = @enumFromInt(311), .param_str = "vUIiUIiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_stc2l - .{ .tag = @enumFromInt(312), .param_str = "vUIiUIiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_stcl - .{ .tag = @enumFromInt(313), .param_str = "vUIiUIiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_stlex - .{ .tag = @enumFromInt(314), .param_str = "i.", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_arm_strex - .{ .tag = @enumFromInt(315), .param_str = "i.", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_arm_strexd - .{ .tag = @enumFromInt(316), .param_str = "iLLUiv*", .properties = .{ .target_set = TargetSet.initOne(.arm) } }, - // __builtin_arm_sxtab16 - .{ .tag = @enumFromInt(317), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_sxtb16 - .{ .tag = @enumFromInt(318), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_tcancel - .{ .tag = @enumFromInt(319), .param_str = "vWUIi", .properties = .{ .target_set = TargetSet.initOne(.aarch64) } }, - // __builtin_arm_tcommit - .{ .tag = @enumFromInt(320), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.aarch64) } }, - // __builtin_arm_tstart - .{ .tag = @enumFromInt(321), .param_str = "WUi", .properties = .{ .target_set = TargetSet.initOne(.aarch64), .attributes = .{ .returns_twice = true } } }, - // __builtin_arm_ttest - .{ .tag = @enumFromInt(322), .param_str = "WUi", .properties = .{ .target_set = TargetSet.initOne(.aarch64), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uadd16 - .{ .tag = @enumFromInt(323), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uadd8 - .{ .tag = @enumFromInt(324), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uasx - .{ .tag = @enumFromInt(325), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uhadd16 - .{ .tag = @enumFromInt(326), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uhadd8 - .{ .tag = @enumFromInt(327), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uhasx - .{ .tag = @enumFromInt(328), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uhsax - .{ .tag = @enumFromInt(329), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uhsub16 - .{ .tag = @enumFromInt(330), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uhsub8 - .{ .tag = @enumFromInt(331), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uqadd16 - .{ .tag = @enumFromInt(332), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uqadd8 - .{ .tag = @enumFromInt(333), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uqasx - .{ .tag = @enumFromInt(334), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uqsax - .{ .tag = @enumFromInt(335), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uqsub16 - .{ .tag = @enumFromInt(336), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uqsub8 - .{ .tag = @enumFromInt(337), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usad8 - .{ .tag = @enumFromInt(338), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usada8 - .{ .tag = @enumFromInt(339), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usat - .{ .tag = @enumFromInt(340), .param_str = "UiiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usat16 - .{ .tag = @enumFromInt(341), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usax - .{ .tag = @enumFromInt(342), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usub16 - .{ .tag = @enumFromInt(343), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_usub8 - .{ .tag = @enumFromInt(344), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uxtab16 - .{ .tag = @enumFromInt(345), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_uxtb16 - .{ .tag = @enumFromInt(346), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_vcvtr_d - .{ .tag = @enumFromInt(347), .param_str = "fdi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_vcvtr_f - .{ .tag = @enumFromInt(348), .param_str = "ffi", .properties = .{ .target_set = TargetSet.initOne(.arm), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_wfe - .{ .tag = @enumFromInt(349), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_arm_wfi - .{ .tag = @enumFromInt(350), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_arm_wsr - .{ .tag = @enumFromInt(351), .param_str = "vcC*Ui", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_wsr64 - .{ .tag = @enumFromInt(352), .param_str = "!", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_wsrp - .{ .tag = @enumFromInt(353), .param_str = "vcC*vC*", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_arm_yield - .{ .tag = @enumFromInt(354), .param_str = "v", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __builtin_asin - .{ .tag = @enumFromInt(355), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinf - .{ .tag = @enumFromInt(356), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinf128 - .{ .tag = @enumFromInt(357), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinh - .{ .tag = @enumFromInt(358), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinhf - .{ .tag = @enumFromInt(359), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinhf128 - .{ .tag = @enumFromInt(360), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinhl - .{ .tag = @enumFromInt(361), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_asinl - .{ .tag = @enumFromInt(362), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_assume - .{ .tag = @enumFromInt(363), .param_str = "vb", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_assume_aligned - .{ .tag = @enumFromInt(364), .param_str = "v*vC*z.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_assume_separate_storage - .{ .tag = @enumFromInt(365), .param_str = "vvCD*vCD*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_atan - .{ .tag = @enumFromInt(366), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atan2 - .{ .tag = @enumFromInt(367), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atan2f - .{ .tag = @enumFromInt(368), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atan2f128 - .{ .tag = @enumFromInt(369), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atan2l - .{ .tag = @enumFromInt(370), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanf - .{ .tag = @enumFromInt(371), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanf128 - .{ .tag = @enumFromInt(372), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanh - .{ .tag = @enumFromInt(373), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanhf - .{ .tag = @enumFromInt(374), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanhf128 - .{ .tag = @enumFromInt(375), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanhl - .{ .tag = @enumFromInt(376), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_atanl - .{ .tag = @enumFromInt(377), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_bcmp - .{ .tag = @enumFromInt(378), .param_str = "ivC*vC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_bcopy - .{ .tag = @enumFromInt(379), .param_str = "vvC*v*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_bitrev - .{ .tag = @enumFromInt(380), .param_str = "UiUi", .properties = .{ .target_set = TargetSet.initOne(.xcore), .attributes = .{ .@"const" = true } } }, - // __builtin_bitreverse16 - .{ .tag = @enumFromInt(381), .param_str = "UsUs", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bitreverse32 - .{ .tag = @enumFromInt(382), .param_str = "UZiUZi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bitreverse64 - .{ .tag = @enumFromInt(383), .param_str = "UWiUWi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bitreverse8 - .{ .tag = @enumFromInt(384), .param_str = "UcUc", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bswap16 - .{ .tag = @enumFromInt(385), .param_str = "UsUs", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bswap32 - .{ .tag = @enumFromInt(386), .param_str = "UZiUZi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bswap64 - .{ .tag = @enumFromInt(387), .param_str = "UWiUWi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_bzero - .{ .tag = @enumFromInt(388), .param_str = "vv*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_cabs - .{ .tag = @enumFromInt(389), .param_str = "dXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cabsf - .{ .tag = @enumFromInt(390), .param_str = "fXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cabsl - .{ .tag = @enumFromInt(391), .param_str = "LdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cacos - .{ .tag = @enumFromInt(392), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cacosf - .{ .tag = @enumFromInt(393), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cacosh - .{ .tag = @enumFromInt(394), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cacoshf - .{ .tag = @enumFromInt(395), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cacoshl - .{ .tag = @enumFromInt(396), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cacosl - .{ .tag = @enumFromInt(397), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_call_with_static_chain - .{ .tag = @enumFromInt(398), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_calloc - .{ .tag = @enumFromInt(399), .param_str = "v*zz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_canonicalize - .{ .tag = @enumFromInt(400), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_canonicalizef - .{ .tag = @enumFromInt(401), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_canonicalizef16 - .{ .tag = @enumFromInt(402), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_canonicalizel - .{ .tag = @enumFromInt(403), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_carg - .{ .tag = @enumFromInt(404), .param_str = "dXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cargf - .{ .tag = @enumFromInt(405), .param_str = "fXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cargl - .{ .tag = @enumFromInt(406), .param_str = "LdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_casin - .{ .tag = @enumFromInt(407), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_casinf - .{ .tag = @enumFromInt(408), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_casinh - .{ .tag = @enumFromInt(409), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_casinhf - .{ .tag = @enumFromInt(410), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_casinhl - .{ .tag = @enumFromInt(411), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_casinl - .{ .tag = @enumFromInt(412), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_catan - .{ .tag = @enumFromInt(413), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_catanf - .{ .tag = @enumFromInt(414), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_catanh - .{ .tag = @enumFromInt(415), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_catanhf - .{ .tag = @enumFromInt(416), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_catanhl - .{ .tag = @enumFromInt(417), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_catanl - .{ .tag = @enumFromInt(418), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cbrt - .{ .tag = @enumFromInt(419), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cbrtf - .{ .tag = @enumFromInt(420), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cbrtf128 - .{ .tag = @enumFromInt(421), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cbrtl - .{ .tag = @enumFromInt(422), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_ccos - .{ .tag = @enumFromInt(423), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ccosf - .{ .tag = @enumFromInt(424), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ccosh - .{ .tag = @enumFromInt(425), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ccoshf - .{ .tag = @enumFromInt(426), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ccoshl - .{ .tag = @enumFromInt(427), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ccosl - .{ .tag = @enumFromInt(428), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ceil - .{ .tag = @enumFromInt(429), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_ceilf - .{ .tag = @enumFromInt(430), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_ceilf128 - .{ .tag = @enumFromInt(431), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_ceilf16 - .{ .tag = @enumFromInt(432), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_ceill - .{ .tag = @enumFromInt(433), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cexp - .{ .tag = @enumFromInt(434), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cexpf - .{ .tag = @enumFromInt(435), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cexpl - .{ .tag = @enumFromInt(436), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_char_memchr - .{ .tag = @enumFromInt(437), .param_str = "c*cC*iz", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_cimag - .{ .tag = @enumFromInt(438), .param_str = "dXd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cimagf - .{ .tag = @enumFromInt(439), .param_str = "fXf", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cimagl - .{ .tag = @enumFromInt(440), .param_str = "LdXLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_classify_type - .{ .tag = @enumFromInt(441), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .eval_args = false, .const_evaluable = true } } }, - // __builtin_clog - .{ .tag = @enumFromInt(442), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_clogf - .{ .tag = @enumFromInt(443), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_clogl - .{ .tag = @enumFromInt(444), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_clrsb - .{ .tag = @enumFromInt(445), .param_str = "ii", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_clrsbl - .{ .tag = @enumFromInt(446), .param_str = "iLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_clrsbll - .{ .tag = @enumFromInt(447), .param_str = "iLLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_clz - .{ .tag = @enumFromInt(448), .param_str = "iUi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_clzl - .{ .tag = @enumFromInt(449), .param_str = "iULi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_clzll - .{ .tag = @enumFromInt(450), .param_str = "iULLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_clzs - .{ .tag = @enumFromInt(451), .param_str = "iUs", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_complex - .{ .tag = @enumFromInt(452), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_conj - .{ .tag = @enumFromInt(453), .param_str = "XdXd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_conjf - .{ .tag = @enumFromInt(454), .param_str = "XfXf", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_conjl - .{ .tag = @enumFromInt(455), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_constant_p - .{ .tag = @enumFromInt(456), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .eval_args = false, .const_evaluable = true } } }, - // __builtin_convertvector - .{ .tag = @enumFromInt(457), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_copysign - .{ .tag = @enumFromInt(458), .param_str = "ddd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_copysignf - .{ .tag = @enumFromInt(459), .param_str = "fff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_copysignf128 - .{ .tag = @enumFromInt(460), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_copysignf16 - .{ .tag = @enumFromInt(461), .param_str = "hhh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_copysignl - .{ .tag = @enumFromInt(462), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_cos - .{ .tag = @enumFromInt(463), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cosf - .{ .tag = @enumFromInt(464), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cosf128 - .{ .tag = @enumFromInt(465), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cosf16 - .{ .tag = @enumFromInt(466), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cosh - .{ .tag = @enumFromInt(467), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_coshf - .{ .tag = @enumFromInt(468), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_coshf128 - .{ .tag = @enumFromInt(469), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_coshl - .{ .tag = @enumFromInt(470), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cosl - .{ .tag = @enumFromInt(471), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cpow - .{ .tag = @enumFromInt(472), .param_str = "XdXdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cpowf - .{ .tag = @enumFromInt(473), .param_str = "XfXfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cpowl - .{ .tag = @enumFromInt(474), .param_str = "XLdXLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_cproj - .{ .tag = @enumFromInt(475), .param_str = "XdXd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cprojf - .{ .tag = @enumFromInt(476), .param_str = "XfXf", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cprojl - .{ .tag = @enumFromInt(477), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_cpu_init - .{ .tag = @enumFromInt(478), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.x86) } }, - // __builtin_cpu_is - .{ .tag = @enumFromInt(479), .param_str = "bcC*", .properties = .{ .target_set = TargetSet.initOne(.x86), .attributes = .{ .@"const" = true } } }, - // __builtin_cpu_supports - .{ .tag = @enumFromInt(480), .param_str = "bcC*", .properties = .{ .target_set = TargetSet.initOne(.x86), .attributes = .{ .@"const" = true } } }, - // __builtin_creal - .{ .tag = @enumFromInt(481), .param_str = "dXd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_crealf - .{ .tag = @enumFromInt(482), .param_str = "fXf", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_creall - .{ .tag = @enumFromInt(483), .param_str = "LdXLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_csin - .{ .tag = @enumFromInt(484), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csinf - .{ .tag = @enumFromInt(485), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csinh - .{ .tag = @enumFromInt(486), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csinhf - .{ .tag = @enumFromInt(487), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csinhl - .{ .tag = @enumFromInt(488), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csinl - .{ .tag = @enumFromInt(489), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csqrt - .{ .tag = @enumFromInt(490), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csqrtf - .{ .tag = @enumFromInt(491), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_csqrtl - .{ .tag = @enumFromInt(492), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctan - .{ .tag = @enumFromInt(493), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctanf - .{ .tag = @enumFromInt(494), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctanh - .{ .tag = @enumFromInt(495), .param_str = "XdXd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctanhf - .{ .tag = @enumFromInt(496), .param_str = "XfXf", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctanhl - .{ .tag = @enumFromInt(497), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctanl - .{ .tag = @enumFromInt(498), .param_str = "XLdXLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ctz - .{ .tag = @enumFromInt(499), .param_str = "iUi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_ctzl - .{ .tag = @enumFromInt(500), .param_str = "iULi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_ctzll - .{ .tag = @enumFromInt(501), .param_str = "iULLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_ctzs - .{ .tag = @enumFromInt(502), .param_str = "iUs", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_dcbf - .{ .tag = @enumFromInt(503), .param_str = "vvC*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_debugtrap - .{ .tag = @enumFromInt(504), .param_str = "v", .properties = .{} }, - // __builtin_dump_struct - .{ .tag = @enumFromInt(505), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_dwarf_cfa - .{ .tag = @enumFromInt(506), .param_str = "v*", .properties = .{} }, - // __builtin_dwarf_sp_column - .{ .tag = @enumFromInt(507), .param_str = "Ui", .properties = .{} }, - // __builtin_dynamic_object_size - .{ .tag = @enumFromInt(508), .param_str = "zvC*i", .properties = .{ .attributes = .{ .eval_args = false, .const_evaluable = true } } }, - // __builtin_eh_return - .{ .tag = @enumFromInt(509), .param_str = "vzv*", .properties = .{ .attributes = .{ .noreturn = true } } }, - // __builtin_eh_return_data_regno - .{ .tag = @enumFromInt(510), .param_str = "iIi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_elementwise_abs - .{ .tag = @enumFromInt(511), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_add_sat - .{ .tag = @enumFromInt(512), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_bitreverse - .{ .tag = @enumFromInt(513), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_canonicalize - .{ .tag = @enumFromInt(514), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_ceil - .{ .tag = @enumFromInt(515), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_copysign - .{ .tag = @enumFromInt(516), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_cos - .{ .tag = @enumFromInt(517), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_exp - .{ .tag = @enumFromInt(518), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_exp2 - .{ .tag = @enumFromInt(519), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_floor - .{ .tag = @enumFromInt(520), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_fma - .{ .tag = @enumFromInt(521), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_log - .{ .tag = @enumFromInt(522), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_log10 - .{ .tag = @enumFromInt(523), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_log2 - .{ .tag = @enumFromInt(524), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_max - .{ .tag = @enumFromInt(525), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_min - .{ .tag = @enumFromInt(526), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_nearbyint - .{ .tag = @enumFromInt(527), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_pow - .{ .tag = @enumFromInt(528), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_rint - .{ .tag = @enumFromInt(529), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_round - .{ .tag = @enumFromInt(530), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_roundeven - .{ .tag = @enumFromInt(531), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_sin - .{ .tag = @enumFromInt(532), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_sqrt - .{ .tag = @enumFromInt(533), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_sub_sat - .{ .tag = @enumFromInt(534), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_elementwise_trunc - .{ .tag = @enumFromInt(535), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_erf - .{ .tag = @enumFromInt(536), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erfc - .{ .tag = @enumFromInt(537), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erfcf - .{ .tag = @enumFromInt(538), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erfcf128 - .{ .tag = @enumFromInt(539), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erfcl - .{ .tag = @enumFromInt(540), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erff - .{ .tag = @enumFromInt(541), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erff128 - .{ .tag = @enumFromInt(542), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_erfl - .{ .tag = @enumFromInt(543), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp - .{ .tag = @enumFromInt(544), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp10 - .{ .tag = @enumFromInt(545), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp10f - .{ .tag = @enumFromInt(546), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp10f128 - .{ .tag = @enumFromInt(547), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp10f16 - .{ .tag = @enumFromInt(548), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp10l - .{ .tag = @enumFromInt(549), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp2 - .{ .tag = @enumFromInt(550), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp2f - .{ .tag = @enumFromInt(551), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp2f128 - .{ .tag = @enumFromInt(552), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp2f16 - .{ .tag = @enumFromInt(553), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_exp2l - .{ .tag = @enumFromInt(554), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expect - .{ .tag = @enumFromInt(555), .param_str = "LiLiLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_expect_with_probability - .{ .tag = @enumFromInt(556), .param_str = "LiLiLid", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_expf - .{ .tag = @enumFromInt(557), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expf128 - .{ .tag = @enumFromInt(558), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expf16 - .{ .tag = @enumFromInt(559), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expl - .{ .tag = @enumFromInt(560), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expm1 - .{ .tag = @enumFromInt(561), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expm1f - .{ .tag = @enumFromInt(562), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expm1f128 - .{ .tag = @enumFromInt(563), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_expm1l - .{ .tag = @enumFromInt(564), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_extend_pointer - .{ .tag = @enumFromInt(565), .param_str = "ULLiv*", .properties = .{} }, - // __builtin_extract_return_addr - .{ .tag = @enumFromInt(566), .param_str = "v*v*", .properties = .{} }, - // __builtin_fabs - .{ .tag = @enumFromInt(567), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fabsf - .{ .tag = @enumFromInt(568), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fabsf128 - .{ .tag = @enumFromInt(569), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fabsf16 - .{ .tag = @enumFromInt(570), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_fabsl - .{ .tag = @enumFromInt(571), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fdim - .{ .tag = @enumFromInt(572), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fdimf - .{ .tag = @enumFromInt(573), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fdimf128 - .{ .tag = @enumFromInt(574), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fdiml - .{ .tag = @enumFromInt(575), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ffs - .{ .tag = @enumFromInt(576), .param_str = "ii", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_ffsl - .{ .tag = @enumFromInt(577), .param_str = "iLi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_ffsll - .{ .tag = @enumFromInt(578), .param_str = "iLLi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_floor - .{ .tag = @enumFromInt(579), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_floorf - .{ .tag = @enumFromInt(580), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_floorf128 - .{ .tag = @enumFromInt(581), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_floorf16 - .{ .tag = @enumFromInt(582), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_floorl - .{ .tag = @enumFromInt(583), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_flt_rounds - .{ .tag = @enumFromInt(584), .param_str = "i", .properties = .{} }, - // __builtin_fma - .{ .tag = @enumFromInt(585), .param_str = "dddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmaf - .{ .tag = @enumFromInt(586), .param_str = "ffff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmaf128 - .{ .tag = @enumFromInt(587), .param_str = "LLdLLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmaf16 - .{ .tag = @enumFromInt(588), .param_str = "hhhh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmal - .{ .tag = @enumFromInt(589), .param_str = "LdLdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmax - .{ .tag = @enumFromInt(590), .param_str = "ddd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fmaxf - .{ .tag = @enumFromInt(591), .param_str = "fff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fmaxf128 - .{ .tag = @enumFromInt(592), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fmaxf16 - .{ .tag = @enumFromInt(593), .param_str = "hhh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fmaxl - .{ .tag = @enumFromInt(594), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fmin - .{ .tag = @enumFromInt(595), .param_str = "ddd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fminf - .{ .tag = @enumFromInt(596), .param_str = "fff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fminf128 - .{ .tag = @enumFromInt(597), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fminf16 - .{ .tag = @enumFromInt(598), .param_str = "hhh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fminl - .{ .tag = @enumFromInt(599), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fmod - .{ .tag = @enumFromInt(600), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmodf - .{ .tag = @enumFromInt(601), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmodf128 - .{ .tag = @enumFromInt(602), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmodf16 - .{ .tag = @enumFromInt(603), .param_str = "hhh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fmodl - .{ .tag = @enumFromInt(604), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_fpclassify - .{ .tag = @enumFromInt(605), .param_str = "iiiiii.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_fprintf - .{ .tag = @enumFromInt(606), .param_str = "iP*RcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 1 } } }, - // __builtin_frame_address - .{ .tag = @enumFromInt(607), .param_str = "v*IUi", .properties = .{} }, - // __builtin_free - .{ .tag = @enumFromInt(608), .param_str = "vv*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_frexp - .{ .tag = @enumFromInt(609), .param_str = "ddi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_frexpf - .{ .tag = @enumFromInt(610), .param_str = "ffi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_frexpf128 - .{ .tag = @enumFromInt(611), .param_str = "LLdLLdi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_frexpf16 - .{ .tag = @enumFromInt(612), .param_str = "hhi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_frexpl - .{ .tag = @enumFromInt(613), .param_str = "LdLdi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_frob_return_addr - .{ .tag = @enumFromInt(614), .param_str = "v*v*", .properties = .{} }, - // __builtin_fscanf - .{ .tag = @enumFromInt(615), .param_str = "iP*RcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .scanf, .format_string_position = 1 } } }, - // __builtin_getid - .{ .tag = @enumFromInt(616), .param_str = "Si", .properties = .{ .target_set = TargetSet.initOne(.xcore), .attributes = .{ .@"const" = true } } }, - // __builtin_getps - .{ .tag = @enumFromInt(617), .param_str = "UiUi", .properties = .{ .target_set = TargetSet.initOne(.xcore) } }, - // __builtin_huge_val - .{ .tag = @enumFromInt(618), .param_str = "d", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_huge_valf - .{ .tag = @enumFromInt(619), .param_str = "f", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_huge_valf128 - .{ .tag = @enumFromInt(620), .param_str = "LLd", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_huge_valf16 - .{ .tag = @enumFromInt(621), .param_str = "x", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_huge_vall - .{ .tag = @enumFromInt(622), .param_str = "Ld", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_hypot - .{ .tag = @enumFromInt(623), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_hypotf - .{ .tag = @enumFromInt(624), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_hypotf128 - .{ .tag = @enumFromInt(625), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_hypotl - .{ .tag = @enumFromInt(626), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ia32_rdpmc - .{ .tag = @enumFromInt(627), .param_str = "UOii", .properties = .{ .target_set = TargetSet.initOne(.x86) } }, - // __builtin_ia32_rdtsc - .{ .tag = @enumFromInt(628), .param_str = "UOi", .properties = .{ .target_set = TargetSet.initOne(.x86) } }, - // __builtin_ia32_rdtscp - .{ .tag = @enumFromInt(629), .param_str = "UOiUi*", .properties = .{ .target_set = TargetSet.initOne(.x86) } }, - // __builtin_ilogb - .{ .tag = @enumFromInt(630), .param_str = "id", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ilogbf - .{ .tag = @enumFromInt(631), .param_str = "if", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ilogbf128 - .{ .tag = @enumFromInt(632), .param_str = "iLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ilogbl - .{ .tag = @enumFromInt(633), .param_str = "iLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_index - .{ .tag = @enumFromInt(634), .param_str = "c*cC*i", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_inf - .{ .tag = @enumFromInt(635), .param_str = "d", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_inff - .{ .tag = @enumFromInt(636), .param_str = "f", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_inff128 - .{ .tag = @enumFromInt(637), .param_str = "LLd", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_inff16 - .{ .tag = @enumFromInt(638), .param_str = "x", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_infl - .{ .tag = @enumFromInt(639), .param_str = "Ld", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_init_dwarf_reg_size_table - .{ .tag = @enumFromInt(640), .param_str = "vv*", .properties = .{} }, - // __builtin_is_aligned - .{ .tag = @enumFromInt(641), .param_str = "bvC*z", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_isfinite - .{ .tag = @enumFromInt(642), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_isfpclass - .{ .tag = @enumFromInt(643), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_isgreater - .{ .tag = @enumFromInt(644), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_isgreaterequal - .{ .tag = @enumFromInt(645), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_isinf - .{ .tag = @enumFromInt(646), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_isinf_sign - .{ .tag = @enumFromInt(647), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_isless - .{ .tag = @enumFromInt(648), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_islessequal - .{ .tag = @enumFromInt(649), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_islessgreater - .{ .tag = @enumFromInt(650), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_isnan - .{ .tag = @enumFromInt(651), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_isnormal - .{ .tag = @enumFromInt(652), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_isunordered - .{ .tag = @enumFromInt(653), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_labs - .{ .tag = @enumFromInt(654), .param_str = "LiLi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_launder - .{ .tag = @enumFromInt(655), .param_str = "v*v*", .properties = .{ .attributes = .{ .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_ldexp - .{ .tag = @enumFromInt(656), .param_str = "ddi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ldexpf - .{ .tag = @enumFromInt(657), .param_str = "ffi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ldexpf128 - .{ .tag = @enumFromInt(658), .param_str = "LLdLLdi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ldexpf16 - .{ .tag = @enumFromInt(659), .param_str = "hhi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ldexpl - .{ .tag = @enumFromInt(660), .param_str = "LdLdi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lgamma - .{ .tag = @enumFromInt(661), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_lgammaf - .{ .tag = @enumFromInt(662), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_lgammaf128 - .{ .tag = @enumFromInt(663), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_lgammal - .{ .tag = @enumFromInt(664), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_llabs - .{ .tag = @enumFromInt(665), .param_str = "LLiLLi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_llrint - .{ .tag = @enumFromInt(666), .param_str = "LLid", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llrintf - .{ .tag = @enumFromInt(667), .param_str = "LLif", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llrintf128 - .{ .tag = @enumFromInt(668), .param_str = "LLiLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llrintl - .{ .tag = @enumFromInt(669), .param_str = "LLiLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llround - .{ .tag = @enumFromInt(670), .param_str = "LLid", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llroundf - .{ .tag = @enumFromInt(671), .param_str = "LLif", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llroundf128 - .{ .tag = @enumFromInt(672), .param_str = "LLiLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_llroundl - .{ .tag = @enumFromInt(673), .param_str = "LLiLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log - .{ .tag = @enumFromInt(674), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log10 - .{ .tag = @enumFromInt(675), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log10f - .{ .tag = @enumFromInt(676), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log10f128 - .{ .tag = @enumFromInt(677), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log10f16 - .{ .tag = @enumFromInt(678), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log10l - .{ .tag = @enumFromInt(679), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log1p - .{ .tag = @enumFromInt(680), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log1pf - .{ .tag = @enumFromInt(681), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log1pf128 - .{ .tag = @enumFromInt(682), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log1pl - .{ .tag = @enumFromInt(683), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log2 - .{ .tag = @enumFromInt(684), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log2f - .{ .tag = @enumFromInt(685), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log2f128 - .{ .tag = @enumFromInt(686), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log2f16 - .{ .tag = @enumFromInt(687), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_log2l - .{ .tag = @enumFromInt(688), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logb - .{ .tag = @enumFromInt(689), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logbf - .{ .tag = @enumFromInt(690), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logbf128 - .{ .tag = @enumFromInt(691), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logbl - .{ .tag = @enumFromInt(692), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logf - .{ .tag = @enumFromInt(693), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logf128 - .{ .tag = @enumFromInt(694), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logf16 - .{ .tag = @enumFromInt(695), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_logl - .{ .tag = @enumFromInt(696), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_longjmp - .{ .tag = @enumFromInt(697), .param_str = "vv**i", .properties = .{ .attributes = .{ .noreturn = true } } }, - // __builtin_lrint - .{ .tag = @enumFromInt(698), .param_str = "Lid", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lrintf - .{ .tag = @enumFromInt(699), .param_str = "Lif", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lrintf128 - .{ .tag = @enumFromInt(700), .param_str = "LiLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lrintl - .{ .tag = @enumFromInt(701), .param_str = "LiLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lround - .{ .tag = @enumFromInt(702), .param_str = "Lid", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lroundf - .{ .tag = @enumFromInt(703), .param_str = "Lif", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lroundf128 - .{ .tag = @enumFromInt(704), .param_str = "LiLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_lroundl - .{ .tag = @enumFromInt(705), .param_str = "LiLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_malloc - .{ .tag = @enumFromInt(706), .param_str = "v*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_matrix_column_major_load - .{ .tag = @enumFromInt(707), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_matrix_column_major_store - .{ .tag = @enumFromInt(708), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_matrix_transpose - .{ .tag = @enumFromInt(709), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_memchr - .{ .tag = @enumFromInt(710), .param_str = "v*vC*iz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_memcmp - .{ .tag = @enumFromInt(711), .param_str = "ivC*vC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_memcpy - .{ .tag = @enumFromInt(712), .param_str = "v*v*vC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_memcpy_inline - .{ .tag = @enumFromInt(713), .param_str = "vv*vC*Iz", .properties = .{} }, - // __builtin_memmove - .{ .tag = @enumFromInt(714), .param_str = "v*v*vC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_mempcpy - .{ .tag = @enumFromInt(715), .param_str = "v*v*vC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_memset - .{ .tag = @enumFromInt(716), .param_str = "v*v*iz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_memset_inline - .{ .tag = @enumFromInt(717), .param_str = "vv*iIz", .properties = .{} }, - // __builtin_mips_absq_s_ph - .{ .tag = @enumFromInt(718), .param_str = "V2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_absq_s_qb - .{ .tag = @enumFromInt(719), .param_str = "V4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_absq_s_w - .{ .tag = @enumFromInt(720), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addq_ph - .{ .tag = @enumFromInt(721), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addq_s_ph - .{ .tag = @enumFromInt(722), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addq_s_w - .{ .tag = @enumFromInt(723), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addqh_ph - .{ .tag = @enumFromInt(724), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_addqh_r_ph - .{ .tag = @enumFromInt(725), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_addqh_r_w - .{ .tag = @enumFromInt(726), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_addqh_w - .{ .tag = @enumFromInt(727), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_addsc - .{ .tag = @enumFromInt(728), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addu_ph - .{ .tag = @enumFromInt(729), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addu_qb - .{ .tag = @enumFromInt(730), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addu_s_ph - .{ .tag = @enumFromInt(731), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_addu_s_qb - .{ .tag = @enumFromInt(732), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_adduh_qb - .{ .tag = @enumFromInt(733), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_adduh_r_qb - .{ .tag = @enumFromInt(734), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_addwc - .{ .tag = @enumFromInt(735), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_append - .{ .tag = @enumFromInt(736), .param_str = "iiiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_balign - .{ .tag = @enumFromInt(737), .param_str = "iiiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_bitrev - .{ .tag = @enumFromInt(738), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_bposge32 - .{ .tag = @enumFromInt(739), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmp_eq_ph - .{ .tag = @enumFromInt(740), .param_str = "vV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmp_le_ph - .{ .tag = @enumFromInt(741), .param_str = "vV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmp_lt_ph - .{ .tag = @enumFromInt(742), .param_str = "vV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpgdu_eq_qb - .{ .tag = @enumFromInt(743), .param_str = "iV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpgdu_le_qb - .{ .tag = @enumFromInt(744), .param_str = "iV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpgdu_lt_qb - .{ .tag = @enumFromInt(745), .param_str = "iV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpgu_eq_qb - .{ .tag = @enumFromInt(746), .param_str = "iV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpgu_le_qb - .{ .tag = @enumFromInt(747), .param_str = "iV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpgu_lt_qb - .{ .tag = @enumFromInt(748), .param_str = "iV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpu_eq_qb - .{ .tag = @enumFromInt(749), .param_str = "vV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpu_le_qb - .{ .tag = @enumFromInt(750), .param_str = "vV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_cmpu_lt_qb - .{ .tag = @enumFromInt(751), .param_str = "vV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpa_w_ph - .{ .tag = @enumFromInt(752), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dpaq_s_w_ph - .{ .tag = @enumFromInt(753), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpaq_sa_l_w - .{ .tag = @enumFromInt(754), .param_str = "LLiLLiii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpaqx_s_w_ph - .{ .tag = @enumFromInt(755), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpaqx_sa_w_ph - .{ .tag = @enumFromInt(756), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpau_h_qbl - .{ .tag = @enumFromInt(757), .param_str = "LLiLLiV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dpau_h_qbr - .{ .tag = @enumFromInt(758), .param_str = "LLiLLiV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dpax_w_ph - .{ .tag = @enumFromInt(759), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dps_w_ph - .{ .tag = @enumFromInt(760), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dpsq_s_w_ph - .{ .tag = @enumFromInt(761), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpsq_sa_l_w - .{ .tag = @enumFromInt(762), .param_str = "LLiLLiii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpsqx_s_w_ph - .{ .tag = @enumFromInt(763), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpsqx_sa_w_ph - .{ .tag = @enumFromInt(764), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_dpsu_h_qbl - .{ .tag = @enumFromInt(765), .param_str = "LLiLLiV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dpsu_h_qbr - .{ .tag = @enumFromInt(766), .param_str = "LLiLLiV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_dpsx_w_ph - .{ .tag = @enumFromInt(767), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_extp - .{ .tag = @enumFromInt(768), .param_str = "iLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_extpdp - .{ .tag = @enumFromInt(769), .param_str = "iLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_extr_r_w - .{ .tag = @enumFromInt(770), .param_str = "iLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_extr_rs_w - .{ .tag = @enumFromInt(771), .param_str = "iLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_extr_s_h - .{ .tag = @enumFromInt(772), .param_str = "iLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_extr_w - .{ .tag = @enumFromInt(773), .param_str = "iLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_insv - .{ .tag = @enumFromInt(774), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_lbux - .{ .tag = @enumFromInt(775), .param_str = "iv*i", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_lhx - .{ .tag = @enumFromInt(776), .param_str = "iv*i", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_lwx - .{ .tag = @enumFromInt(777), .param_str = "iv*i", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_madd - .{ .tag = @enumFromInt(778), .param_str = "LLiLLiii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_maddu - .{ .tag = @enumFromInt(779), .param_str = "LLiLLiUiUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_maq_s_w_phl - .{ .tag = @enumFromInt(780), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_maq_s_w_phr - .{ .tag = @enumFromInt(781), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_maq_sa_w_phl - .{ .tag = @enumFromInt(782), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_maq_sa_w_phr - .{ .tag = @enumFromInt(783), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_modsub - .{ .tag = @enumFromInt(784), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_msub - .{ .tag = @enumFromInt(785), .param_str = "LLiLLiii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_msubu - .{ .tag = @enumFromInt(786), .param_str = "LLiLLiUiUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_mthlip - .{ .tag = @enumFromInt(787), .param_str = "LLiLLii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mul_ph - .{ .tag = @enumFromInt(788), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mul_s_ph - .{ .tag = @enumFromInt(789), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_muleq_s_w_phl - .{ .tag = @enumFromInt(790), .param_str = "iV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_muleq_s_w_phr - .{ .tag = @enumFromInt(791), .param_str = "iV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_muleu_s_ph_qbl - .{ .tag = @enumFromInt(792), .param_str = "V2sV4ScV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_muleu_s_ph_qbr - .{ .tag = @enumFromInt(793), .param_str = "V2sV4ScV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mulq_rs_ph - .{ .tag = @enumFromInt(794), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mulq_rs_w - .{ .tag = @enumFromInt(795), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mulq_s_ph - .{ .tag = @enumFromInt(796), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mulq_s_w - .{ .tag = @enumFromInt(797), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mulsa_w_ph - .{ .tag = @enumFromInt(798), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_mulsaq_s_w_ph - .{ .tag = @enumFromInt(799), .param_str = "LLiLLiV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_mult - .{ .tag = @enumFromInt(800), .param_str = "LLiii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_multu - .{ .tag = @enumFromInt(801), .param_str = "LLiUiUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_packrl_ph - .{ .tag = @enumFromInt(802), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_pick_ph - .{ .tag = @enumFromInt(803), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_pick_qb - .{ .tag = @enumFromInt(804), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_preceq_w_phl - .{ .tag = @enumFromInt(805), .param_str = "iV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_preceq_w_phr - .{ .tag = @enumFromInt(806), .param_str = "iV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precequ_ph_qbl - .{ .tag = @enumFromInt(807), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precequ_ph_qbla - .{ .tag = @enumFromInt(808), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precequ_ph_qbr - .{ .tag = @enumFromInt(809), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precequ_ph_qbra - .{ .tag = @enumFromInt(810), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_preceu_ph_qbl - .{ .tag = @enumFromInt(811), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_preceu_ph_qbla - .{ .tag = @enumFromInt(812), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_preceu_ph_qbr - .{ .tag = @enumFromInt(813), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_preceu_ph_qbra - .{ .tag = @enumFromInt(814), .param_str = "V2sV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precr_qb_ph - .{ .tag = @enumFromInt(815), .param_str = "V4ScV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_precr_sra_ph_w - .{ .tag = @enumFromInt(816), .param_str = "V2siiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precr_sra_r_ph_w - .{ .tag = @enumFromInt(817), .param_str = "V2siiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precrq_ph_w - .{ .tag = @enumFromInt(818), .param_str = "V2sii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precrq_qb_ph - .{ .tag = @enumFromInt(819), .param_str = "V4ScV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_precrq_rs_ph_w - .{ .tag = @enumFromInt(820), .param_str = "V2sii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_precrqu_s_qb_ph - .{ .tag = @enumFromInt(821), .param_str = "V4ScV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_prepend - .{ .tag = @enumFromInt(822), .param_str = "iiiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_raddu_w_qb - .{ .tag = @enumFromInt(823), .param_str = "iV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_rddsp - .{ .tag = @enumFromInt(824), .param_str = "iIi", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_repl_ph - .{ .tag = @enumFromInt(825), .param_str = "V2si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_repl_qb - .{ .tag = @enumFromInt(826), .param_str = "V4Sci", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shilo - .{ .tag = @enumFromInt(827), .param_str = "LLiLLii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shll_ph - .{ .tag = @enumFromInt(828), .param_str = "V2sV2si", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_shll_qb - .{ .tag = @enumFromInt(829), .param_str = "V4ScV4Sci", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_shll_s_ph - .{ .tag = @enumFromInt(830), .param_str = "V2sV2si", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_shll_s_w - .{ .tag = @enumFromInt(831), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_shra_ph - .{ .tag = @enumFromInt(832), .param_str = "V2sV2si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shra_qb - .{ .tag = @enumFromInt(833), .param_str = "V4ScV4Sci", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shra_r_ph - .{ .tag = @enumFromInt(834), .param_str = "V2sV2si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shra_r_qb - .{ .tag = @enumFromInt(835), .param_str = "V4ScV4Sci", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shra_r_w - .{ .tag = @enumFromInt(836), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shrl_ph - .{ .tag = @enumFromInt(837), .param_str = "V2sV2si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_shrl_qb - .{ .tag = @enumFromInt(838), .param_str = "V4ScV4Sci", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_subq_ph - .{ .tag = @enumFromInt(839), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subq_s_ph - .{ .tag = @enumFromInt(840), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subq_s_w - .{ .tag = @enumFromInt(841), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subqh_ph - .{ .tag = @enumFromInt(842), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_subqh_r_ph - .{ .tag = @enumFromInt(843), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_subqh_r_w - .{ .tag = @enumFromInt(844), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_subqh_w - .{ .tag = @enumFromInt(845), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_subu_ph - .{ .tag = @enumFromInt(846), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subu_qb - .{ .tag = @enumFromInt(847), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subu_s_ph - .{ .tag = @enumFromInt(848), .param_str = "V2sV2sV2s", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subu_s_qb - .{ .tag = @enumFromInt(849), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_mips_subuh_qb - .{ .tag = @enumFromInt(850), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_subuh_r_qb - .{ .tag = @enumFromInt(851), .param_str = "V4ScV4ScV4Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mips_wrdsp - .{ .tag = @enumFromInt(852), .param_str = "viIi", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_modf - .{ .tag = @enumFromInt(853), .param_str = "ddd*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_modff - .{ .tag = @enumFromInt(854), .param_str = "fff*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_modff128 - .{ .tag = @enumFromInt(855), .param_str = "LLdLLdLLd*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_modfl - .{ .tag = @enumFromInt(856), .param_str = "LdLdLd*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_msa_add_a_b - .{ .tag = @enumFromInt(857), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_add_a_d - .{ .tag = @enumFromInt(858), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_add_a_h - .{ .tag = @enumFromInt(859), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_add_a_w - .{ .tag = @enumFromInt(860), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_a_b - .{ .tag = @enumFromInt(861), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_a_d - .{ .tag = @enumFromInt(862), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_a_h - .{ .tag = @enumFromInt(863), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_a_w - .{ .tag = @enumFromInt(864), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_s_b - .{ .tag = @enumFromInt(865), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_s_d - .{ .tag = @enumFromInt(866), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_s_h - .{ .tag = @enumFromInt(867), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_s_w - .{ .tag = @enumFromInt(868), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_u_b - .{ .tag = @enumFromInt(869), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_u_d - .{ .tag = @enumFromInt(870), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_u_h - .{ .tag = @enumFromInt(871), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_adds_u_w - .{ .tag = @enumFromInt(872), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addv_b - .{ .tag = @enumFromInt(873), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addv_d - .{ .tag = @enumFromInt(874), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addv_h - .{ .tag = @enumFromInt(875), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addv_w - .{ .tag = @enumFromInt(876), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addvi_b - .{ .tag = @enumFromInt(877), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addvi_d - .{ .tag = @enumFromInt(878), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addvi_h - .{ .tag = @enumFromInt(879), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_addvi_w - .{ .tag = @enumFromInt(880), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_and_v - .{ .tag = @enumFromInt(881), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_andi_b - .{ .tag = @enumFromInt(882), .param_str = "V16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_s_b - .{ .tag = @enumFromInt(883), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_s_d - .{ .tag = @enumFromInt(884), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_s_h - .{ .tag = @enumFromInt(885), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_s_w - .{ .tag = @enumFromInt(886), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_u_b - .{ .tag = @enumFromInt(887), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_u_d - .{ .tag = @enumFromInt(888), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_u_h - .{ .tag = @enumFromInt(889), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_asub_u_w - .{ .tag = @enumFromInt(890), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_s_b - .{ .tag = @enumFromInt(891), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_s_d - .{ .tag = @enumFromInt(892), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_s_h - .{ .tag = @enumFromInt(893), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_s_w - .{ .tag = @enumFromInt(894), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_u_b - .{ .tag = @enumFromInt(895), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_u_d - .{ .tag = @enumFromInt(896), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_u_h - .{ .tag = @enumFromInt(897), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ave_u_w - .{ .tag = @enumFromInt(898), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_s_b - .{ .tag = @enumFromInt(899), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_s_d - .{ .tag = @enumFromInt(900), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_s_h - .{ .tag = @enumFromInt(901), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_s_w - .{ .tag = @enumFromInt(902), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_u_b - .{ .tag = @enumFromInt(903), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_u_d - .{ .tag = @enumFromInt(904), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_u_h - .{ .tag = @enumFromInt(905), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_aver_u_w - .{ .tag = @enumFromInt(906), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclr_b - .{ .tag = @enumFromInt(907), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclr_d - .{ .tag = @enumFromInt(908), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclr_h - .{ .tag = @enumFromInt(909), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclr_w - .{ .tag = @enumFromInt(910), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclri_b - .{ .tag = @enumFromInt(911), .param_str = "V16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclri_d - .{ .tag = @enumFromInt(912), .param_str = "V2ULLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclri_h - .{ .tag = @enumFromInt(913), .param_str = "V8UsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bclri_w - .{ .tag = @enumFromInt(914), .param_str = "V4UiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsl_b - .{ .tag = @enumFromInt(915), .param_str = "V16UcV16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsl_d - .{ .tag = @enumFromInt(916), .param_str = "V2ULLiV2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsl_h - .{ .tag = @enumFromInt(917), .param_str = "V8UsV8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsl_w - .{ .tag = @enumFromInt(918), .param_str = "V4UiV4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsli_b - .{ .tag = @enumFromInt(919), .param_str = "V16UcV16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsli_d - .{ .tag = @enumFromInt(920), .param_str = "V2ULLiV2ULLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsli_h - .{ .tag = @enumFromInt(921), .param_str = "V8UsV8UsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsli_w - .{ .tag = @enumFromInt(922), .param_str = "V4UiV4UiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsr_b - .{ .tag = @enumFromInt(923), .param_str = "V16UcV16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsr_d - .{ .tag = @enumFromInt(924), .param_str = "V2ULLiV2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsr_h - .{ .tag = @enumFromInt(925), .param_str = "V8UsV8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsr_w - .{ .tag = @enumFromInt(926), .param_str = "V4UiV4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsri_b - .{ .tag = @enumFromInt(927), .param_str = "V16UcV16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsri_d - .{ .tag = @enumFromInt(928), .param_str = "V2ULLiV2ULLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsri_h - .{ .tag = @enumFromInt(929), .param_str = "V8UsV8UsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_binsri_w - .{ .tag = @enumFromInt(930), .param_str = "V4UiV4UiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bmnz_v - .{ .tag = @enumFromInt(931), .param_str = "V16UcV16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bmnzi_b - .{ .tag = @enumFromInt(932), .param_str = "V16UcV16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bmz_v - .{ .tag = @enumFromInt(933), .param_str = "V16UcV16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bmzi_b - .{ .tag = @enumFromInt(934), .param_str = "V16UcV16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bneg_b - .{ .tag = @enumFromInt(935), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bneg_d - .{ .tag = @enumFromInt(936), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bneg_h - .{ .tag = @enumFromInt(937), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bneg_w - .{ .tag = @enumFromInt(938), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnegi_b - .{ .tag = @enumFromInt(939), .param_str = "V16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnegi_d - .{ .tag = @enumFromInt(940), .param_str = "V2ULLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnegi_h - .{ .tag = @enumFromInt(941), .param_str = "V8UsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnegi_w - .{ .tag = @enumFromInt(942), .param_str = "V4UiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnz_b - .{ .tag = @enumFromInt(943), .param_str = "iV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnz_d - .{ .tag = @enumFromInt(944), .param_str = "iV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnz_h - .{ .tag = @enumFromInt(945), .param_str = "iV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnz_v - .{ .tag = @enumFromInt(946), .param_str = "iV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bnz_w - .{ .tag = @enumFromInt(947), .param_str = "iV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bsel_v - .{ .tag = @enumFromInt(948), .param_str = "V16UcV16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bseli_b - .{ .tag = @enumFromInt(949), .param_str = "V16UcV16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bset_b - .{ .tag = @enumFromInt(950), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bset_d - .{ .tag = @enumFromInt(951), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bset_h - .{ .tag = @enumFromInt(952), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bset_w - .{ .tag = @enumFromInt(953), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bseti_b - .{ .tag = @enumFromInt(954), .param_str = "V16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bseti_d - .{ .tag = @enumFromInt(955), .param_str = "V2ULLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bseti_h - .{ .tag = @enumFromInt(956), .param_str = "V8UsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bseti_w - .{ .tag = @enumFromInt(957), .param_str = "V4UiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bz_b - .{ .tag = @enumFromInt(958), .param_str = "iV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bz_d - .{ .tag = @enumFromInt(959), .param_str = "iV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bz_h - .{ .tag = @enumFromInt(960), .param_str = "iV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bz_v - .{ .tag = @enumFromInt(961), .param_str = "iV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_bz_w - .{ .tag = @enumFromInt(962), .param_str = "iV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceq_b - .{ .tag = @enumFromInt(963), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceq_d - .{ .tag = @enumFromInt(964), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceq_h - .{ .tag = @enumFromInt(965), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceq_w - .{ .tag = @enumFromInt(966), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceqi_b - .{ .tag = @enumFromInt(967), .param_str = "V16ScV16ScISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceqi_d - .{ .tag = @enumFromInt(968), .param_str = "V2SLLiV2SLLiISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceqi_h - .{ .tag = @enumFromInt(969), .param_str = "V8SsV8SsISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ceqi_w - .{ .tag = @enumFromInt(970), .param_str = "V4SiV4SiISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cfcmsa - .{ .tag = @enumFromInt(971), .param_str = "iIi", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_msa_cle_s_b - .{ .tag = @enumFromInt(972), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_s_d - .{ .tag = @enumFromInt(973), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_s_h - .{ .tag = @enumFromInt(974), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_s_w - .{ .tag = @enumFromInt(975), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_u_b - .{ .tag = @enumFromInt(976), .param_str = "V16ScV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_u_d - .{ .tag = @enumFromInt(977), .param_str = "V2SLLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_u_h - .{ .tag = @enumFromInt(978), .param_str = "V8SsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_cle_u_w - .{ .tag = @enumFromInt(979), .param_str = "V4SiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_s_b - .{ .tag = @enumFromInt(980), .param_str = "V16ScV16ScISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_s_d - .{ .tag = @enumFromInt(981), .param_str = "V2SLLiV2SLLiISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_s_h - .{ .tag = @enumFromInt(982), .param_str = "V8SsV8SsISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_s_w - .{ .tag = @enumFromInt(983), .param_str = "V4SiV4SiISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_u_b - .{ .tag = @enumFromInt(984), .param_str = "V16ScV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_u_d - .{ .tag = @enumFromInt(985), .param_str = "V2SLLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_u_h - .{ .tag = @enumFromInt(986), .param_str = "V8SsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clei_u_w - .{ .tag = @enumFromInt(987), .param_str = "V4SiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_s_b - .{ .tag = @enumFromInt(988), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_s_d - .{ .tag = @enumFromInt(989), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_s_h - .{ .tag = @enumFromInt(990), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_s_w - .{ .tag = @enumFromInt(991), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_u_b - .{ .tag = @enumFromInt(992), .param_str = "V16ScV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_u_d - .{ .tag = @enumFromInt(993), .param_str = "V2SLLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_u_h - .{ .tag = @enumFromInt(994), .param_str = "V8SsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clt_u_w - .{ .tag = @enumFromInt(995), .param_str = "V4SiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_s_b - .{ .tag = @enumFromInt(996), .param_str = "V16ScV16ScISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_s_d - .{ .tag = @enumFromInt(997), .param_str = "V2SLLiV2SLLiISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_s_h - .{ .tag = @enumFromInt(998), .param_str = "V8SsV8SsISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_s_w - .{ .tag = @enumFromInt(999), .param_str = "V4SiV4SiISi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_u_b - .{ .tag = @enumFromInt(1000), .param_str = "V16ScV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_u_d - .{ .tag = @enumFromInt(1001), .param_str = "V2SLLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_u_h - .{ .tag = @enumFromInt(1002), .param_str = "V8SsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_clti_u_w - .{ .tag = @enumFromInt(1003), .param_str = "V4SiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_s_b - .{ .tag = @enumFromInt(1004), .param_str = "iV16ScIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_s_d - .{ .tag = @enumFromInt(1005), .param_str = "LLiV2SLLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_s_h - .{ .tag = @enumFromInt(1006), .param_str = "iV8SsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_s_w - .{ .tag = @enumFromInt(1007), .param_str = "iV4SiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_u_b - .{ .tag = @enumFromInt(1008), .param_str = "iV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_u_d - .{ .tag = @enumFromInt(1009), .param_str = "LLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_u_h - .{ .tag = @enumFromInt(1010), .param_str = "iV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_copy_u_w - .{ .tag = @enumFromInt(1011), .param_str = "iV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ctcmsa - .{ .tag = @enumFromInt(1012), .param_str = "vIii", .properties = .{ .target_set = TargetSet.initOne(.mips) } }, - // __builtin_msa_div_s_b - .{ .tag = @enumFromInt(1013), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_s_d - .{ .tag = @enumFromInt(1014), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_s_h - .{ .tag = @enumFromInt(1015), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_s_w - .{ .tag = @enumFromInt(1016), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_u_b - .{ .tag = @enumFromInt(1017), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_u_d - .{ .tag = @enumFromInt(1018), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_u_h - .{ .tag = @enumFromInt(1019), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_div_u_w - .{ .tag = @enumFromInt(1020), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dotp_s_d - .{ .tag = @enumFromInt(1021), .param_str = "V2SLLiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dotp_s_h - .{ .tag = @enumFromInt(1022), .param_str = "V8SsV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dotp_s_w - .{ .tag = @enumFromInt(1023), .param_str = "V4SiV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dotp_u_d - .{ .tag = @enumFromInt(1024), .param_str = "V2ULLiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dotp_u_h - .{ .tag = @enumFromInt(1025), .param_str = "V8UsV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dotp_u_w - .{ .tag = @enumFromInt(1026), .param_str = "V4UiV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpadd_s_d - .{ .tag = @enumFromInt(1027), .param_str = "V2SLLiV2SLLiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpadd_s_h - .{ .tag = @enumFromInt(1028), .param_str = "V8SsV8SsV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpadd_s_w - .{ .tag = @enumFromInt(1029), .param_str = "V4SiV4SiV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpadd_u_d - .{ .tag = @enumFromInt(1030), .param_str = "V2ULLiV2ULLiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpadd_u_h - .{ .tag = @enumFromInt(1031), .param_str = "V8UsV8UsV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpadd_u_w - .{ .tag = @enumFromInt(1032), .param_str = "V4UiV4UiV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpsub_s_d - .{ .tag = @enumFromInt(1033), .param_str = "V2SLLiV2SLLiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpsub_s_h - .{ .tag = @enumFromInt(1034), .param_str = "V8SsV8SsV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpsub_s_w - .{ .tag = @enumFromInt(1035), .param_str = "V4SiV4SiV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpsub_u_d - .{ .tag = @enumFromInt(1036), .param_str = "V2ULLiV2ULLiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpsub_u_h - .{ .tag = @enumFromInt(1037), .param_str = "V8UsV8UsV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_dpsub_u_w - .{ .tag = @enumFromInt(1038), .param_str = "V4UiV4UiV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fadd_d - .{ .tag = @enumFromInt(1039), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fadd_w - .{ .tag = @enumFromInt(1040), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcaf_d - .{ .tag = @enumFromInt(1041), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcaf_w - .{ .tag = @enumFromInt(1042), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fceq_d - .{ .tag = @enumFromInt(1043), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fceq_w - .{ .tag = @enumFromInt(1044), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fclass_d - .{ .tag = @enumFromInt(1045), .param_str = "V2LLiV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fclass_w - .{ .tag = @enumFromInt(1046), .param_str = "V4iV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcle_d - .{ .tag = @enumFromInt(1047), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcle_w - .{ .tag = @enumFromInt(1048), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fclt_d - .{ .tag = @enumFromInt(1049), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fclt_w - .{ .tag = @enumFromInt(1050), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcne_d - .{ .tag = @enumFromInt(1051), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcne_w - .{ .tag = @enumFromInt(1052), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcor_d - .{ .tag = @enumFromInt(1053), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcor_w - .{ .tag = @enumFromInt(1054), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcueq_d - .{ .tag = @enumFromInt(1055), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcueq_w - .{ .tag = @enumFromInt(1056), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcule_d - .{ .tag = @enumFromInt(1057), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcule_w - .{ .tag = @enumFromInt(1058), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcult_d - .{ .tag = @enumFromInt(1059), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcult_w - .{ .tag = @enumFromInt(1060), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcun_d - .{ .tag = @enumFromInt(1061), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcun_w - .{ .tag = @enumFromInt(1062), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcune_d - .{ .tag = @enumFromInt(1063), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fcune_w - .{ .tag = @enumFromInt(1064), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fdiv_d - .{ .tag = @enumFromInt(1065), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fdiv_w - .{ .tag = @enumFromInt(1066), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexdo_h - .{ .tag = @enumFromInt(1067), .param_str = "V8hV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexdo_w - .{ .tag = @enumFromInt(1068), .param_str = "V4fV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexp2_d - .{ .tag = @enumFromInt(1069), .param_str = "V2dV2dV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexp2_w - .{ .tag = @enumFromInt(1070), .param_str = "V4fV4fV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexupl_d - .{ .tag = @enumFromInt(1071), .param_str = "V2dV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexupl_w - .{ .tag = @enumFromInt(1072), .param_str = "V4fV8h", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexupr_d - .{ .tag = @enumFromInt(1073), .param_str = "V2dV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fexupr_w - .{ .tag = @enumFromInt(1074), .param_str = "V4fV8h", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffint_s_d - .{ .tag = @enumFromInt(1075), .param_str = "V2dV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffint_s_w - .{ .tag = @enumFromInt(1076), .param_str = "V4fV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffint_u_d - .{ .tag = @enumFromInt(1077), .param_str = "V2dV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffint_u_w - .{ .tag = @enumFromInt(1078), .param_str = "V4fV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffql_d - .{ .tag = @enumFromInt(1079), .param_str = "V2dV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffql_w - .{ .tag = @enumFromInt(1080), .param_str = "V4fV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffqr_d - .{ .tag = @enumFromInt(1081), .param_str = "V2dV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ffqr_w - .{ .tag = @enumFromInt(1082), .param_str = "V4fV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fill_b - .{ .tag = @enumFromInt(1083), .param_str = "V16Sci", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fill_d - .{ .tag = @enumFromInt(1084), .param_str = "V2SLLiLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fill_h - .{ .tag = @enumFromInt(1085), .param_str = "V8Ssi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fill_w - .{ .tag = @enumFromInt(1086), .param_str = "V4Sii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_flog2_d - .{ .tag = @enumFromInt(1087), .param_str = "V2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_flog2_w - .{ .tag = @enumFromInt(1088), .param_str = "V4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmadd_d - .{ .tag = @enumFromInt(1089), .param_str = "V2dV2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmadd_w - .{ .tag = @enumFromInt(1090), .param_str = "V4fV4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmax_a_d - .{ .tag = @enumFromInt(1091), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmax_a_w - .{ .tag = @enumFromInt(1092), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmax_d - .{ .tag = @enumFromInt(1093), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmax_w - .{ .tag = @enumFromInt(1094), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmin_a_d - .{ .tag = @enumFromInt(1095), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmin_a_w - .{ .tag = @enumFromInt(1096), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmin_d - .{ .tag = @enumFromInt(1097), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmin_w - .{ .tag = @enumFromInt(1098), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmsub_d - .{ .tag = @enumFromInt(1099), .param_str = "V2dV2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmsub_w - .{ .tag = @enumFromInt(1100), .param_str = "V4fV4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmul_d - .{ .tag = @enumFromInt(1101), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fmul_w - .{ .tag = @enumFromInt(1102), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_frcp_d - .{ .tag = @enumFromInt(1103), .param_str = "V2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_frcp_w - .{ .tag = @enumFromInt(1104), .param_str = "V4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_frint_d - .{ .tag = @enumFromInt(1105), .param_str = "V2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_frint_w - .{ .tag = @enumFromInt(1106), .param_str = "V4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_frsqrt_d - .{ .tag = @enumFromInt(1107), .param_str = "V2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_frsqrt_w - .{ .tag = @enumFromInt(1108), .param_str = "V4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsaf_d - .{ .tag = @enumFromInt(1109), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsaf_w - .{ .tag = @enumFromInt(1110), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fseq_d - .{ .tag = @enumFromInt(1111), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fseq_w - .{ .tag = @enumFromInt(1112), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsle_d - .{ .tag = @enumFromInt(1113), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsle_w - .{ .tag = @enumFromInt(1114), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fslt_d - .{ .tag = @enumFromInt(1115), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fslt_w - .{ .tag = @enumFromInt(1116), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsne_d - .{ .tag = @enumFromInt(1117), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsne_w - .{ .tag = @enumFromInt(1118), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsor_d - .{ .tag = @enumFromInt(1119), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsor_w - .{ .tag = @enumFromInt(1120), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsqrt_d - .{ .tag = @enumFromInt(1121), .param_str = "V2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsqrt_w - .{ .tag = @enumFromInt(1122), .param_str = "V4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsub_d - .{ .tag = @enumFromInt(1123), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsub_w - .{ .tag = @enumFromInt(1124), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsueq_d - .{ .tag = @enumFromInt(1125), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsueq_w - .{ .tag = @enumFromInt(1126), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsule_d - .{ .tag = @enumFromInt(1127), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsule_w - .{ .tag = @enumFromInt(1128), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsult_d - .{ .tag = @enumFromInt(1129), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsult_w - .{ .tag = @enumFromInt(1130), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsun_d - .{ .tag = @enumFromInt(1131), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsun_w - .{ .tag = @enumFromInt(1132), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsune_d - .{ .tag = @enumFromInt(1133), .param_str = "V2LLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_fsune_w - .{ .tag = @enumFromInt(1134), .param_str = "V4iV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftint_s_d - .{ .tag = @enumFromInt(1135), .param_str = "V2SLLiV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftint_s_w - .{ .tag = @enumFromInt(1136), .param_str = "V4SiV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftint_u_d - .{ .tag = @enumFromInt(1137), .param_str = "V2ULLiV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftint_u_w - .{ .tag = @enumFromInt(1138), .param_str = "V4UiV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftq_h - .{ .tag = @enumFromInt(1139), .param_str = "V4UiV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftq_w - .{ .tag = @enumFromInt(1140), .param_str = "V2ULLiV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftrunc_s_d - .{ .tag = @enumFromInt(1141), .param_str = "V2SLLiV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftrunc_s_w - .{ .tag = @enumFromInt(1142), .param_str = "V4SiV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftrunc_u_d - .{ .tag = @enumFromInt(1143), .param_str = "V2ULLiV2d", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ftrunc_u_w - .{ .tag = @enumFromInt(1144), .param_str = "V4UiV4f", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hadd_s_d - .{ .tag = @enumFromInt(1145), .param_str = "V2SLLiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hadd_s_h - .{ .tag = @enumFromInt(1146), .param_str = "V8SsV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hadd_s_w - .{ .tag = @enumFromInt(1147), .param_str = "V4SiV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hadd_u_d - .{ .tag = @enumFromInt(1148), .param_str = "V2ULLiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hadd_u_h - .{ .tag = @enumFromInt(1149), .param_str = "V8UsV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hadd_u_w - .{ .tag = @enumFromInt(1150), .param_str = "V4UiV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hsub_s_d - .{ .tag = @enumFromInt(1151), .param_str = "V2SLLiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hsub_s_h - .{ .tag = @enumFromInt(1152), .param_str = "V8SsV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hsub_s_w - .{ .tag = @enumFromInt(1153), .param_str = "V4SiV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hsub_u_d - .{ .tag = @enumFromInt(1154), .param_str = "V2ULLiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hsub_u_h - .{ .tag = @enumFromInt(1155), .param_str = "V8UsV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_hsub_u_w - .{ .tag = @enumFromInt(1156), .param_str = "V4UiV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvev_b - .{ .tag = @enumFromInt(1157), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvev_d - .{ .tag = @enumFromInt(1158), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvev_h - .{ .tag = @enumFromInt(1159), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvev_w - .{ .tag = @enumFromInt(1160), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvl_b - .{ .tag = @enumFromInt(1161), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvl_d - .{ .tag = @enumFromInt(1162), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvl_h - .{ .tag = @enumFromInt(1163), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvl_w - .{ .tag = @enumFromInt(1164), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvod_b - .{ .tag = @enumFromInt(1165), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvod_d - .{ .tag = @enumFromInt(1166), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvod_h - .{ .tag = @enumFromInt(1167), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvod_w - .{ .tag = @enumFromInt(1168), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvr_b - .{ .tag = @enumFromInt(1169), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvr_d - .{ .tag = @enumFromInt(1170), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvr_h - .{ .tag = @enumFromInt(1171), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ilvr_w - .{ .tag = @enumFromInt(1172), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insert_b - .{ .tag = @enumFromInt(1173), .param_str = "V16ScV16ScIUii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insert_d - .{ .tag = @enumFromInt(1174), .param_str = "V2SLLiV2SLLiIUiLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insert_h - .{ .tag = @enumFromInt(1175), .param_str = "V8SsV8SsIUii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insert_w - .{ .tag = @enumFromInt(1176), .param_str = "V4SiV4SiIUii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insve_b - .{ .tag = @enumFromInt(1177), .param_str = "V16ScV16ScIUiV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insve_d - .{ .tag = @enumFromInt(1178), .param_str = "V2SLLiV2SLLiIUiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insve_h - .{ .tag = @enumFromInt(1179), .param_str = "V8SsV8SsIUiV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_insve_w - .{ .tag = @enumFromInt(1180), .param_str = "V4SiV4SiIUiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ld_b - .{ .tag = @enumFromInt(1181), .param_str = "V16Scv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ld_d - .{ .tag = @enumFromInt(1182), .param_str = "V2SLLiv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ld_h - .{ .tag = @enumFromInt(1183), .param_str = "V8Ssv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ld_w - .{ .tag = @enumFromInt(1184), .param_str = "V4Siv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ldi_b - .{ .tag = @enumFromInt(1185), .param_str = "V16cIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ldi_d - .{ .tag = @enumFromInt(1186), .param_str = "V2LLiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ldi_h - .{ .tag = @enumFromInt(1187), .param_str = "V8sIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ldi_w - .{ .tag = @enumFromInt(1188), .param_str = "V4iIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ldr_d - .{ .tag = @enumFromInt(1189), .param_str = "V2SLLiv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ldr_w - .{ .tag = @enumFromInt(1190), .param_str = "V4Siv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_madd_q_h - .{ .tag = @enumFromInt(1191), .param_str = "V8SsV8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_madd_q_w - .{ .tag = @enumFromInt(1192), .param_str = "V4SiV4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maddr_q_h - .{ .tag = @enumFromInt(1193), .param_str = "V8SsV8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maddr_q_w - .{ .tag = @enumFromInt(1194), .param_str = "V4SiV4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maddv_b - .{ .tag = @enumFromInt(1195), .param_str = "V16ScV16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maddv_d - .{ .tag = @enumFromInt(1196), .param_str = "V2SLLiV2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maddv_h - .{ .tag = @enumFromInt(1197), .param_str = "V8SsV8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maddv_w - .{ .tag = @enumFromInt(1198), .param_str = "V4SiV4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_a_b - .{ .tag = @enumFromInt(1199), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_a_d - .{ .tag = @enumFromInt(1200), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_a_h - .{ .tag = @enumFromInt(1201), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_a_w - .{ .tag = @enumFromInt(1202), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_s_b - .{ .tag = @enumFromInt(1203), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_s_d - .{ .tag = @enumFromInt(1204), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_s_h - .{ .tag = @enumFromInt(1205), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_s_w - .{ .tag = @enumFromInt(1206), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_u_b - .{ .tag = @enumFromInt(1207), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_u_d - .{ .tag = @enumFromInt(1208), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_u_h - .{ .tag = @enumFromInt(1209), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_max_u_w - .{ .tag = @enumFromInt(1210), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_s_b - .{ .tag = @enumFromInt(1211), .param_str = "V16ScV16ScIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_s_d - .{ .tag = @enumFromInt(1212), .param_str = "V2SLLiV2SLLiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_s_h - .{ .tag = @enumFromInt(1213), .param_str = "V8SsV8SsIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_s_w - .{ .tag = @enumFromInt(1214), .param_str = "V4SiV4SiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_u_b - .{ .tag = @enumFromInt(1215), .param_str = "V16UcV16UcIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_u_d - .{ .tag = @enumFromInt(1216), .param_str = "V2ULLiV2ULLiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_u_h - .{ .tag = @enumFromInt(1217), .param_str = "V8UsV8UsIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_maxi_u_w - .{ .tag = @enumFromInt(1218), .param_str = "V4UiV4UiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_a_b - .{ .tag = @enumFromInt(1219), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_a_d - .{ .tag = @enumFromInt(1220), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_a_h - .{ .tag = @enumFromInt(1221), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_a_w - .{ .tag = @enumFromInt(1222), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_s_b - .{ .tag = @enumFromInt(1223), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_s_d - .{ .tag = @enumFromInt(1224), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_s_h - .{ .tag = @enumFromInt(1225), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_s_w - .{ .tag = @enumFromInt(1226), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_u_b - .{ .tag = @enumFromInt(1227), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_u_d - .{ .tag = @enumFromInt(1228), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_u_h - .{ .tag = @enumFromInt(1229), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_min_u_w - .{ .tag = @enumFromInt(1230), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_s_b - .{ .tag = @enumFromInt(1231), .param_str = "V16ScV16ScIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_s_d - .{ .tag = @enumFromInt(1232), .param_str = "V2SLLiV2SLLiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_s_h - .{ .tag = @enumFromInt(1233), .param_str = "V8SsV8SsIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_s_w - .{ .tag = @enumFromInt(1234), .param_str = "V4SiV4SiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_u_b - .{ .tag = @enumFromInt(1235), .param_str = "V16UcV16UcIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_u_d - .{ .tag = @enumFromInt(1236), .param_str = "V2ULLiV2ULLiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_u_h - .{ .tag = @enumFromInt(1237), .param_str = "V8UsV8UsIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mini_u_w - .{ .tag = @enumFromInt(1238), .param_str = "V4UiV4UiIi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_s_b - .{ .tag = @enumFromInt(1239), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_s_d - .{ .tag = @enumFromInt(1240), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_s_h - .{ .tag = @enumFromInt(1241), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_s_w - .{ .tag = @enumFromInt(1242), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_u_b - .{ .tag = @enumFromInt(1243), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_u_d - .{ .tag = @enumFromInt(1244), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_u_h - .{ .tag = @enumFromInt(1245), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mod_u_w - .{ .tag = @enumFromInt(1246), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_move_v - .{ .tag = @enumFromInt(1247), .param_str = "V16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msub_q_h - .{ .tag = @enumFromInt(1248), .param_str = "V8SsV8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msub_q_w - .{ .tag = @enumFromInt(1249), .param_str = "V4SiV4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msubr_q_h - .{ .tag = @enumFromInt(1250), .param_str = "V8SsV8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msubr_q_w - .{ .tag = @enumFromInt(1251), .param_str = "V4SiV4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msubv_b - .{ .tag = @enumFromInt(1252), .param_str = "V16ScV16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msubv_d - .{ .tag = @enumFromInt(1253), .param_str = "V2SLLiV2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msubv_h - .{ .tag = @enumFromInt(1254), .param_str = "V8SsV8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_msubv_w - .{ .tag = @enumFromInt(1255), .param_str = "V4SiV4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mul_q_h - .{ .tag = @enumFromInt(1256), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mul_q_w - .{ .tag = @enumFromInt(1257), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mulr_q_h - .{ .tag = @enumFromInt(1258), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mulr_q_w - .{ .tag = @enumFromInt(1259), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mulv_b - .{ .tag = @enumFromInt(1260), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mulv_d - .{ .tag = @enumFromInt(1261), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mulv_h - .{ .tag = @enumFromInt(1262), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_mulv_w - .{ .tag = @enumFromInt(1263), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nloc_b - .{ .tag = @enumFromInt(1264), .param_str = "V16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nloc_d - .{ .tag = @enumFromInt(1265), .param_str = "V2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nloc_h - .{ .tag = @enumFromInt(1266), .param_str = "V8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nloc_w - .{ .tag = @enumFromInt(1267), .param_str = "V4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nlzc_b - .{ .tag = @enumFromInt(1268), .param_str = "V16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nlzc_d - .{ .tag = @enumFromInt(1269), .param_str = "V2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nlzc_h - .{ .tag = @enumFromInt(1270), .param_str = "V8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nlzc_w - .{ .tag = @enumFromInt(1271), .param_str = "V4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nor_v - .{ .tag = @enumFromInt(1272), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_nori_b - .{ .tag = @enumFromInt(1273), .param_str = "V16UcV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_or_v - .{ .tag = @enumFromInt(1274), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_ori_b - .{ .tag = @enumFromInt(1275), .param_str = "V16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckev_b - .{ .tag = @enumFromInt(1276), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckev_d - .{ .tag = @enumFromInt(1277), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckev_h - .{ .tag = @enumFromInt(1278), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckev_w - .{ .tag = @enumFromInt(1279), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckod_b - .{ .tag = @enumFromInt(1280), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckod_d - .{ .tag = @enumFromInt(1281), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckod_h - .{ .tag = @enumFromInt(1282), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pckod_w - .{ .tag = @enumFromInt(1283), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pcnt_b - .{ .tag = @enumFromInt(1284), .param_str = "V16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pcnt_d - .{ .tag = @enumFromInt(1285), .param_str = "V2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pcnt_h - .{ .tag = @enumFromInt(1286), .param_str = "V8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_pcnt_w - .{ .tag = @enumFromInt(1287), .param_str = "V4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_s_b - .{ .tag = @enumFromInt(1288), .param_str = "V16ScV16ScIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_s_d - .{ .tag = @enumFromInt(1289), .param_str = "V2SLLiV2SLLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_s_h - .{ .tag = @enumFromInt(1290), .param_str = "V8SsV8SsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_s_w - .{ .tag = @enumFromInt(1291), .param_str = "V4SiV4SiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_u_b - .{ .tag = @enumFromInt(1292), .param_str = "V16UcV16UcIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_u_d - .{ .tag = @enumFromInt(1293), .param_str = "V2ULLiV2ULLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_u_h - .{ .tag = @enumFromInt(1294), .param_str = "V8UsV8UsIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sat_u_w - .{ .tag = @enumFromInt(1295), .param_str = "V4UiV4UiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_shf_b - .{ .tag = @enumFromInt(1296), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_shf_h - .{ .tag = @enumFromInt(1297), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_shf_w - .{ .tag = @enumFromInt(1298), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sld_b - .{ .tag = @enumFromInt(1299), .param_str = "V16cV16cV16cUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sld_d - .{ .tag = @enumFromInt(1300), .param_str = "V2LLiV2LLiV2LLiUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sld_h - .{ .tag = @enumFromInt(1301), .param_str = "V8sV8sV8sUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sld_w - .{ .tag = @enumFromInt(1302), .param_str = "V4iV4iV4iUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sldi_b - .{ .tag = @enumFromInt(1303), .param_str = "V16cV16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sldi_d - .{ .tag = @enumFromInt(1304), .param_str = "V2LLiV2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sldi_h - .{ .tag = @enumFromInt(1305), .param_str = "V8sV8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sldi_w - .{ .tag = @enumFromInt(1306), .param_str = "V4iV4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sll_b - .{ .tag = @enumFromInt(1307), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sll_d - .{ .tag = @enumFromInt(1308), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sll_h - .{ .tag = @enumFromInt(1309), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sll_w - .{ .tag = @enumFromInt(1310), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_slli_b - .{ .tag = @enumFromInt(1311), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_slli_d - .{ .tag = @enumFromInt(1312), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_slli_h - .{ .tag = @enumFromInt(1313), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_slli_w - .{ .tag = @enumFromInt(1314), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splat_b - .{ .tag = @enumFromInt(1315), .param_str = "V16cV16cUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splat_d - .{ .tag = @enumFromInt(1316), .param_str = "V2LLiV2LLiUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splat_h - .{ .tag = @enumFromInt(1317), .param_str = "V8sV8sUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splat_w - .{ .tag = @enumFromInt(1318), .param_str = "V4iV4iUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splati_b - .{ .tag = @enumFromInt(1319), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splati_d - .{ .tag = @enumFromInt(1320), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splati_h - .{ .tag = @enumFromInt(1321), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_splati_w - .{ .tag = @enumFromInt(1322), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sra_b - .{ .tag = @enumFromInt(1323), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sra_d - .{ .tag = @enumFromInt(1324), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sra_h - .{ .tag = @enumFromInt(1325), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_sra_w - .{ .tag = @enumFromInt(1326), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srai_b - .{ .tag = @enumFromInt(1327), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srai_d - .{ .tag = @enumFromInt(1328), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srai_h - .{ .tag = @enumFromInt(1329), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srai_w - .{ .tag = @enumFromInt(1330), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srar_b - .{ .tag = @enumFromInt(1331), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srar_d - .{ .tag = @enumFromInt(1332), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srar_h - .{ .tag = @enumFromInt(1333), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srar_w - .{ .tag = @enumFromInt(1334), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srari_b - .{ .tag = @enumFromInt(1335), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srari_d - .{ .tag = @enumFromInt(1336), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srari_h - .{ .tag = @enumFromInt(1337), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srari_w - .{ .tag = @enumFromInt(1338), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srl_b - .{ .tag = @enumFromInt(1339), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srl_d - .{ .tag = @enumFromInt(1340), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srl_h - .{ .tag = @enumFromInt(1341), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srl_w - .{ .tag = @enumFromInt(1342), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srli_b - .{ .tag = @enumFromInt(1343), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srli_d - .{ .tag = @enumFromInt(1344), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srli_h - .{ .tag = @enumFromInt(1345), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srli_w - .{ .tag = @enumFromInt(1346), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlr_b - .{ .tag = @enumFromInt(1347), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlr_d - .{ .tag = @enumFromInt(1348), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlr_h - .{ .tag = @enumFromInt(1349), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlr_w - .{ .tag = @enumFromInt(1350), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlri_b - .{ .tag = @enumFromInt(1351), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlri_d - .{ .tag = @enumFromInt(1352), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlri_h - .{ .tag = @enumFromInt(1353), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_srlri_w - .{ .tag = @enumFromInt(1354), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_st_b - .{ .tag = @enumFromInt(1355), .param_str = "vV16Scv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_st_d - .{ .tag = @enumFromInt(1356), .param_str = "vV2SLLiv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_st_h - .{ .tag = @enumFromInt(1357), .param_str = "vV8Ssv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_st_w - .{ .tag = @enumFromInt(1358), .param_str = "vV4Siv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_str_d - .{ .tag = @enumFromInt(1359), .param_str = "vV2SLLiv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_str_w - .{ .tag = @enumFromInt(1360), .param_str = "vV4Siv*Ii", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_s_b - .{ .tag = @enumFromInt(1361), .param_str = "V16ScV16ScV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_s_d - .{ .tag = @enumFromInt(1362), .param_str = "V2SLLiV2SLLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_s_h - .{ .tag = @enumFromInt(1363), .param_str = "V8SsV8SsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_s_w - .{ .tag = @enumFromInt(1364), .param_str = "V4SiV4SiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_u_b - .{ .tag = @enumFromInt(1365), .param_str = "V16UcV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_u_d - .{ .tag = @enumFromInt(1366), .param_str = "V2ULLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_u_h - .{ .tag = @enumFromInt(1367), .param_str = "V8UsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subs_u_w - .{ .tag = @enumFromInt(1368), .param_str = "V4UiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsus_u_b - .{ .tag = @enumFromInt(1369), .param_str = "V16UcV16UcV16Sc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsus_u_d - .{ .tag = @enumFromInt(1370), .param_str = "V2ULLiV2ULLiV2SLLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsus_u_h - .{ .tag = @enumFromInt(1371), .param_str = "V8UsV8UsV8Ss", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsus_u_w - .{ .tag = @enumFromInt(1372), .param_str = "V4UiV4UiV4Si", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsuu_s_b - .{ .tag = @enumFromInt(1373), .param_str = "V16ScV16UcV16Uc", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsuu_s_d - .{ .tag = @enumFromInt(1374), .param_str = "V2SLLiV2ULLiV2ULLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsuu_s_h - .{ .tag = @enumFromInt(1375), .param_str = "V8SsV8UsV8Us", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subsuu_s_w - .{ .tag = @enumFromInt(1376), .param_str = "V4SiV4UiV4Ui", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subv_b - .{ .tag = @enumFromInt(1377), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subv_d - .{ .tag = @enumFromInt(1378), .param_str = "V2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subv_h - .{ .tag = @enumFromInt(1379), .param_str = "V8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subv_w - .{ .tag = @enumFromInt(1380), .param_str = "V4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subvi_b - .{ .tag = @enumFromInt(1381), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subvi_d - .{ .tag = @enumFromInt(1382), .param_str = "V2LLiV2LLiIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subvi_h - .{ .tag = @enumFromInt(1383), .param_str = "V8sV8sIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_subvi_w - .{ .tag = @enumFromInt(1384), .param_str = "V4iV4iIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_vshf_b - .{ .tag = @enumFromInt(1385), .param_str = "V16cV16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_vshf_d - .{ .tag = @enumFromInt(1386), .param_str = "V2LLiV2LLiV2LLiV2LLi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_vshf_h - .{ .tag = @enumFromInt(1387), .param_str = "V8sV8sV8sV8s", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_vshf_w - .{ .tag = @enumFromInt(1388), .param_str = "V4iV4iV4iV4i", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_xor_v - .{ .tag = @enumFromInt(1389), .param_str = "V16cV16cV16c", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_msa_xori_b - .{ .tag = @enumFromInt(1390), .param_str = "V16cV16cIUi", .properties = .{ .target_set = TargetSet.initOne(.mips), .attributes = .{ .@"const" = true } } }, - // __builtin_mul_overflow - .{ .tag = @enumFromInt(1391), .param_str = "b.", .properties = .{ .attributes = .{ .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_nan - .{ .tag = @enumFromInt(1392), .param_str = "dcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nanf - .{ .tag = @enumFromInt(1393), .param_str = "fcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nanf128 - .{ .tag = @enumFromInt(1394), .param_str = "LLdcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nanf16 - .{ .tag = @enumFromInt(1395), .param_str = "xcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nanl - .{ .tag = @enumFromInt(1396), .param_str = "LdcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nans - .{ .tag = @enumFromInt(1397), .param_str = "dcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nansf - .{ .tag = @enumFromInt(1398), .param_str = "fcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nansf128 - .{ .tag = @enumFromInt(1399), .param_str = "LLdcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nansf16 - .{ .tag = @enumFromInt(1400), .param_str = "xcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nansl - .{ .tag = @enumFromInt(1401), .param_str = "LdcC*", .properties = .{ .attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_nearbyint - .{ .tag = @enumFromInt(1402), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_nearbyintf - .{ .tag = @enumFromInt(1403), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_nearbyintf128 - .{ .tag = @enumFromInt(1404), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_nearbyintl - .{ .tag = @enumFromInt(1405), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_nextafter - .{ .tag = @enumFromInt(1406), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nextafterf - .{ .tag = @enumFromInt(1407), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nextafterf128 - .{ .tag = @enumFromInt(1408), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nextafterl - .{ .tag = @enumFromInt(1409), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nexttoward - .{ .tag = @enumFromInt(1410), .param_str = "ddLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nexttowardf - .{ .tag = @enumFromInt(1411), .param_str = "ffLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nexttowardf128 - .{ .tag = @enumFromInt(1412), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nexttowardl - .{ .tag = @enumFromInt(1413), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_nondeterministic_value - .{ .tag = @enumFromInt(1414), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_nontemporal_load - .{ .tag = @enumFromInt(1415), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_nontemporal_store - .{ .tag = @enumFromInt(1416), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_objc_memmove_collectable - .{ .tag = @enumFromInt(1417), .param_str = "v*v*vC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_object_size - .{ .tag = @enumFromInt(1418), .param_str = "zvC*i", .properties = .{ .attributes = .{ .eval_args = false, .const_evaluable = true } } }, - // __builtin_operator_delete - .{ .tag = @enumFromInt(1419), .param_str = "vv*", .properties = .{ .attributes = .{ .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_operator_new - .{ .tag = @enumFromInt(1420), .param_str = "v*z", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_os_log_format - .{ .tag = @enumFromInt(1421), .param_str = "v*v*cC*.", .properties = .{ .attributes = .{ .custom_typecheck = true, .format_kind = .printf } } }, - // __builtin_os_log_format_buffer_size - .{ .tag = @enumFromInt(1422), .param_str = "zcC*.", .properties = .{ .attributes = .{ .custom_typecheck = true, .format_kind = .printf, .eval_args = false, .const_evaluable = true } } }, - // __builtin_pack_longdouble - .{ .tag = @enumFromInt(1423), .param_str = "Lddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_parity - .{ .tag = @enumFromInt(1424), .param_str = "iUi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_parityl - .{ .tag = @enumFromInt(1425), .param_str = "iULi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_parityll - .{ .tag = @enumFromInt(1426), .param_str = "iULLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_popcount - .{ .tag = @enumFromInt(1427), .param_str = "iUi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_popcountl - .{ .tag = @enumFromInt(1428), .param_str = "iULi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_popcountll - .{ .tag = @enumFromInt(1429), .param_str = "iULLi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_pow - .{ .tag = @enumFromInt(1430), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_powf - .{ .tag = @enumFromInt(1431), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_powf128 - .{ .tag = @enumFromInt(1432), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_powf16 - .{ .tag = @enumFromInt(1433), .param_str = "hhh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_powi - .{ .tag = @enumFromInt(1434), .param_str = "ddi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_powif - .{ .tag = @enumFromInt(1435), .param_str = "ffi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_powil - .{ .tag = @enumFromInt(1436), .param_str = "LdLdi", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_powl - .{ .tag = @enumFromInt(1437), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_ppc_alignx - .{ .tag = @enumFromInt(1438), .param_str = "vIivC*", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .@"const" = true } } }, - // __builtin_ppc_cmpb - .{ .tag = @enumFromInt(1439), .param_str = "LLiLLiLLi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_compare_and_swap - .{ .tag = @enumFromInt(1440), .param_str = "iiD*i*i", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_compare_and_swaplp - .{ .tag = @enumFromInt(1441), .param_str = "iLiD*Li*Li", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbfl - .{ .tag = @enumFromInt(1442), .param_str = "vvC*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbflp - .{ .tag = @enumFromInt(1443), .param_str = "vvC*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbst - .{ .tag = @enumFromInt(1444), .param_str = "vvC*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbt - .{ .tag = @enumFromInt(1445), .param_str = "vv*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbtst - .{ .tag = @enumFromInt(1446), .param_str = "vv*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbtstt - .{ .tag = @enumFromInt(1447), .param_str = "vv*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbtt - .{ .tag = @enumFromInt(1448), .param_str = "vv*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_dcbz - .{ .tag = @enumFromInt(1449), .param_str = "vv*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_eieio - .{ .tag = @enumFromInt(1450), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fcfid - .{ .tag = @enumFromInt(1451), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fcfud - .{ .tag = @enumFromInt(1452), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fctid - .{ .tag = @enumFromInt(1453), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fctidz - .{ .tag = @enumFromInt(1454), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fctiw - .{ .tag = @enumFromInt(1455), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fctiwz - .{ .tag = @enumFromInt(1456), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fctudz - .{ .tag = @enumFromInt(1457), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fctuwz - .{ .tag = @enumFromInt(1458), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_add - .{ .tag = @enumFromInt(1459), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_addlp - .{ .tag = @enumFromInt(1460), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_and - .{ .tag = @enumFromInt(1461), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_andlp - .{ .tag = @enumFromInt(1462), .param_str = "ULiULiD*ULi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_or - .{ .tag = @enumFromInt(1463), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_orlp - .{ .tag = @enumFromInt(1464), .param_str = "ULiULiD*ULi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_swap - .{ .tag = @enumFromInt(1465), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fetch_and_swaplp - .{ .tag = @enumFromInt(1466), .param_str = "ULiULiD*ULi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fmsub - .{ .tag = @enumFromInt(1467), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fmsubs - .{ .tag = @enumFromInt(1468), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fnabs - .{ .tag = @enumFromInt(1469), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fnabss - .{ .tag = @enumFromInt(1470), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fnmadd - .{ .tag = @enumFromInt(1471), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fnmadds - .{ .tag = @enumFromInt(1472), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fnmsub - .{ .tag = @enumFromInt(1473), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fnmsubs - .{ .tag = @enumFromInt(1474), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fre - .{ .tag = @enumFromInt(1475), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fres - .{ .tag = @enumFromInt(1476), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fric - .{ .tag = @enumFromInt(1477), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frim - .{ .tag = @enumFromInt(1478), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frims - .{ .tag = @enumFromInt(1479), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frin - .{ .tag = @enumFromInt(1480), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frins - .{ .tag = @enumFromInt(1481), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frip - .{ .tag = @enumFromInt(1482), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frips - .{ .tag = @enumFromInt(1483), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_friz - .{ .tag = @enumFromInt(1484), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frizs - .{ .tag = @enumFromInt(1485), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frsqrte - .{ .tag = @enumFromInt(1486), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_frsqrtes - .{ .tag = @enumFromInt(1487), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fsel - .{ .tag = @enumFromInt(1488), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fsels - .{ .tag = @enumFromInt(1489), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fsqrt - .{ .tag = @enumFromInt(1490), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_fsqrts - .{ .tag = @enumFromInt(1491), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_get_timebase - .{ .tag = @enumFromInt(1492), .param_str = "ULLi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_iospace_eieio - .{ .tag = @enumFromInt(1493), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_iospace_lwsync - .{ .tag = @enumFromInt(1494), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_iospace_sync - .{ .tag = @enumFromInt(1495), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_isync - .{ .tag = @enumFromInt(1496), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_ldarx - .{ .tag = @enumFromInt(1497), .param_str = "LiLiD*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_load2r - .{ .tag = @enumFromInt(1498), .param_str = "UsUs*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_load4r - .{ .tag = @enumFromInt(1499), .param_str = "UiUi*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_lwarx - .{ .tag = @enumFromInt(1500), .param_str = "iiD*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_lwsync - .{ .tag = @enumFromInt(1501), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_maxfe - .{ .tag = @enumFromInt(1502), .param_str = "LdLdLdLd.", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ppc_maxfl - .{ .tag = @enumFromInt(1503), .param_str = "dddd.", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ppc_maxfs - .{ .tag = @enumFromInt(1504), .param_str = "ffff.", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ppc_mfmsr - .{ .tag = @enumFromInt(1505), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mfspr - .{ .tag = @enumFromInt(1506), .param_str = "ULiIi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mftbu - .{ .tag = @enumFromInt(1507), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_minfe - .{ .tag = @enumFromInt(1508), .param_str = "LdLdLdLd.", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ppc_minfl - .{ .tag = @enumFromInt(1509), .param_str = "dddd.", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ppc_minfs - .{ .tag = @enumFromInt(1510), .param_str = "ffff.", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ppc_mtfsb0 - .{ .tag = @enumFromInt(1511), .param_str = "vUIi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mtfsb1 - .{ .tag = @enumFromInt(1512), .param_str = "vUIi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mtfsf - .{ .tag = @enumFromInt(1513), .param_str = "vUIiUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mtfsfi - .{ .tag = @enumFromInt(1514), .param_str = "vUIiUIi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mtmsr - .{ .tag = @enumFromInt(1515), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mtspr - .{ .tag = @enumFromInt(1516), .param_str = "vIiULi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mulhd - .{ .tag = @enumFromInt(1517), .param_str = "LLiLiLi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mulhdu - .{ .tag = @enumFromInt(1518), .param_str = "ULLiULiULi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mulhw - .{ .tag = @enumFromInt(1519), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_mulhwu - .{ .tag = @enumFromInt(1520), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_popcntb - .{ .tag = @enumFromInt(1521), .param_str = "ULiULi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_poppar4 - .{ .tag = @enumFromInt(1522), .param_str = "iUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_poppar8 - .{ .tag = @enumFromInt(1523), .param_str = "iULLi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_rdlam - .{ .tag = @enumFromInt(1524), .param_str = "UWiUWiUWiUWIi", .properties = .{ .target_set = TargetSet.initOne(.ppc), .attributes = .{ .@"const" = true } } }, - // __builtin_ppc_recipdivd - .{ .tag = @enumFromInt(1525), .param_str = "V2dV2dV2d", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_recipdivf - .{ .tag = @enumFromInt(1526), .param_str = "V4fV4fV4f", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_rldimi - .{ .tag = @enumFromInt(1527), .param_str = "ULLiULLiULLiIUiIULLi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_rlwimi - .{ .tag = @enumFromInt(1528), .param_str = "UiUiUiIUiIUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_rlwnm - .{ .tag = @enumFromInt(1529), .param_str = "UiUiUiIUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_rsqrtd - .{ .tag = @enumFromInt(1530), .param_str = "V2dV2d", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_rsqrtf - .{ .tag = @enumFromInt(1531), .param_str = "V4fV4f", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_stdcx - .{ .tag = @enumFromInt(1532), .param_str = "iLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_stfiw - .{ .tag = @enumFromInt(1533), .param_str = "viC*d", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_store2r - .{ .tag = @enumFromInt(1534), .param_str = "vUiUs*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_store4r - .{ .tag = @enumFromInt(1535), .param_str = "vUiUi*", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_stwcx - .{ .tag = @enumFromInt(1536), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_swdiv - .{ .tag = @enumFromInt(1537), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_swdiv_nochk - .{ .tag = @enumFromInt(1538), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_swdivs - .{ .tag = @enumFromInt(1539), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_swdivs_nochk - .{ .tag = @enumFromInt(1540), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_sync - .{ .tag = @enumFromInt(1541), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_tdw - .{ .tag = @enumFromInt(1542), .param_str = "vLLiLLiIUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_trap - .{ .tag = @enumFromInt(1543), .param_str = "vi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_trapd - .{ .tag = @enumFromInt(1544), .param_str = "vLi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_ppc_tw - .{ .tag = @enumFromInt(1545), .param_str = "viiIUi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_prefetch - .{ .tag = @enumFromInt(1546), .param_str = "vvC*.", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_preserve_access_index - .{ .tag = @enumFromInt(1547), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_printf - .{ .tag = @enumFromInt(1548), .param_str = "icC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf } } }, - // __builtin_ptx_get_image_channel_data_typei_ - .{ .tag = @enumFromInt(1549), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_get_image_channel_orderi_ - .{ .tag = @enumFromInt(1550), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_get_image_depthi_ - .{ .tag = @enumFromInt(1551), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_get_image_heighti_ - .{ .tag = @enumFromInt(1552), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_get_image_widthi_ - .{ .tag = @enumFromInt(1553), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image2Dff_ - .{ .tag = @enumFromInt(1554), .param_str = "V4fiiff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image2Dfi_ - .{ .tag = @enumFromInt(1555), .param_str = "V4fiiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image2Dif_ - .{ .tag = @enumFromInt(1556), .param_str = "V4iiiff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image2Dii_ - .{ .tag = @enumFromInt(1557), .param_str = "V4iiiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image3Dff_ - .{ .tag = @enumFromInt(1558), .param_str = "V4fiiffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image3Dfi_ - .{ .tag = @enumFromInt(1559), .param_str = "V4fiiiiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image3Dif_ - .{ .tag = @enumFromInt(1560), .param_str = "V4iiiffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_read_image3Dii_ - .{ .tag = @enumFromInt(1561), .param_str = "V4iiiiiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_write_image2Df_ - .{ .tag = @enumFromInt(1562), .param_str = "viiiffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_write_image2Di_ - .{ .tag = @enumFromInt(1563), .param_str = "viiiiiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_ptx_write_image2Dui_ - .{ .tag = @enumFromInt(1564), .param_str = "viiiUiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __builtin_r600_implicitarg_ptr - .{ .tag = @enumFromInt(1565), .param_str = "Uc*7", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_read_tgid_x - .{ .tag = @enumFromInt(1566), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_read_tgid_y - .{ .tag = @enumFromInt(1567), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_read_tgid_z - .{ .tag = @enumFromInt(1568), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_read_tidig_x - .{ .tag = @enumFromInt(1569), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_read_tidig_y - .{ .tag = @enumFromInt(1570), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_read_tidig_z - .{ .tag = @enumFromInt(1571), .param_str = "Ui", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_recipsqrt_ieee - .{ .tag = @enumFromInt(1572), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_r600_recipsqrt_ieeef - .{ .tag = @enumFromInt(1573), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.amdgpu), .attributes = .{ .@"const" = true } } }, - // __builtin_readcyclecounter - .{ .tag = @enumFromInt(1574), .param_str = "ULLi", .properties = .{} }, - // __builtin_readflm - .{ .tag = @enumFromInt(1575), .param_str = "d", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_realloc - .{ .tag = @enumFromInt(1576), .param_str = "v*v*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_reduce_add - .{ .tag = @enumFromInt(1577), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_reduce_and - .{ .tag = @enumFromInt(1578), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_reduce_max - .{ .tag = @enumFromInt(1579), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_reduce_min - .{ .tag = @enumFromInt(1580), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_reduce_mul - .{ .tag = @enumFromInt(1581), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_reduce_or - .{ .tag = @enumFromInt(1582), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_reduce_xor - .{ .tag = @enumFromInt(1583), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_remainder - .{ .tag = @enumFromInt(1584), .param_str = "ddd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_remainderf - .{ .tag = @enumFromInt(1585), .param_str = "fff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_remainderf128 - .{ .tag = @enumFromInt(1586), .param_str = "LLdLLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_remainderl - .{ .tag = @enumFromInt(1587), .param_str = "LdLdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_remquo - .{ .tag = @enumFromInt(1588), .param_str = "dddi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_remquof - .{ .tag = @enumFromInt(1589), .param_str = "fffi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_remquof128 - .{ .tag = @enumFromInt(1590), .param_str = "LLdLLdLLdi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_remquol - .{ .tag = @enumFromInt(1591), .param_str = "LdLdLdi*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_return_address - .{ .tag = @enumFromInt(1592), .param_str = "v*IUi", .properties = .{} }, - // __builtin_rindex - .{ .tag = @enumFromInt(1593), .param_str = "c*cC*i", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_rint - .{ .tag = @enumFromInt(1594), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_rintf - .{ .tag = @enumFromInt(1595), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_rintf128 - .{ .tag = @enumFromInt(1596), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_rintf16 - .{ .tag = @enumFromInt(1597), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_rintl - .{ .tag = @enumFromInt(1598), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_rotateleft16 - .{ .tag = @enumFromInt(1599), .param_str = "UsUsUs", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateleft32 - .{ .tag = @enumFromInt(1600), .param_str = "UZiUZiUZi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateleft64 - .{ .tag = @enumFromInt(1601), .param_str = "UWiUWiUWi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateleft8 - .{ .tag = @enumFromInt(1602), .param_str = "UcUcUc", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateright16 - .{ .tag = @enumFromInt(1603), .param_str = "UsUsUs", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateright32 - .{ .tag = @enumFromInt(1604), .param_str = "UZiUZiUZi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateright64 - .{ .tag = @enumFromInt(1605), .param_str = "UWiUWiUWi", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_rotateright8 - .{ .tag = @enumFromInt(1606), .param_str = "UcUcUc", .properties = .{ .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __builtin_round - .{ .tag = @enumFromInt(1607), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundeven - .{ .tag = @enumFromInt(1608), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundevenf - .{ .tag = @enumFromInt(1609), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundevenf128 - .{ .tag = @enumFromInt(1610), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundevenf16 - .{ .tag = @enumFromInt(1611), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundevenl - .{ .tag = @enumFromInt(1612), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundf - .{ .tag = @enumFromInt(1613), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundf128 - .{ .tag = @enumFromInt(1614), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundf16 - .{ .tag = @enumFromInt(1615), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_roundl - .{ .tag = @enumFromInt(1616), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_sadd_overflow - .{ .tag = @enumFromInt(1617), .param_str = "bSiCSiCSi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_saddl_overflow - .{ .tag = @enumFromInt(1618), .param_str = "bSLiCSLiCSLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_saddll_overflow - .{ .tag = @enumFromInt(1619), .param_str = "bSLLiCSLLiCSLLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_scalbln - .{ .tag = @enumFromInt(1620), .param_str = "ddLi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalblnf - .{ .tag = @enumFromInt(1621), .param_str = "ffLi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalblnf128 - .{ .tag = @enumFromInt(1622), .param_str = "LLdLLdLi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalblnl - .{ .tag = @enumFromInt(1623), .param_str = "LdLdLi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalbn - .{ .tag = @enumFromInt(1624), .param_str = "ddi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalbnf - .{ .tag = @enumFromInt(1625), .param_str = "ffi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalbnf128 - .{ .tag = @enumFromInt(1626), .param_str = "LLdLLdi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scalbnl - .{ .tag = @enumFromInt(1627), .param_str = "LdLdi", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_scanf - .{ .tag = @enumFromInt(1628), .param_str = "icC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .scanf } } }, - // __builtin_set_flt_rounds - .{ .tag = @enumFromInt(1629), .param_str = "vi", .properties = .{} }, - // __builtin_setflm - .{ .tag = @enumFromInt(1630), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_setjmp - .{ .tag = @enumFromInt(1631), .param_str = "iv**", .properties = .{ .attributes = .{ .returns_twice = true } } }, - // __builtin_setps - .{ .tag = @enumFromInt(1632), .param_str = "vUiUi", .properties = .{ .target_set = TargetSet.initOne(.xcore) } }, - // __builtin_setrnd - .{ .tag = @enumFromInt(1633), .param_str = "di", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_shufflevector - .{ .tag = @enumFromInt(1634), .param_str = "v.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true } } }, - // __builtin_signbit - .{ .tag = @enumFromInt(1635), .param_str = "i.", .properties = .{ .attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_signbitf - .{ .tag = @enumFromInt(1636), .param_str = "if", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_signbitl - .{ .tag = @enumFromInt(1637), .param_str = "iLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_sin - .{ .tag = @enumFromInt(1638), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinf - .{ .tag = @enumFromInt(1639), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinf128 - .{ .tag = @enumFromInt(1640), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinf16 - .{ .tag = @enumFromInt(1641), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinh - .{ .tag = @enumFromInt(1642), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinhf - .{ .tag = @enumFromInt(1643), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinhf128 - .{ .tag = @enumFromInt(1644), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinhl - .{ .tag = @enumFromInt(1645), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sinl - .{ .tag = @enumFromInt(1646), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_smul_overflow - .{ .tag = @enumFromInt(1647), .param_str = "bSiCSiCSi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_smull_overflow - .{ .tag = @enumFromInt(1648), .param_str = "bSLiCSLiCSLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_smulll_overflow - .{ .tag = @enumFromInt(1649), .param_str = "bSLLiCSLLiCSLLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_snprintf - .{ .tag = @enumFromInt(1650), .param_str = "ic*RzcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 2 } } }, - // __builtin_sponentry - .{ .tag = @enumFromInt(1651), .param_str = "v*", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __builtin_sprintf - .{ .tag = @enumFromInt(1652), .param_str = "ic*RcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 1 } } }, - // __builtin_sqrt - .{ .tag = @enumFromInt(1653), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sqrtf - .{ .tag = @enumFromInt(1654), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sqrtf128 - .{ .tag = @enumFromInt(1655), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sqrtf16 - .{ .tag = @enumFromInt(1656), .param_str = "hh", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sqrtl - .{ .tag = @enumFromInt(1657), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_sscanf - .{ .tag = @enumFromInt(1658), .param_str = "icC*RcC*R.", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .scanf, .format_string_position = 1 } } }, - // __builtin_ssub_overflow - .{ .tag = @enumFromInt(1659), .param_str = "bSiCSiCSi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_ssubl_overflow - .{ .tag = @enumFromInt(1660), .param_str = "bSLiCSLiCSLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_ssubll_overflow - .{ .tag = @enumFromInt(1661), .param_str = "bSLLiCSLLiCSLLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_stdarg_start - .{ .tag = @enumFromInt(1662), .param_str = "vA.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_stpcpy - .{ .tag = @enumFromInt(1663), .param_str = "c*c*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_stpncpy - .{ .tag = @enumFromInt(1664), .param_str = "c*c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strcasecmp - .{ .tag = @enumFromInt(1665), .param_str = "icC*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strcat - .{ .tag = @enumFromInt(1666), .param_str = "c*c*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strchr - .{ .tag = @enumFromInt(1667), .param_str = "c*cC*i", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_strcmp - .{ .tag = @enumFromInt(1668), .param_str = "icC*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_strcpy - .{ .tag = @enumFromInt(1669), .param_str = "c*c*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strcspn - .{ .tag = @enumFromInt(1670), .param_str = "zcC*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strdup - .{ .tag = @enumFromInt(1671), .param_str = "c*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strlen - .{ .tag = @enumFromInt(1672), .param_str = "zcC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_strncasecmp - .{ .tag = @enumFromInt(1673), .param_str = "icC*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strncat - .{ .tag = @enumFromInt(1674), .param_str = "c*c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strncmp - .{ .tag = @enumFromInt(1675), .param_str = "icC*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_strncpy - .{ .tag = @enumFromInt(1676), .param_str = "c*c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strndup - .{ .tag = @enumFromInt(1677), .param_str = "c*cC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strpbrk - .{ .tag = @enumFromInt(1678), .param_str = "c*cC*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strrchr - .{ .tag = @enumFromInt(1679), .param_str = "c*cC*i", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strspn - .{ .tag = @enumFromInt(1680), .param_str = "zcC*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_strstr - .{ .tag = @enumFromInt(1681), .param_str = "c*cC*cC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true } } }, - // __builtin_sub_overflow - .{ .tag = @enumFromInt(1682), .param_str = "b.", .properties = .{ .attributes = .{ .custom_typecheck = true, .const_evaluable = true } } }, - // __builtin_subc - .{ .tag = @enumFromInt(1683), .param_str = "UiUiCUiCUiCUi*", .properties = .{} }, - // __builtin_subcb - .{ .tag = @enumFromInt(1684), .param_str = "UcUcCUcCUcCUc*", .properties = .{} }, - // __builtin_subcl - .{ .tag = @enumFromInt(1685), .param_str = "ULiULiCULiCULiCULi*", .properties = .{} }, - // __builtin_subcll - .{ .tag = @enumFromInt(1686), .param_str = "ULLiULLiCULLiCULLiCULLi*", .properties = .{} }, - // __builtin_subcs - .{ .tag = @enumFromInt(1687), .param_str = "UsUsCUsCUsCUs*", .properties = .{} }, - // __builtin_tan - .{ .tag = @enumFromInt(1688), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanf - .{ .tag = @enumFromInt(1689), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanf128 - .{ .tag = @enumFromInt(1690), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanh - .{ .tag = @enumFromInt(1691), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanhf - .{ .tag = @enumFromInt(1692), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanhf128 - .{ .tag = @enumFromInt(1693), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanhl - .{ .tag = @enumFromInt(1694), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tanl - .{ .tag = @enumFromInt(1695), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tgamma - .{ .tag = @enumFromInt(1696), .param_str = "dd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tgammaf - .{ .tag = @enumFromInt(1697), .param_str = "ff", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tgammaf128 - .{ .tag = @enumFromInt(1698), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_tgammal - .{ .tag = @enumFromInt(1699), .param_str = "LdLd", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __builtin_thread_pointer - .{ .tag = @enumFromInt(1700), .param_str = "v*", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_trap - .{ .tag = @enumFromInt(1701), .param_str = "v", .properties = .{ .attributes = .{ .noreturn = true } } }, - // __builtin_trunc - .{ .tag = @enumFromInt(1702), .param_str = "dd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_truncf - .{ .tag = @enumFromInt(1703), .param_str = "ff", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_truncf128 - .{ .tag = @enumFromInt(1704), .param_str = "LLdLLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_truncf16 - .{ .tag = @enumFromInt(1705), .param_str = "hh", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_truncl - .{ .tag = @enumFromInt(1706), .param_str = "LdLd", .properties = .{ .attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true } } }, - // __builtin_uadd_overflow - .{ .tag = @enumFromInt(1707), .param_str = "bUiCUiCUi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_uaddl_overflow - .{ .tag = @enumFromInt(1708), .param_str = "bULiCULiCULi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_uaddll_overflow - .{ .tag = @enumFromInt(1709), .param_str = "bULLiCULLiCULLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_umul_overflow - .{ .tag = @enumFromInt(1710), .param_str = "bUiCUiCUi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_umull_overflow - .{ .tag = @enumFromInt(1711), .param_str = "bULiCULiCULi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_umulll_overflow - .{ .tag = @enumFromInt(1712), .param_str = "bULLiCULLiCULLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_unpack_longdouble - .{ .tag = @enumFromInt(1713), .param_str = "dLdIi", .properties = .{ .target_set = TargetSet.initOne(.ppc) } }, - // __builtin_unpredictable - .{ .tag = @enumFromInt(1714), .param_str = "LiLi", .properties = .{ .attributes = .{ .@"const" = true } } }, - // __builtin_unreachable - .{ .tag = @enumFromInt(1715), .param_str = "v", .properties = .{ .attributes = .{ .noreturn = true } } }, - // __builtin_unwind_init - .{ .tag = @enumFromInt(1716), .param_str = "v", .properties = .{} }, - // __builtin_usub_overflow - .{ .tag = @enumFromInt(1717), .param_str = "bUiCUiCUi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_usubl_overflow - .{ .tag = @enumFromInt(1718), .param_str = "bULiCULiCULi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_usubll_overflow - .{ .tag = @enumFromInt(1719), .param_str = "bULLiCULLiCULLi*", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __builtin_va_copy - .{ .tag = @enumFromInt(1720), .param_str = "vAA", .properties = .{} }, - // __builtin_va_end - .{ .tag = @enumFromInt(1721), .param_str = "vA", .properties = .{} }, - // __builtin_va_start - .{ .tag = @enumFromInt(1722), .param_str = "vA.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __builtin_ve_vl_andm_MMM - .{ .tag = @enumFromInt(1723), .param_str = "V512bV512bV512b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_andm_mmm - .{ .tag = @enumFromInt(1724), .param_str = "V256bV256bV256b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_eqvm_MMM - .{ .tag = @enumFromInt(1725), .param_str = "V512bV512bV512b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_eqvm_mmm - .{ .tag = @enumFromInt(1726), .param_str = "V256bV256bV256b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_extract_vm512l - .{ .tag = @enumFromInt(1727), .param_str = "V256bV512b", .properties = .{ .target_set = TargetSet.initOne(.ve) } }, - // __builtin_ve_vl_extract_vm512u - .{ .tag = @enumFromInt(1728), .param_str = "V256bV512b", .properties = .{ .target_set = TargetSet.initOne(.ve) } }, - // __builtin_ve_vl_fencec_s - .{ .tag = @enumFromInt(1729), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_fencei - .{ .tag = @enumFromInt(1730), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_fencem_s - .{ .tag = @enumFromInt(1731), .param_str = "vUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_fidcr_sss - .{ .tag = @enumFromInt(1732), .param_str = "LUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_insert_vm512l - .{ .tag = @enumFromInt(1733), .param_str = "V512bV512bV256b", .properties = .{ .target_set = TargetSet.initOne(.ve) } }, - // __builtin_ve_vl_insert_vm512u - .{ .tag = @enumFromInt(1734), .param_str = "V512bV512bV256b", .properties = .{ .target_set = TargetSet.initOne(.ve) } }, - // __builtin_ve_vl_lcr_sss - .{ .tag = @enumFromInt(1735), .param_str = "LUiLUiLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lsv_vvss - .{ .tag = @enumFromInt(1736), .param_str = "V256dV256dUiLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lvm_MMss - .{ .tag = @enumFromInt(1737), .param_str = "V512bV512bLUiLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lvm_mmss - .{ .tag = @enumFromInt(1738), .param_str = "V256bV256bLUiLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lvsd_svs - .{ .tag = @enumFromInt(1739), .param_str = "dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lvsl_svs - .{ .tag = @enumFromInt(1740), .param_str = "LUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lvss_svs - .{ .tag = @enumFromInt(1741), .param_str = "fV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_lzvm_sml - .{ .tag = @enumFromInt(1742), .param_str = "LUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_negm_MM - .{ .tag = @enumFromInt(1743), .param_str = "V512bV512b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_negm_mm - .{ .tag = @enumFromInt(1744), .param_str = "V256bV256b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_nndm_MMM - .{ .tag = @enumFromInt(1745), .param_str = "V512bV512bV512b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_nndm_mmm - .{ .tag = @enumFromInt(1746), .param_str = "V256bV256bV256b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_orm_MMM - .{ .tag = @enumFromInt(1747), .param_str = "V512bV512bV512b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_orm_mmm - .{ .tag = @enumFromInt(1748), .param_str = "V256bV256bV256b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pack_f32a - .{ .tag = @enumFromInt(1749), .param_str = "ULifC*", .properties = .{ .target_set = TargetSet.initOne(.ve) } }, - // __builtin_ve_vl_pack_f32p - .{ .tag = @enumFromInt(1750), .param_str = "ULifC*fC*", .properties = .{ .target_set = TargetSet.initOne(.ve) } }, - // __builtin_ve_vl_pcvm_sml - .{ .tag = @enumFromInt(1751), .param_str = "LUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pfchv_ssl - .{ .tag = @enumFromInt(1752), .param_str = "vLivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pfchvnc_ssl - .{ .tag = @enumFromInt(1753), .param_str = "vLivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvadds_vsvMvl - .{ .tag = @enumFromInt(1754), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvadds_vsvl - .{ .tag = @enumFromInt(1755), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvadds_vsvvl - .{ .tag = @enumFromInt(1756), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvadds_vvvMvl - .{ .tag = @enumFromInt(1757), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvadds_vvvl - .{ .tag = @enumFromInt(1758), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvadds_vvvvl - .{ .tag = @enumFromInt(1759), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvaddu_vsvMvl - .{ .tag = @enumFromInt(1760), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvaddu_vsvl - .{ .tag = @enumFromInt(1761), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvaddu_vsvvl - .{ .tag = @enumFromInt(1762), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvaddu_vvvMvl - .{ .tag = @enumFromInt(1763), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvaddu_vvvl - .{ .tag = @enumFromInt(1764), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvaddu_vvvvl - .{ .tag = @enumFromInt(1765), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvand_vsvMvl - .{ .tag = @enumFromInt(1766), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvand_vsvl - .{ .tag = @enumFromInt(1767), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvand_vsvvl - .{ .tag = @enumFromInt(1768), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvand_vvvMvl - .{ .tag = @enumFromInt(1769), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvand_vvvl - .{ .tag = @enumFromInt(1770), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvand_vvvvl - .{ .tag = @enumFromInt(1771), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrd_vsMvl - .{ .tag = @enumFromInt(1772), .param_str = "V256dLUiV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrd_vsl - .{ .tag = @enumFromInt(1773), .param_str = "V256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrd_vsvl - .{ .tag = @enumFromInt(1774), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrv_vvMvl - .{ .tag = @enumFromInt(1775), .param_str = "V256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrv_vvl - .{ .tag = @enumFromInt(1776), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrv_vvvl - .{ .tag = @enumFromInt(1777), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrvlo_vvl - .{ .tag = @enumFromInt(1778), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrvlo_vvmvl - .{ .tag = @enumFromInt(1779), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrvlo_vvvl - .{ .tag = @enumFromInt(1780), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrvup_vvl - .{ .tag = @enumFromInt(1781), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrvup_vvmvl - .{ .tag = @enumFromInt(1782), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvbrvup_vvvl - .{ .tag = @enumFromInt(1783), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmps_vsvMvl - .{ .tag = @enumFromInt(1784), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmps_vsvl - .{ .tag = @enumFromInt(1785), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmps_vsvvl - .{ .tag = @enumFromInt(1786), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmps_vvvMvl - .{ .tag = @enumFromInt(1787), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmps_vvvl - .{ .tag = @enumFromInt(1788), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmps_vvvvl - .{ .tag = @enumFromInt(1789), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmpu_vsvMvl - .{ .tag = @enumFromInt(1790), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmpu_vsvl - .{ .tag = @enumFromInt(1791), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmpu_vsvvl - .{ .tag = @enumFromInt(1792), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmpu_vvvMvl - .{ .tag = @enumFromInt(1793), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmpu_vvvl - .{ .tag = @enumFromInt(1794), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcmpu_vvvvl - .{ .tag = @enumFromInt(1795), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtsw_vvl - .{ .tag = @enumFromInt(1796), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtsw_vvvl - .{ .tag = @enumFromInt(1797), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtws_vvMvl - .{ .tag = @enumFromInt(1798), .param_str = "V256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtws_vvl - .{ .tag = @enumFromInt(1799), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtws_vvvl - .{ .tag = @enumFromInt(1800), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtwsrz_vvMvl - .{ .tag = @enumFromInt(1801), .param_str = "V256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtwsrz_vvl - .{ .tag = @enumFromInt(1802), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvcvtwsrz_vvvl - .{ .tag = @enumFromInt(1803), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pveqv_vsvMvl - .{ .tag = @enumFromInt(1804), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pveqv_vsvl - .{ .tag = @enumFromInt(1805), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pveqv_vsvvl - .{ .tag = @enumFromInt(1806), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pveqv_vvvMvl - .{ .tag = @enumFromInt(1807), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pveqv_vvvl - .{ .tag = @enumFromInt(1808), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pveqv_vvvvl - .{ .tag = @enumFromInt(1809), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfadd_vsvMvl - .{ .tag = @enumFromInt(1810), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfadd_vsvl - .{ .tag = @enumFromInt(1811), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfadd_vsvvl - .{ .tag = @enumFromInt(1812), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfadd_vvvMvl - .{ .tag = @enumFromInt(1813), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfadd_vvvl - .{ .tag = @enumFromInt(1814), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfadd_vvvvl - .{ .tag = @enumFromInt(1815), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfcmp_vsvMvl - .{ .tag = @enumFromInt(1816), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfcmp_vsvl - .{ .tag = @enumFromInt(1817), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfcmp_vsvvl - .{ .tag = @enumFromInt(1818), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfcmp_vvvMvl - .{ .tag = @enumFromInt(1819), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfcmp_vvvl - .{ .tag = @enumFromInt(1820), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfcmp_vvvvl - .{ .tag = @enumFromInt(1821), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vsvvMvl - .{ .tag = @enumFromInt(1822), .param_str = "V256dLUiV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vsvvl - .{ .tag = @enumFromInt(1823), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vsvvvl - .{ .tag = @enumFromInt(1824), .param_str = "V256dLUiV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vvsvMvl - .{ .tag = @enumFromInt(1825), .param_str = "V256dV256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vvsvl - .{ .tag = @enumFromInt(1826), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vvsvvl - .{ .tag = @enumFromInt(1827), .param_str = "V256dV256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vvvvMvl - .{ .tag = @enumFromInt(1828), .param_str = "V256dV256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vvvvl - .{ .tag = @enumFromInt(1829), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmad_vvvvvl - .{ .tag = @enumFromInt(1830), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmax_vsvMvl - .{ .tag = @enumFromInt(1831), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmax_vsvl - .{ .tag = @enumFromInt(1832), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmax_vsvvl - .{ .tag = @enumFromInt(1833), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmax_vvvMvl - .{ .tag = @enumFromInt(1834), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmax_vvvl - .{ .tag = @enumFromInt(1835), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmax_vvvvl - .{ .tag = @enumFromInt(1836), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmin_vsvMvl - .{ .tag = @enumFromInt(1837), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmin_vsvl - .{ .tag = @enumFromInt(1838), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmin_vsvvl - .{ .tag = @enumFromInt(1839), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmin_vvvMvl - .{ .tag = @enumFromInt(1840), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmin_vvvl - .{ .tag = @enumFromInt(1841), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmin_vvvvl - .{ .tag = @enumFromInt(1842), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkaf_Ml - .{ .tag = @enumFromInt(1843), .param_str = "V512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkat_Ml - .{ .tag = @enumFromInt(1844), .param_str = "V512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkseq_MvMl - .{ .tag = @enumFromInt(1845), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkseq_Mvl - .{ .tag = @enumFromInt(1846), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkseqnan_MvMl - .{ .tag = @enumFromInt(1847), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkseqnan_Mvl - .{ .tag = @enumFromInt(1848), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksge_MvMl - .{ .tag = @enumFromInt(1849), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksge_Mvl - .{ .tag = @enumFromInt(1850), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksgenan_MvMl - .{ .tag = @enumFromInt(1851), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksgenan_Mvl - .{ .tag = @enumFromInt(1852), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksgt_MvMl - .{ .tag = @enumFromInt(1853), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksgt_Mvl - .{ .tag = @enumFromInt(1854), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksgtnan_MvMl - .{ .tag = @enumFromInt(1855), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksgtnan_Mvl - .{ .tag = @enumFromInt(1856), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksle_MvMl - .{ .tag = @enumFromInt(1857), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksle_Mvl - .{ .tag = @enumFromInt(1858), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslenan_MvMl - .{ .tag = @enumFromInt(1859), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslenan_Mvl - .{ .tag = @enumFromInt(1860), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloeq_mvl - .{ .tag = @enumFromInt(1861), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloeq_mvml - .{ .tag = @enumFromInt(1862), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloeqnan_mvl - .{ .tag = @enumFromInt(1863), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloeqnan_mvml - .{ .tag = @enumFromInt(1864), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloge_mvl - .{ .tag = @enumFromInt(1865), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloge_mvml - .{ .tag = @enumFromInt(1866), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslogenan_mvl - .{ .tag = @enumFromInt(1867), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslogenan_mvml - .{ .tag = @enumFromInt(1868), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslogt_mvl - .{ .tag = @enumFromInt(1869), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslogt_mvml - .{ .tag = @enumFromInt(1870), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslogtnan_mvl - .{ .tag = @enumFromInt(1871), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslogtnan_mvml - .{ .tag = @enumFromInt(1872), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslole_mvl - .{ .tag = @enumFromInt(1873), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslole_mvml - .{ .tag = @enumFromInt(1874), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslolenan_mvl - .{ .tag = @enumFromInt(1875), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslolenan_mvml - .{ .tag = @enumFromInt(1876), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslolt_mvl - .{ .tag = @enumFromInt(1877), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslolt_mvml - .{ .tag = @enumFromInt(1878), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloltnan_mvl - .{ .tag = @enumFromInt(1879), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksloltnan_mvml - .{ .tag = @enumFromInt(1880), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslonan_mvl - .{ .tag = @enumFromInt(1881), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslonan_mvml - .{ .tag = @enumFromInt(1882), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslone_mvl - .{ .tag = @enumFromInt(1883), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslone_mvml - .{ .tag = @enumFromInt(1884), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslonenan_mvl - .{ .tag = @enumFromInt(1885), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslonenan_mvml - .{ .tag = @enumFromInt(1886), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslonum_mvl - .{ .tag = @enumFromInt(1887), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslonum_mvml - .{ .tag = @enumFromInt(1888), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslt_MvMl - .{ .tag = @enumFromInt(1889), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkslt_Mvl - .{ .tag = @enumFromInt(1890), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksltnan_MvMl - .{ .tag = @enumFromInt(1891), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksltnan_Mvl - .{ .tag = @enumFromInt(1892), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksnan_MvMl - .{ .tag = @enumFromInt(1893), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksnan_Mvl - .{ .tag = @enumFromInt(1894), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksne_MvMl - .{ .tag = @enumFromInt(1895), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksne_Mvl - .{ .tag = @enumFromInt(1896), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksnenan_MvMl - .{ .tag = @enumFromInt(1897), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksnenan_Mvl - .{ .tag = @enumFromInt(1898), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksnum_MvMl - .{ .tag = @enumFromInt(1899), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksnum_Mvl - .{ .tag = @enumFromInt(1900), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupeq_mvl - .{ .tag = @enumFromInt(1901), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupeq_mvml - .{ .tag = @enumFromInt(1902), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupeqnan_mvl - .{ .tag = @enumFromInt(1903), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupeqnan_mvml - .{ .tag = @enumFromInt(1904), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupge_mvl - .{ .tag = @enumFromInt(1905), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupge_mvml - .{ .tag = @enumFromInt(1906), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupgenan_mvl - .{ .tag = @enumFromInt(1907), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupgenan_mvml - .{ .tag = @enumFromInt(1908), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupgt_mvl - .{ .tag = @enumFromInt(1909), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupgt_mvml - .{ .tag = @enumFromInt(1910), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupgtnan_mvl - .{ .tag = @enumFromInt(1911), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupgtnan_mvml - .{ .tag = @enumFromInt(1912), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksuple_mvl - .{ .tag = @enumFromInt(1913), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksuple_mvml - .{ .tag = @enumFromInt(1914), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksuplenan_mvl - .{ .tag = @enumFromInt(1915), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksuplenan_mvml - .{ .tag = @enumFromInt(1916), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksuplt_mvl - .{ .tag = @enumFromInt(1917), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksuplt_mvml - .{ .tag = @enumFromInt(1918), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupltnan_mvl - .{ .tag = @enumFromInt(1919), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupltnan_mvml - .{ .tag = @enumFromInt(1920), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupnan_mvl - .{ .tag = @enumFromInt(1921), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupnan_mvml - .{ .tag = @enumFromInt(1922), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupne_mvl - .{ .tag = @enumFromInt(1923), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupne_mvml - .{ .tag = @enumFromInt(1924), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupnenan_mvl - .{ .tag = @enumFromInt(1925), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupnenan_mvml - .{ .tag = @enumFromInt(1926), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupnum_mvl - .{ .tag = @enumFromInt(1927), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmksupnum_mvml - .{ .tag = @enumFromInt(1928), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkweq_MvMl - .{ .tag = @enumFromInt(1929), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkweq_Mvl - .{ .tag = @enumFromInt(1930), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkweqnan_MvMl - .{ .tag = @enumFromInt(1931), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkweqnan_Mvl - .{ .tag = @enumFromInt(1932), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwge_MvMl - .{ .tag = @enumFromInt(1933), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwge_Mvl - .{ .tag = @enumFromInt(1934), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwgenan_MvMl - .{ .tag = @enumFromInt(1935), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwgenan_Mvl - .{ .tag = @enumFromInt(1936), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwgt_MvMl - .{ .tag = @enumFromInt(1937), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwgt_Mvl - .{ .tag = @enumFromInt(1938), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwgtnan_MvMl - .{ .tag = @enumFromInt(1939), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwgtnan_Mvl - .{ .tag = @enumFromInt(1940), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwle_MvMl - .{ .tag = @enumFromInt(1941), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwle_Mvl - .{ .tag = @enumFromInt(1942), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlenan_MvMl - .{ .tag = @enumFromInt(1943), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlenan_Mvl - .{ .tag = @enumFromInt(1944), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloeq_mvl - .{ .tag = @enumFromInt(1945), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloeq_mvml - .{ .tag = @enumFromInt(1946), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloeqnan_mvl - .{ .tag = @enumFromInt(1947), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloeqnan_mvml - .{ .tag = @enumFromInt(1948), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloge_mvl - .{ .tag = @enumFromInt(1949), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloge_mvml - .{ .tag = @enumFromInt(1950), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlogenan_mvl - .{ .tag = @enumFromInt(1951), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlogenan_mvml - .{ .tag = @enumFromInt(1952), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlogt_mvl - .{ .tag = @enumFromInt(1953), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlogt_mvml - .{ .tag = @enumFromInt(1954), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlogtnan_mvl - .{ .tag = @enumFromInt(1955), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlogtnan_mvml - .{ .tag = @enumFromInt(1956), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlole_mvl - .{ .tag = @enumFromInt(1957), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlole_mvml - .{ .tag = @enumFromInt(1958), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlolenan_mvl - .{ .tag = @enumFromInt(1959), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlolenan_mvml - .{ .tag = @enumFromInt(1960), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlolt_mvl - .{ .tag = @enumFromInt(1961), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlolt_mvml - .{ .tag = @enumFromInt(1962), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloltnan_mvl - .{ .tag = @enumFromInt(1963), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwloltnan_mvml - .{ .tag = @enumFromInt(1964), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlonan_mvl - .{ .tag = @enumFromInt(1965), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlonan_mvml - .{ .tag = @enumFromInt(1966), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlone_mvl - .{ .tag = @enumFromInt(1967), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlone_mvml - .{ .tag = @enumFromInt(1968), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlonenan_mvl - .{ .tag = @enumFromInt(1969), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlonenan_mvml - .{ .tag = @enumFromInt(1970), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlonum_mvl - .{ .tag = @enumFromInt(1971), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlonum_mvml - .{ .tag = @enumFromInt(1972), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlt_MvMl - .{ .tag = @enumFromInt(1973), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwlt_Mvl - .{ .tag = @enumFromInt(1974), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwltnan_MvMl - .{ .tag = @enumFromInt(1975), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwltnan_Mvl - .{ .tag = @enumFromInt(1976), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwnan_MvMl - .{ .tag = @enumFromInt(1977), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwnan_Mvl - .{ .tag = @enumFromInt(1978), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwne_MvMl - .{ .tag = @enumFromInt(1979), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwne_Mvl - .{ .tag = @enumFromInt(1980), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwnenan_MvMl - .{ .tag = @enumFromInt(1981), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwnenan_Mvl - .{ .tag = @enumFromInt(1982), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwnum_MvMl - .{ .tag = @enumFromInt(1983), .param_str = "V512bV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwnum_Mvl - .{ .tag = @enumFromInt(1984), .param_str = "V512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupeq_mvl - .{ .tag = @enumFromInt(1985), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupeq_mvml - .{ .tag = @enumFromInt(1986), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupeqnan_mvl - .{ .tag = @enumFromInt(1987), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupeqnan_mvml - .{ .tag = @enumFromInt(1988), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupge_mvl - .{ .tag = @enumFromInt(1989), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupge_mvml - .{ .tag = @enumFromInt(1990), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupgenan_mvl - .{ .tag = @enumFromInt(1991), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupgenan_mvml - .{ .tag = @enumFromInt(1992), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupgt_mvl - .{ .tag = @enumFromInt(1993), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupgt_mvml - .{ .tag = @enumFromInt(1994), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupgtnan_mvl - .{ .tag = @enumFromInt(1995), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupgtnan_mvml - .{ .tag = @enumFromInt(1996), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwuple_mvl - .{ .tag = @enumFromInt(1997), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwuple_mvml - .{ .tag = @enumFromInt(1998), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwuplenan_mvl - .{ .tag = @enumFromInt(1999), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwuplenan_mvml - .{ .tag = @enumFromInt(2000), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwuplt_mvl - .{ .tag = @enumFromInt(2001), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwuplt_mvml - .{ .tag = @enumFromInt(2002), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupltnan_mvl - .{ .tag = @enumFromInt(2003), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupltnan_mvml - .{ .tag = @enumFromInt(2004), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupnan_mvl - .{ .tag = @enumFromInt(2005), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupnan_mvml - .{ .tag = @enumFromInt(2006), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupne_mvl - .{ .tag = @enumFromInt(2007), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupne_mvml - .{ .tag = @enumFromInt(2008), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupnenan_mvl - .{ .tag = @enumFromInt(2009), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupnenan_mvml - .{ .tag = @enumFromInt(2010), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupnum_mvl - .{ .tag = @enumFromInt(2011), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmkwupnum_mvml - .{ .tag = @enumFromInt(2012), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vsvvMvl - .{ .tag = @enumFromInt(2013), .param_str = "V256dLUiV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vsvvl - .{ .tag = @enumFromInt(2014), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vsvvvl - .{ .tag = @enumFromInt(2015), .param_str = "V256dLUiV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vvsvMvl - .{ .tag = @enumFromInt(2016), .param_str = "V256dV256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vvsvl - .{ .tag = @enumFromInt(2017), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vvsvvl - .{ .tag = @enumFromInt(2018), .param_str = "V256dV256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vvvvMvl - .{ .tag = @enumFromInt(2019), .param_str = "V256dV256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vvvvl - .{ .tag = @enumFromInt(2020), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmsb_vvvvvl - .{ .tag = @enumFromInt(2021), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmul_vsvMvl - .{ .tag = @enumFromInt(2022), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmul_vsvl - .{ .tag = @enumFromInt(2023), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmul_vsvvl - .{ .tag = @enumFromInt(2024), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmul_vvvMvl - .{ .tag = @enumFromInt(2025), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmul_vvvl - .{ .tag = @enumFromInt(2026), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfmul_vvvvl - .{ .tag = @enumFromInt(2027), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vsvvMvl - .{ .tag = @enumFromInt(2028), .param_str = "V256dLUiV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vsvvl - .{ .tag = @enumFromInt(2029), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vsvvvl - .{ .tag = @enumFromInt(2030), .param_str = "V256dLUiV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vvsvMvl - .{ .tag = @enumFromInt(2031), .param_str = "V256dV256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vvsvl - .{ .tag = @enumFromInt(2032), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vvsvvl - .{ .tag = @enumFromInt(2033), .param_str = "V256dV256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vvvvMvl - .{ .tag = @enumFromInt(2034), .param_str = "V256dV256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vvvvl - .{ .tag = @enumFromInt(2035), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmad_vvvvvl - .{ .tag = @enumFromInt(2036), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vsvvMvl - .{ .tag = @enumFromInt(2037), .param_str = "V256dLUiV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vsvvl - .{ .tag = @enumFromInt(2038), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vsvvvl - .{ .tag = @enumFromInt(2039), .param_str = "V256dLUiV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vvsvMvl - .{ .tag = @enumFromInt(2040), .param_str = "V256dV256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vvsvl - .{ .tag = @enumFromInt(2041), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vvsvvl - .{ .tag = @enumFromInt(2042), .param_str = "V256dV256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vvvvMvl - .{ .tag = @enumFromInt(2043), .param_str = "V256dV256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vvvvl - .{ .tag = @enumFromInt(2044), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfnmsb_vvvvvl - .{ .tag = @enumFromInt(2045), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfsub_vsvMvl - .{ .tag = @enumFromInt(2046), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfsub_vsvl - .{ .tag = @enumFromInt(2047), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfsub_vsvvl - .{ .tag = @enumFromInt(2048), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfsub_vvvMvl - .{ .tag = @enumFromInt(2049), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfsub_vvvl - .{ .tag = @enumFromInt(2050), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvfsub_vvvvl - .{ .tag = @enumFromInt(2051), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldz_vvMvl - .{ .tag = @enumFromInt(2052), .param_str = "V256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldz_vvl - .{ .tag = @enumFromInt(2053), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldz_vvvl - .{ .tag = @enumFromInt(2054), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldzlo_vvl - .{ .tag = @enumFromInt(2055), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldzlo_vvmvl - .{ .tag = @enumFromInt(2056), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldzlo_vvvl - .{ .tag = @enumFromInt(2057), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldzup_vvl - .{ .tag = @enumFromInt(2058), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldzup_vvmvl - .{ .tag = @enumFromInt(2059), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvldzup_vvvl - .{ .tag = @enumFromInt(2060), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmaxs_vsvMvl - .{ .tag = @enumFromInt(2061), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmaxs_vsvl - .{ .tag = @enumFromInt(2062), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmaxs_vsvvl - .{ .tag = @enumFromInt(2063), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmaxs_vvvMvl - .{ .tag = @enumFromInt(2064), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmaxs_vvvl - .{ .tag = @enumFromInt(2065), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmaxs_vvvvl - .{ .tag = @enumFromInt(2066), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmins_vsvMvl - .{ .tag = @enumFromInt(2067), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmins_vsvl - .{ .tag = @enumFromInt(2068), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmins_vsvvl - .{ .tag = @enumFromInt(2069), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmins_vvvMvl - .{ .tag = @enumFromInt(2070), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmins_vvvl - .{ .tag = @enumFromInt(2071), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvmins_vvvvl - .{ .tag = @enumFromInt(2072), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvor_vsvMvl - .{ .tag = @enumFromInt(2073), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvor_vsvl - .{ .tag = @enumFromInt(2074), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvor_vsvvl - .{ .tag = @enumFromInt(2075), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvor_vvvMvl - .{ .tag = @enumFromInt(2076), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvor_vvvl - .{ .tag = @enumFromInt(2077), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvor_vvvvl - .{ .tag = @enumFromInt(2078), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcnt_vvMvl - .{ .tag = @enumFromInt(2079), .param_str = "V256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcnt_vvl - .{ .tag = @enumFromInt(2080), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcnt_vvvl - .{ .tag = @enumFromInt(2081), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcntlo_vvl - .{ .tag = @enumFromInt(2082), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcntlo_vvmvl - .{ .tag = @enumFromInt(2083), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcntlo_vvvl - .{ .tag = @enumFromInt(2084), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcntup_vvl - .{ .tag = @enumFromInt(2085), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcntup_vvmvl - .{ .tag = @enumFromInt(2086), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvpcntup_vvvl - .{ .tag = @enumFromInt(2087), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvrcp_vvl - .{ .tag = @enumFromInt(2088), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvrcp_vvvl - .{ .tag = @enumFromInt(2089), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvrsqrt_vvl - .{ .tag = @enumFromInt(2090), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvrsqrt_vvvl - .{ .tag = @enumFromInt(2091), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvrsqrtnex_vvl - .{ .tag = @enumFromInt(2092), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvrsqrtnex_vvvl - .{ .tag = @enumFromInt(2093), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvseq_vl - .{ .tag = @enumFromInt(2094), .param_str = "V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvseq_vvl - .{ .tag = @enumFromInt(2095), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvseqlo_vl - .{ .tag = @enumFromInt(2096), .param_str = "V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvseqlo_vvl - .{ .tag = @enumFromInt(2097), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsequp_vl - .{ .tag = @enumFromInt(2098), .param_str = "V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsequp_vvl - .{ .tag = @enumFromInt(2099), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsla_vvsMvl - .{ .tag = @enumFromInt(2100), .param_str = "V256dV256dLUiV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsla_vvsl - .{ .tag = @enumFromInt(2101), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsla_vvsvl - .{ .tag = @enumFromInt(2102), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsla_vvvMvl - .{ .tag = @enumFromInt(2103), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsla_vvvl - .{ .tag = @enumFromInt(2104), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsla_vvvvl - .{ .tag = @enumFromInt(2105), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsll_vvsMvl - .{ .tag = @enumFromInt(2106), .param_str = "V256dV256dLUiV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsll_vvsl - .{ .tag = @enumFromInt(2107), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsll_vvsvl - .{ .tag = @enumFromInt(2108), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsll_vvvMvl - .{ .tag = @enumFromInt(2109), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsll_vvvl - .{ .tag = @enumFromInt(2110), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsll_vvvvl - .{ .tag = @enumFromInt(2111), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsra_vvsMvl - .{ .tag = @enumFromInt(2112), .param_str = "V256dV256dLUiV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsra_vvsl - .{ .tag = @enumFromInt(2113), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsra_vvsvl - .{ .tag = @enumFromInt(2114), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsra_vvvMvl - .{ .tag = @enumFromInt(2115), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsra_vvvl - .{ .tag = @enumFromInt(2116), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsra_vvvvl - .{ .tag = @enumFromInt(2117), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsrl_vvsMvl - .{ .tag = @enumFromInt(2118), .param_str = "V256dV256dLUiV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsrl_vvsl - .{ .tag = @enumFromInt(2119), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsrl_vvsvl - .{ .tag = @enumFromInt(2120), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsrl_vvvMvl - .{ .tag = @enumFromInt(2121), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsrl_vvvl - .{ .tag = @enumFromInt(2122), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsrl_vvvvl - .{ .tag = @enumFromInt(2123), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubs_vsvMvl - .{ .tag = @enumFromInt(2124), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubs_vsvl - .{ .tag = @enumFromInt(2125), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubs_vsvvl - .{ .tag = @enumFromInt(2126), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubs_vvvMvl - .{ .tag = @enumFromInt(2127), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubs_vvvl - .{ .tag = @enumFromInt(2128), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubs_vvvvl - .{ .tag = @enumFromInt(2129), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubu_vsvMvl - .{ .tag = @enumFromInt(2130), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubu_vsvl - .{ .tag = @enumFromInt(2131), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubu_vsvvl - .{ .tag = @enumFromInt(2132), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubu_vvvMvl - .{ .tag = @enumFromInt(2133), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubu_vvvl - .{ .tag = @enumFromInt(2134), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvsubu_vvvvl - .{ .tag = @enumFromInt(2135), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvxor_vsvMvl - .{ .tag = @enumFromInt(2136), .param_str = "V256dLUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvxor_vsvl - .{ .tag = @enumFromInt(2137), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvxor_vsvvl - .{ .tag = @enumFromInt(2138), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvxor_vvvMvl - .{ .tag = @enumFromInt(2139), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvxor_vvvl - .{ .tag = @enumFromInt(2140), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_pvxor_vvvvl - .{ .tag = @enumFromInt(2141), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_scr_sss - .{ .tag = @enumFromInt(2142), .param_str = "vLUiLUiLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_svm_sMs - .{ .tag = @enumFromInt(2143), .param_str = "LUiV512bLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_svm_sms - .{ .tag = @enumFromInt(2144), .param_str = "LUiV256bLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_svob - .{ .tag = @enumFromInt(2145), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_tovm_sml - .{ .tag = @enumFromInt(2146), .param_str = "LUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_tscr_ssss - .{ .tag = @enumFromInt(2147), .param_str = "LUiLUiLUiLUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddsl_vsvl - .{ .tag = @enumFromInt(2148), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddsl_vsvmvl - .{ .tag = @enumFromInt(2149), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddsl_vsvvl - .{ .tag = @enumFromInt(2150), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddsl_vvvl - .{ .tag = @enumFromInt(2151), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddsl_vvvmvl - .{ .tag = @enumFromInt(2152), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddsl_vvvvl - .{ .tag = @enumFromInt(2153), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswsx_vsvl - .{ .tag = @enumFromInt(2154), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswsx_vsvmvl - .{ .tag = @enumFromInt(2155), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswsx_vsvvl - .{ .tag = @enumFromInt(2156), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswsx_vvvl - .{ .tag = @enumFromInt(2157), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswsx_vvvmvl - .{ .tag = @enumFromInt(2158), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswsx_vvvvl - .{ .tag = @enumFromInt(2159), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswzx_vsvl - .{ .tag = @enumFromInt(2160), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswzx_vsvmvl - .{ .tag = @enumFromInt(2161), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswzx_vsvvl - .{ .tag = @enumFromInt(2162), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswzx_vvvl - .{ .tag = @enumFromInt(2163), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswzx_vvvmvl - .{ .tag = @enumFromInt(2164), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddswzx_vvvvl - .{ .tag = @enumFromInt(2165), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddul_vsvl - .{ .tag = @enumFromInt(2166), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddul_vsvmvl - .{ .tag = @enumFromInt(2167), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddul_vsvvl - .{ .tag = @enumFromInt(2168), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddul_vvvl - .{ .tag = @enumFromInt(2169), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddul_vvvmvl - .{ .tag = @enumFromInt(2170), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vaddul_vvvvl - .{ .tag = @enumFromInt(2171), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vadduw_vsvl - .{ .tag = @enumFromInt(2172), .param_str = "V256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vadduw_vsvmvl - .{ .tag = @enumFromInt(2173), .param_str = "V256dUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vadduw_vsvvl - .{ .tag = @enumFromInt(2174), .param_str = "V256dUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vadduw_vvvl - .{ .tag = @enumFromInt(2175), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vadduw_vvvmvl - .{ .tag = @enumFromInt(2176), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vadduw_vvvvl - .{ .tag = @enumFromInt(2177), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vand_vsvl - .{ .tag = @enumFromInt(2178), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vand_vsvmvl - .{ .tag = @enumFromInt(2179), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vand_vsvvl - .{ .tag = @enumFromInt(2180), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vand_vvvl - .{ .tag = @enumFromInt(2181), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vand_vvvmvl - .{ .tag = @enumFromInt(2182), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vand_vvvvl - .{ .tag = @enumFromInt(2183), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdd_vsl - .{ .tag = @enumFromInt(2184), .param_str = "V256ddUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdd_vsmvl - .{ .tag = @enumFromInt(2185), .param_str = "V256ddV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdd_vsvl - .{ .tag = @enumFromInt(2186), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdl_vsl - .{ .tag = @enumFromInt(2187), .param_str = "V256dLiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdl_vsmvl - .{ .tag = @enumFromInt(2188), .param_str = "V256dLiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdl_vsvl - .{ .tag = @enumFromInt(2189), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrds_vsl - .{ .tag = @enumFromInt(2190), .param_str = "V256dfUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrds_vsmvl - .{ .tag = @enumFromInt(2191), .param_str = "V256dfV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrds_vsvl - .{ .tag = @enumFromInt(2192), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdw_vsl - .{ .tag = @enumFromInt(2193), .param_str = "V256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdw_vsmvl - .{ .tag = @enumFromInt(2194), .param_str = "V256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrdw_vsvl - .{ .tag = @enumFromInt(2195), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrv_vvl - .{ .tag = @enumFromInt(2196), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrv_vvmvl - .{ .tag = @enumFromInt(2197), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vbrv_vvvl - .{ .tag = @enumFromInt(2198), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpsl_vsvl - .{ .tag = @enumFromInt(2199), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpsl_vsvmvl - .{ .tag = @enumFromInt(2200), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpsl_vsvvl - .{ .tag = @enumFromInt(2201), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpsl_vvvl - .{ .tag = @enumFromInt(2202), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpsl_vvvmvl - .{ .tag = @enumFromInt(2203), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpsl_vvvvl - .{ .tag = @enumFromInt(2204), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswsx_vsvl - .{ .tag = @enumFromInt(2205), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswsx_vsvmvl - .{ .tag = @enumFromInt(2206), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswsx_vsvvl - .{ .tag = @enumFromInt(2207), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswsx_vvvl - .{ .tag = @enumFromInt(2208), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswsx_vvvmvl - .{ .tag = @enumFromInt(2209), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswsx_vvvvl - .{ .tag = @enumFromInt(2210), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswzx_vsvl - .{ .tag = @enumFromInt(2211), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswzx_vsvmvl - .{ .tag = @enumFromInt(2212), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswzx_vsvvl - .{ .tag = @enumFromInt(2213), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswzx_vvvl - .{ .tag = @enumFromInt(2214), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswzx_vvvmvl - .{ .tag = @enumFromInt(2215), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpswzx_vvvvl - .{ .tag = @enumFromInt(2216), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpul_vsvl - .{ .tag = @enumFromInt(2217), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpul_vsvmvl - .{ .tag = @enumFromInt(2218), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpul_vsvvl - .{ .tag = @enumFromInt(2219), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpul_vvvl - .{ .tag = @enumFromInt(2220), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpul_vvvmvl - .{ .tag = @enumFromInt(2221), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpul_vvvvl - .{ .tag = @enumFromInt(2222), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpuw_vsvl - .{ .tag = @enumFromInt(2223), .param_str = "V256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpuw_vsvmvl - .{ .tag = @enumFromInt(2224), .param_str = "V256dUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpuw_vsvvl - .{ .tag = @enumFromInt(2225), .param_str = "V256dUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpuw_vvvl - .{ .tag = @enumFromInt(2226), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpuw_vvvmvl - .{ .tag = @enumFromInt(2227), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcmpuw_vvvvl - .{ .tag = @enumFromInt(2228), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcp_vvmvl - .{ .tag = @enumFromInt(2229), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtdl_vvl - .{ .tag = @enumFromInt(2230), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtdl_vvvl - .{ .tag = @enumFromInt(2231), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtds_vvl - .{ .tag = @enumFromInt(2232), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtds_vvvl - .{ .tag = @enumFromInt(2233), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtdw_vvl - .{ .tag = @enumFromInt(2234), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtdw_vvvl - .{ .tag = @enumFromInt(2235), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtld_vvl - .{ .tag = @enumFromInt(2236), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtld_vvmvl - .{ .tag = @enumFromInt(2237), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtld_vvvl - .{ .tag = @enumFromInt(2238), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtldrz_vvl - .{ .tag = @enumFromInt(2239), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtldrz_vvmvl - .{ .tag = @enumFromInt(2240), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtldrz_vvvl - .{ .tag = @enumFromInt(2241), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtsd_vvl - .{ .tag = @enumFromInt(2242), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtsd_vvvl - .{ .tag = @enumFromInt(2243), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtsw_vvl - .{ .tag = @enumFromInt(2244), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtsw_vvvl - .{ .tag = @enumFromInt(2245), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdsx_vvl - .{ .tag = @enumFromInt(2246), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdsx_vvmvl - .{ .tag = @enumFromInt(2247), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdsx_vvvl - .{ .tag = @enumFromInt(2248), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdsxrz_vvl - .{ .tag = @enumFromInt(2249), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdsxrz_vvmvl - .{ .tag = @enumFromInt(2250), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdsxrz_vvvl - .{ .tag = @enumFromInt(2251), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdzx_vvl - .{ .tag = @enumFromInt(2252), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdzx_vvmvl - .{ .tag = @enumFromInt(2253), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdzx_vvvl - .{ .tag = @enumFromInt(2254), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdzxrz_vvl - .{ .tag = @enumFromInt(2255), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdzxrz_vvmvl - .{ .tag = @enumFromInt(2256), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwdzxrz_vvvl - .{ .tag = @enumFromInt(2257), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwssx_vvl - .{ .tag = @enumFromInt(2258), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwssx_vvmvl - .{ .tag = @enumFromInt(2259), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwssx_vvvl - .{ .tag = @enumFromInt(2260), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwssxrz_vvl - .{ .tag = @enumFromInt(2261), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwssxrz_vvmvl - .{ .tag = @enumFromInt(2262), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwssxrz_vvvl - .{ .tag = @enumFromInt(2263), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwszx_vvl - .{ .tag = @enumFromInt(2264), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwszx_vvmvl - .{ .tag = @enumFromInt(2265), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwszx_vvvl - .{ .tag = @enumFromInt(2266), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwszxrz_vvl - .{ .tag = @enumFromInt(2267), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwszxrz_vvmvl - .{ .tag = @enumFromInt(2268), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vcvtwszxrz_vvvl - .{ .tag = @enumFromInt(2269), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vsvl - .{ .tag = @enumFromInt(2270), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vsvmvl - .{ .tag = @enumFromInt(2271), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vsvvl - .{ .tag = @enumFromInt(2272), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vvsl - .{ .tag = @enumFromInt(2273), .param_str = "V256dV256dLiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vvsmvl - .{ .tag = @enumFromInt(2274), .param_str = "V256dV256dLiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vvsvl - .{ .tag = @enumFromInt(2275), .param_str = "V256dV256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vvvl - .{ .tag = @enumFromInt(2276), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vvvmvl - .{ .tag = @enumFromInt(2277), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivsl_vvvvl - .{ .tag = @enumFromInt(2278), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vsvl - .{ .tag = @enumFromInt(2279), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vsvmvl - .{ .tag = @enumFromInt(2280), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vsvvl - .{ .tag = @enumFromInt(2281), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vvsl - .{ .tag = @enumFromInt(2282), .param_str = "V256dV256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vvsmvl - .{ .tag = @enumFromInt(2283), .param_str = "V256dV256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vvsvl - .{ .tag = @enumFromInt(2284), .param_str = "V256dV256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vvvl - .{ .tag = @enumFromInt(2285), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vvvmvl - .{ .tag = @enumFromInt(2286), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswsx_vvvvl - .{ .tag = @enumFromInt(2287), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vsvl - .{ .tag = @enumFromInt(2288), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vsvmvl - .{ .tag = @enumFromInt(2289), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vsvvl - .{ .tag = @enumFromInt(2290), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vvsl - .{ .tag = @enumFromInt(2291), .param_str = "V256dV256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vvsmvl - .{ .tag = @enumFromInt(2292), .param_str = "V256dV256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vvsvl - .{ .tag = @enumFromInt(2293), .param_str = "V256dV256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vvvl - .{ .tag = @enumFromInt(2294), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vvvmvl - .{ .tag = @enumFromInt(2295), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivswzx_vvvvl - .{ .tag = @enumFromInt(2296), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vsvl - .{ .tag = @enumFromInt(2297), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vsvmvl - .{ .tag = @enumFromInt(2298), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vsvvl - .{ .tag = @enumFromInt(2299), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vvsl - .{ .tag = @enumFromInt(2300), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vvsmvl - .{ .tag = @enumFromInt(2301), .param_str = "V256dV256dLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vvsvl - .{ .tag = @enumFromInt(2302), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vvvl - .{ .tag = @enumFromInt(2303), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vvvmvl - .{ .tag = @enumFromInt(2304), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivul_vvvvl - .{ .tag = @enumFromInt(2305), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vsvl - .{ .tag = @enumFromInt(2306), .param_str = "V256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vsvmvl - .{ .tag = @enumFromInt(2307), .param_str = "V256dUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vsvvl - .{ .tag = @enumFromInt(2308), .param_str = "V256dUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vvsl - .{ .tag = @enumFromInt(2309), .param_str = "V256dV256dUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vvsmvl - .{ .tag = @enumFromInt(2310), .param_str = "V256dV256dUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vvsvl - .{ .tag = @enumFromInt(2311), .param_str = "V256dV256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vvvl - .{ .tag = @enumFromInt(2312), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vvvmvl - .{ .tag = @enumFromInt(2313), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vdivuw_vvvvl - .{ .tag = @enumFromInt(2314), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_veqv_vsvl - .{ .tag = @enumFromInt(2315), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_veqv_vsvmvl - .{ .tag = @enumFromInt(2316), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_veqv_vsvvl - .{ .tag = @enumFromInt(2317), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_veqv_vvvl - .{ .tag = @enumFromInt(2318), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_veqv_vvvmvl - .{ .tag = @enumFromInt(2319), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_veqv_vvvvl - .{ .tag = @enumFromInt(2320), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vex_vvmvl - .{ .tag = @enumFromInt(2321), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfaddd_vsvl - .{ .tag = @enumFromInt(2322), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfaddd_vsvmvl - .{ .tag = @enumFromInt(2323), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfaddd_vsvvl - .{ .tag = @enumFromInt(2324), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfaddd_vvvl - .{ .tag = @enumFromInt(2325), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfaddd_vvvmvl - .{ .tag = @enumFromInt(2326), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfaddd_vvvvl - .{ .tag = @enumFromInt(2327), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfadds_vsvl - .{ .tag = @enumFromInt(2328), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfadds_vsvmvl - .{ .tag = @enumFromInt(2329), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfadds_vsvvl - .{ .tag = @enumFromInt(2330), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfadds_vvvl - .{ .tag = @enumFromInt(2331), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfadds_vvvmvl - .{ .tag = @enumFromInt(2332), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfadds_vvvvl - .{ .tag = @enumFromInt(2333), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmpd_vsvl - .{ .tag = @enumFromInt(2334), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmpd_vsvmvl - .{ .tag = @enumFromInt(2335), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmpd_vsvvl - .{ .tag = @enumFromInt(2336), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmpd_vvvl - .{ .tag = @enumFromInt(2337), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmpd_vvvmvl - .{ .tag = @enumFromInt(2338), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmpd_vvvvl - .{ .tag = @enumFromInt(2339), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmps_vsvl - .{ .tag = @enumFromInt(2340), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmps_vsvmvl - .{ .tag = @enumFromInt(2341), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmps_vsvvl - .{ .tag = @enumFromInt(2342), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmps_vvvl - .{ .tag = @enumFromInt(2343), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmps_vvvmvl - .{ .tag = @enumFromInt(2344), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfcmps_vvvvl - .{ .tag = @enumFromInt(2345), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivd_vsvl - .{ .tag = @enumFromInt(2346), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivd_vsvmvl - .{ .tag = @enumFromInt(2347), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivd_vsvvl - .{ .tag = @enumFromInt(2348), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivd_vvvl - .{ .tag = @enumFromInt(2349), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivd_vvvmvl - .{ .tag = @enumFromInt(2350), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivd_vvvvl - .{ .tag = @enumFromInt(2351), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivs_vsvl - .{ .tag = @enumFromInt(2352), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivs_vsvmvl - .{ .tag = @enumFromInt(2353), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivs_vsvvl - .{ .tag = @enumFromInt(2354), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivs_vvvl - .{ .tag = @enumFromInt(2355), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivs_vvvmvl - .{ .tag = @enumFromInt(2356), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfdivs_vvvvl - .{ .tag = @enumFromInt(2357), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vsvvl - .{ .tag = @enumFromInt(2358), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vsvvmvl - .{ .tag = @enumFromInt(2359), .param_str = "V256ddV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vsvvvl - .{ .tag = @enumFromInt(2360), .param_str = "V256ddV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vvsvl - .{ .tag = @enumFromInt(2361), .param_str = "V256dV256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vvsvmvl - .{ .tag = @enumFromInt(2362), .param_str = "V256dV256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vvsvvl - .{ .tag = @enumFromInt(2363), .param_str = "V256dV256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vvvvl - .{ .tag = @enumFromInt(2364), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vvvvmvl - .{ .tag = @enumFromInt(2365), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmadd_vvvvvl - .{ .tag = @enumFromInt(2366), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vsvvl - .{ .tag = @enumFromInt(2367), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vsvvmvl - .{ .tag = @enumFromInt(2368), .param_str = "V256dfV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vsvvvl - .{ .tag = @enumFromInt(2369), .param_str = "V256dfV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vvsvl - .{ .tag = @enumFromInt(2370), .param_str = "V256dV256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vvsvmvl - .{ .tag = @enumFromInt(2371), .param_str = "V256dV256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vvsvvl - .{ .tag = @enumFromInt(2372), .param_str = "V256dV256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vvvvl - .{ .tag = @enumFromInt(2373), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vvvvmvl - .{ .tag = @enumFromInt(2374), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmads_vvvvvl - .{ .tag = @enumFromInt(2375), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxd_vsvl - .{ .tag = @enumFromInt(2376), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxd_vsvmvl - .{ .tag = @enumFromInt(2377), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxd_vsvvl - .{ .tag = @enumFromInt(2378), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxd_vvvl - .{ .tag = @enumFromInt(2379), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxd_vvvmvl - .{ .tag = @enumFromInt(2380), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxd_vvvvl - .{ .tag = @enumFromInt(2381), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxs_vsvl - .{ .tag = @enumFromInt(2382), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxs_vsvmvl - .{ .tag = @enumFromInt(2383), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxs_vsvvl - .{ .tag = @enumFromInt(2384), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxs_vvvl - .{ .tag = @enumFromInt(2385), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxs_vvvmvl - .{ .tag = @enumFromInt(2386), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmaxs_vvvvl - .{ .tag = @enumFromInt(2387), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmind_vsvl - .{ .tag = @enumFromInt(2388), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmind_vsvmvl - .{ .tag = @enumFromInt(2389), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmind_vsvvl - .{ .tag = @enumFromInt(2390), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmind_vvvl - .{ .tag = @enumFromInt(2391), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmind_vvvmvl - .{ .tag = @enumFromInt(2392), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmind_vvvvl - .{ .tag = @enumFromInt(2393), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmins_vsvl - .{ .tag = @enumFromInt(2394), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmins_vsvmvl - .{ .tag = @enumFromInt(2395), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmins_vsvvl - .{ .tag = @enumFromInt(2396), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmins_vvvl - .{ .tag = @enumFromInt(2397), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmins_vvvmvl - .{ .tag = @enumFromInt(2398), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmins_vvvvl - .{ .tag = @enumFromInt(2399), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdeq_mvl - .{ .tag = @enumFromInt(2400), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdeq_mvml - .{ .tag = @enumFromInt(2401), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdeqnan_mvl - .{ .tag = @enumFromInt(2402), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdeqnan_mvml - .{ .tag = @enumFromInt(2403), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdge_mvl - .{ .tag = @enumFromInt(2404), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdge_mvml - .{ .tag = @enumFromInt(2405), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdgenan_mvl - .{ .tag = @enumFromInt(2406), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdgenan_mvml - .{ .tag = @enumFromInt(2407), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdgt_mvl - .{ .tag = @enumFromInt(2408), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdgt_mvml - .{ .tag = @enumFromInt(2409), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdgtnan_mvl - .{ .tag = @enumFromInt(2410), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdgtnan_mvml - .{ .tag = @enumFromInt(2411), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdle_mvl - .{ .tag = @enumFromInt(2412), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdle_mvml - .{ .tag = @enumFromInt(2413), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdlenan_mvl - .{ .tag = @enumFromInt(2414), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdlenan_mvml - .{ .tag = @enumFromInt(2415), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdlt_mvl - .{ .tag = @enumFromInt(2416), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdlt_mvml - .{ .tag = @enumFromInt(2417), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdltnan_mvl - .{ .tag = @enumFromInt(2418), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdltnan_mvml - .{ .tag = @enumFromInt(2419), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdnan_mvl - .{ .tag = @enumFromInt(2420), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdnan_mvml - .{ .tag = @enumFromInt(2421), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdne_mvl - .{ .tag = @enumFromInt(2422), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdne_mvml - .{ .tag = @enumFromInt(2423), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdnenan_mvl - .{ .tag = @enumFromInt(2424), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdnenan_mvml - .{ .tag = @enumFromInt(2425), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdnum_mvl - .{ .tag = @enumFromInt(2426), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkdnum_mvml - .{ .tag = @enumFromInt(2427), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklaf_ml - .{ .tag = @enumFromInt(2428), .param_str = "V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklat_ml - .{ .tag = @enumFromInt(2429), .param_str = "V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkleq_mvl - .{ .tag = @enumFromInt(2430), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkleq_mvml - .{ .tag = @enumFromInt(2431), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkleqnan_mvl - .{ .tag = @enumFromInt(2432), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkleqnan_mvml - .{ .tag = @enumFromInt(2433), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklge_mvl - .{ .tag = @enumFromInt(2434), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklge_mvml - .{ .tag = @enumFromInt(2435), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklgenan_mvl - .{ .tag = @enumFromInt(2436), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklgenan_mvml - .{ .tag = @enumFromInt(2437), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklgt_mvl - .{ .tag = @enumFromInt(2438), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklgt_mvml - .{ .tag = @enumFromInt(2439), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklgtnan_mvl - .{ .tag = @enumFromInt(2440), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklgtnan_mvml - .{ .tag = @enumFromInt(2441), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklle_mvl - .{ .tag = @enumFromInt(2442), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklle_mvml - .{ .tag = @enumFromInt(2443), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkllenan_mvl - .{ .tag = @enumFromInt(2444), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkllenan_mvml - .{ .tag = @enumFromInt(2445), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkllt_mvl - .{ .tag = @enumFromInt(2446), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkllt_mvml - .{ .tag = @enumFromInt(2447), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklltnan_mvl - .{ .tag = @enumFromInt(2448), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklltnan_mvml - .{ .tag = @enumFromInt(2449), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklnan_mvl - .{ .tag = @enumFromInt(2450), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklnan_mvml - .{ .tag = @enumFromInt(2451), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklne_mvl - .{ .tag = @enumFromInt(2452), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklne_mvml - .{ .tag = @enumFromInt(2453), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklnenan_mvl - .{ .tag = @enumFromInt(2454), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklnenan_mvml - .{ .tag = @enumFromInt(2455), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklnum_mvl - .{ .tag = @enumFromInt(2456), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmklnum_mvml - .{ .tag = @enumFromInt(2457), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkseq_mvl - .{ .tag = @enumFromInt(2458), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkseq_mvml - .{ .tag = @enumFromInt(2459), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkseqnan_mvl - .{ .tag = @enumFromInt(2460), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkseqnan_mvml - .{ .tag = @enumFromInt(2461), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksge_mvl - .{ .tag = @enumFromInt(2462), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksge_mvml - .{ .tag = @enumFromInt(2463), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksgenan_mvl - .{ .tag = @enumFromInt(2464), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksgenan_mvml - .{ .tag = @enumFromInt(2465), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksgt_mvl - .{ .tag = @enumFromInt(2466), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksgt_mvml - .{ .tag = @enumFromInt(2467), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksgtnan_mvl - .{ .tag = @enumFromInt(2468), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksgtnan_mvml - .{ .tag = @enumFromInt(2469), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksle_mvl - .{ .tag = @enumFromInt(2470), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksle_mvml - .{ .tag = @enumFromInt(2471), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkslenan_mvl - .{ .tag = @enumFromInt(2472), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkslenan_mvml - .{ .tag = @enumFromInt(2473), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkslt_mvl - .{ .tag = @enumFromInt(2474), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkslt_mvml - .{ .tag = @enumFromInt(2475), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksltnan_mvl - .{ .tag = @enumFromInt(2476), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksltnan_mvml - .{ .tag = @enumFromInt(2477), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksnan_mvl - .{ .tag = @enumFromInt(2478), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksnan_mvml - .{ .tag = @enumFromInt(2479), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksne_mvl - .{ .tag = @enumFromInt(2480), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksne_mvml - .{ .tag = @enumFromInt(2481), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksnenan_mvl - .{ .tag = @enumFromInt(2482), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksnenan_mvml - .{ .tag = @enumFromInt(2483), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksnum_mvl - .{ .tag = @enumFromInt(2484), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmksnum_mvml - .{ .tag = @enumFromInt(2485), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkweq_mvl - .{ .tag = @enumFromInt(2486), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkweq_mvml - .{ .tag = @enumFromInt(2487), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkweqnan_mvl - .{ .tag = @enumFromInt(2488), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkweqnan_mvml - .{ .tag = @enumFromInt(2489), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwge_mvl - .{ .tag = @enumFromInt(2490), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwge_mvml - .{ .tag = @enumFromInt(2491), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwgenan_mvl - .{ .tag = @enumFromInt(2492), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwgenan_mvml - .{ .tag = @enumFromInt(2493), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwgt_mvl - .{ .tag = @enumFromInt(2494), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwgt_mvml - .{ .tag = @enumFromInt(2495), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwgtnan_mvl - .{ .tag = @enumFromInt(2496), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwgtnan_mvml - .{ .tag = @enumFromInt(2497), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwle_mvl - .{ .tag = @enumFromInt(2498), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwle_mvml - .{ .tag = @enumFromInt(2499), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwlenan_mvl - .{ .tag = @enumFromInt(2500), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwlenan_mvml - .{ .tag = @enumFromInt(2501), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwlt_mvl - .{ .tag = @enumFromInt(2502), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwlt_mvml - .{ .tag = @enumFromInt(2503), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwltnan_mvl - .{ .tag = @enumFromInt(2504), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwltnan_mvml - .{ .tag = @enumFromInt(2505), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwnan_mvl - .{ .tag = @enumFromInt(2506), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwnan_mvml - .{ .tag = @enumFromInt(2507), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwne_mvl - .{ .tag = @enumFromInt(2508), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwne_mvml - .{ .tag = @enumFromInt(2509), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwnenan_mvl - .{ .tag = @enumFromInt(2510), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwnenan_mvml - .{ .tag = @enumFromInt(2511), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwnum_mvl - .{ .tag = @enumFromInt(2512), .param_str = "V256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmkwnum_mvml - .{ .tag = @enumFromInt(2513), .param_str = "V256bV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vsvvl - .{ .tag = @enumFromInt(2514), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vsvvmvl - .{ .tag = @enumFromInt(2515), .param_str = "V256ddV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vsvvvl - .{ .tag = @enumFromInt(2516), .param_str = "V256ddV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vvsvl - .{ .tag = @enumFromInt(2517), .param_str = "V256dV256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vvsvmvl - .{ .tag = @enumFromInt(2518), .param_str = "V256dV256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vvsvvl - .{ .tag = @enumFromInt(2519), .param_str = "V256dV256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vvvvl - .{ .tag = @enumFromInt(2520), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vvvvmvl - .{ .tag = @enumFromInt(2521), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbd_vvvvvl - .{ .tag = @enumFromInt(2522), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vsvvl - .{ .tag = @enumFromInt(2523), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vsvvmvl - .{ .tag = @enumFromInt(2524), .param_str = "V256dfV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vsvvvl - .{ .tag = @enumFromInt(2525), .param_str = "V256dfV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vvsvl - .{ .tag = @enumFromInt(2526), .param_str = "V256dV256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vvsvmvl - .{ .tag = @enumFromInt(2527), .param_str = "V256dV256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vvsvvl - .{ .tag = @enumFromInt(2528), .param_str = "V256dV256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vvvvl - .{ .tag = @enumFromInt(2529), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vvvvmvl - .{ .tag = @enumFromInt(2530), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmsbs_vvvvvl - .{ .tag = @enumFromInt(2531), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuld_vsvl - .{ .tag = @enumFromInt(2532), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuld_vsvmvl - .{ .tag = @enumFromInt(2533), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuld_vsvvl - .{ .tag = @enumFromInt(2534), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuld_vvvl - .{ .tag = @enumFromInt(2535), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuld_vvvmvl - .{ .tag = @enumFromInt(2536), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuld_vvvvl - .{ .tag = @enumFromInt(2537), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuls_vsvl - .{ .tag = @enumFromInt(2538), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuls_vsvmvl - .{ .tag = @enumFromInt(2539), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuls_vsvvl - .{ .tag = @enumFromInt(2540), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuls_vvvl - .{ .tag = @enumFromInt(2541), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuls_vvvmvl - .{ .tag = @enumFromInt(2542), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfmuls_vvvvl - .{ .tag = @enumFromInt(2543), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vsvvl - .{ .tag = @enumFromInt(2544), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vsvvmvl - .{ .tag = @enumFromInt(2545), .param_str = "V256ddV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vsvvvl - .{ .tag = @enumFromInt(2546), .param_str = "V256ddV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vvsvl - .{ .tag = @enumFromInt(2547), .param_str = "V256dV256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vvsvmvl - .{ .tag = @enumFromInt(2548), .param_str = "V256dV256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vvsvvl - .{ .tag = @enumFromInt(2549), .param_str = "V256dV256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vvvvl - .{ .tag = @enumFromInt(2550), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vvvvmvl - .{ .tag = @enumFromInt(2551), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmadd_vvvvvl - .{ .tag = @enumFromInt(2552), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vsvvl - .{ .tag = @enumFromInt(2553), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vsvvmvl - .{ .tag = @enumFromInt(2554), .param_str = "V256dfV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vsvvvl - .{ .tag = @enumFromInt(2555), .param_str = "V256dfV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vvsvl - .{ .tag = @enumFromInt(2556), .param_str = "V256dV256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vvsvmvl - .{ .tag = @enumFromInt(2557), .param_str = "V256dV256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vvsvvl - .{ .tag = @enumFromInt(2558), .param_str = "V256dV256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vvvvl - .{ .tag = @enumFromInt(2559), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vvvvmvl - .{ .tag = @enumFromInt(2560), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmads_vvvvvl - .{ .tag = @enumFromInt(2561), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vsvvl - .{ .tag = @enumFromInt(2562), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vsvvmvl - .{ .tag = @enumFromInt(2563), .param_str = "V256ddV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vsvvvl - .{ .tag = @enumFromInt(2564), .param_str = "V256ddV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vvsvl - .{ .tag = @enumFromInt(2565), .param_str = "V256dV256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vvsvmvl - .{ .tag = @enumFromInt(2566), .param_str = "V256dV256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vvsvvl - .{ .tag = @enumFromInt(2567), .param_str = "V256dV256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vvvvl - .{ .tag = @enumFromInt(2568), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vvvvmvl - .{ .tag = @enumFromInt(2569), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbd_vvvvvl - .{ .tag = @enumFromInt(2570), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vsvvl - .{ .tag = @enumFromInt(2571), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vsvvmvl - .{ .tag = @enumFromInt(2572), .param_str = "V256dfV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vsvvvl - .{ .tag = @enumFromInt(2573), .param_str = "V256dfV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vvsvl - .{ .tag = @enumFromInt(2574), .param_str = "V256dV256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vvsvmvl - .{ .tag = @enumFromInt(2575), .param_str = "V256dV256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vvsvvl - .{ .tag = @enumFromInt(2576), .param_str = "V256dV256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vvvvl - .{ .tag = @enumFromInt(2577), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vvvvmvl - .{ .tag = @enumFromInt(2578), .param_str = "V256dV256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfnmsbs_vvvvvl - .{ .tag = @enumFromInt(2579), .param_str = "V256dV256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxdfst_vvl - .{ .tag = @enumFromInt(2580), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxdfst_vvvl - .{ .tag = @enumFromInt(2581), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxdlst_vvl - .{ .tag = @enumFromInt(2582), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxdlst_vvvl - .{ .tag = @enumFromInt(2583), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxsfst_vvl - .{ .tag = @enumFromInt(2584), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxsfst_vvvl - .{ .tag = @enumFromInt(2585), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxslst_vvl - .{ .tag = @enumFromInt(2586), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmaxslst_vvvl - .{ .tag = @enumFromInt(2587), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmindfst_vvl - .{ .tag = @enumFromInt(2588), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmindfst_vvvl - .{ .tag = @enumFromInt(2589), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmindlst_vvl - .{ .tag = @enumFromInt(2590), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrmindlst_vvvl - .{ .tag = @enumFromInt(2591), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrminsfst_vvl - .{ .tag = @enumFromInt(2592), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrminsfst_vvvl - .{ .tag = @enumFromInt(2593), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrminslst_vvl - .{ .tag = @enumFromInt(2594), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfrminslst_vvvl - .{ .tag = @enumFromInt(2595), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsqrtd_vvl - .{ .tag = @enumFromInt(2596), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsqrtd_vvvl - .{ .tag = @enumFromInt(2597), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsqrts_vvl - .{ .tag = @enumFromInt(2598), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsqrts_vvvl - .{ .tag = @enumFromInt(2599), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubd_vsvl - .{ .tag = @enumFromInt(2600), .param_str = "V256ddV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubd_vsvmvl - .{ .tag = @enumFromInt(2601), .param_str = "V256ddV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubd_vsvvl - .{ .tag = @enumFromInt(2602), .param_str = "V256ddV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubd_vvvl - .{ .tag = @enumFromInt(2603), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubd_vvvmvl - .{ .tag = @enumFromInt(2604), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubd_vvvvl - .{ .tag = @enumFromInt(2605), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubs_vsvl - .{ .tag = @enumFromInt(2606), .param_str = "V256dfV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubs_vsvmvl - .{ .tag = @enumFromInt(2607), .param_str = "V256dfV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubs_vsvvl - .{ .tag = @enumFromInt(2608), .param_str = "V256dfV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubs_vvvl - .{ .tag = @enumFromInt(2609), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubs_vvvmvl - .{ .tag = @enumFromInt(2610), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsubs_vvvvl - .{ .tag = @enumFromInt(2611), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsumd_vvl - .{ .tag = @enumFromInt(2612), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsumd_vvml - .{ .tag = @enumFromInt(2613), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsums_vvl - .{ .tag = @enumFromInt(2614), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vfsums_vvml - .{ .tag = @enumFromInt(2615), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgt_vvssl - .{ .tag = @enumFromInt(2616), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgt_vvssml - .{ .tag = @enumFromInt(2617), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgt_vvssmvl - .{ .tag = @enumFromInt(2618), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgt_vvssvl - .{ .tag = @enumFromInt(2619), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsx_vvssl - .{ .tag = @enumFromInt(2620), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsx_vvssml - .{ .tag = @enumFromInt(2621), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsx_vvssmvl - .{ .tag = @enumFromInt(2622), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsx_vvssvl - .{ .tag = @enumFromInt(2623), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsxnc_vvssl - .{ .tag = @enumFromInt(2624), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsxnc_vvssml - .{ .tag = @enumFromInt(2625), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsxnc_vvssmvl - .{ .tag = @enumFromInt(2626), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlsxnc_vvssvl - .{ .tag = @enumFromInt(2627), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzx_vvssl - .{ .tag = @enumFromInt(2628), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzx_vvssml - .{ .tag = @enumFromInt(2629), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzx_vvssmvl - .{ .tag = @enumFromInt(2630), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzx_vvssvl - .{ .tag = @enumFromInt(2631), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzxnc_vvssl - .{ .tag = @enumFromInt(2632), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzxnc_vvssml - .{ .tag = @enumFromInt(2633), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzxnc_vvssmvl - .{ .tag = @enumFromInt(2634), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtlzxnc_vvssvl - .{ .tag = @enumFromInt(2635), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtnc_vvssl - .{ .tag = @enumFromInt(2636), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtnc_vvssml - .{ .tag = @enumFromInt(2637), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtnc_vvssmvl - .{ .tag = @enumFromInt(2638), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtnc_vvssvl - .{ .tag = @enumFromInt(2639), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtu_vvssl - .{ .tag = @enumFromInt(2640), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtu_vvssml - .{ .tag = @enumFromInt(2641), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtu_vvssmvl - .{ .tag = @enumFromInt(2642), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtu_vvssvl - .{ .tag = @enumFromInt(2643), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtunc_vvssl - .{ .tag = @enumFromInt(2644), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtunc_vvssml - .{ .tag = @enumFromInt(2645), .param_str = "V256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtunc_vvssmvl - .{ .tag = @enumFromInt(2646), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vgtunc_vvssvl - .{ .tag = @enumFromInt(2647), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vld2d_vssl - .{ .tag = @enumFromInt(2648), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vld2d_vssvl - .{ .tag = @enumFromInt(2649), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vld2dnc_vssl - .{ .tag = @enumFromInt(2650), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vld2dnc_vssvl - .{ .tag = @enumFromInt(2651), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vld_vssl - .{ .tag = @enumFromInt(2652), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vld_vssvl - .{ .tag = @enumFromInt(2653), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dsx_vssl - .{ .tag = @enumFromInt(2654), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dsx_vssvl - .{ .tag = @enumFromInt(2655), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dsxnc_vssl - .{ .tag = @enumFromInt(2656), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dsxnc_vssvl - .{ .tag = @enumFromInt(2657), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dzx_vssl - .{ .tag = @enumFromInt(2658), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dzx_vssvl - .{ .tag = @enumFromInt(2659), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dzxnc_vssl - .{ .tag = @enumFromInt(2660), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldl2dzxnc_vssvl - .{ .tag = @enumFromInt(2661), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlsx_vssl - .{ .tag = @enumFromInt(2662), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlsx_vssvl - .{ .tag = @enumFromInt(2663), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlsxnc_vssl - .{ .tag = @enumFromInt(2664), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlsxnc_vssvl - .{ .tag = @enumFromInt(2665), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlzx_vssl - .{ .tag = @enumFromInt(2666), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlzx_vssvl - .{ .tag = @enumFromInt(2667), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlzxnc_vssl - .{ .tag = @enumFromInt(2668), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldlzxnc_vssvl - .{ .tag = @enumFromInt(2669), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldnc_vssl - .{ .tag = @enumFromInt(2670), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldnc_vssvl - .{ .tag = @enumFromInt(2671), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldu2d_vssl - .{ .tag = @enumFromInt(2672), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldu2d_vssvl - .{ .tag = @enumFromInt(2673), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldu2dnc_vssl - .{ .tag = @enumFromInt(2674), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldu2dnc_vssvl - .{ .tag = @enumFromInt(2675), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldu_vssl - .{ .tag = @enumFromInt(2676), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldu_vssvl - .{ .tag = @enumFromInt(2677), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldunc_vssl - .{ .tag = @enumFromInt(2678), .param_str = "V256dLUivC*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldunc_vssvl - .{ .tag = @enumFromInt(2679), .param_str = "V256dLUivC*V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldz_vvl - .{ .tag = @enumFromInt(2680), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldz_vvmvl - .{ .tag = @enumFromInt(2681), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vldz_vvvl - .{ .tag = @enumFromInt(2682), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxsl_vsvl - .{ .tag = @enumFromInt(2683), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxsl_vsvmvl - .{ .tag = @enumFromInt(2684), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxsl_vsvvl - .{ .tag = @enumFromInt(2685), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxsl_vvvl - .{ .tag = @enumFromInt(2686), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxsl_vvvmvl - .{ .tag = @enumFromInt(2687), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxsl_vvvvl - .{ .tag = @enumFromInt(2688), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswsx_vsvl - .{ .tag = @enumFromInt(2689), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswsx_vsvmvl - .{ .tag = @enumFromInt(2690), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswsx_vsvvl - .{ .tag = @enumFromInt(2691), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswsx_vvvl - .{ .tag = @enumFromInt(2692), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswsx_vvvmvl - .{ .tag = @enumFromInt(2693), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswsx_vvvvl - .{ .tag = @enumFromInt(2694), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswzx_vsvl - .{ .tag = @enumFromInt(2695), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswzx_vsvmvl - .{ .tag = @enumFromInt(2696), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswzx_vsvvl - .{ .tag = @enumFromInt(2697), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswzx_vvvl - .{ .tag = @enumFromInt(2698), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswzx_vvvmvl - .{ .tag = @enumFromInt(2699), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmaxswzx_vvvvl - .{ .tag = @enumFromInt(2700), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminsl_vsvl - .{ .tag = @enumFromInt(2701), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminsl_vsvmvl - .{ .tag = @enumFromInt(2702), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminsl_vsvvl - .{ .tag = @enumFromInt(2703), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminsl_vvvl - .{ .tag = @enumFromInt(2704), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminsl_vvvmvl - .{ .tag = @enumFromInt(2705), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminsl_vvvvl - .{ .tag = @enumFromInt(2706), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswsx_vsvl - .{ .tag = @enumFromInt(2707), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswsx_vsvmvl - .{ .tag = @enumFromInt(2708), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswsx_vsvvl - .{ .tag = @enumFromInt(2709), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswsx_vvvl - .{ .tag = @enumFromInt(2710), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswsx_vvvmvl - .{ .tag = @enumFromInt(2711), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswsx_vvvvl - .{ .tag = @enumFromInt(2712), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswzx_vsvl - .{ .tag = @enumFromInt(2713), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswzx_vsvmvl - .{ .tag = @enumFromInt(2714), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswzx_vsvvl - .{ .tag = @enumFromInt(2715), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswzx_vvvl - .{ .tag = @enumFromInt(2716), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswzx_vvvmvl - .{ .tag = @enumFromInt(2717), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vminswzx_vvvvl - .{ .tag = @enumFromInt(2718), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrg_vsvml - .{ .tag = @enumFromInt(2719), .param_str = "V256dLUiV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrg_vsvmvl - .{ .tag = @enumFromInt(2720), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrg_vvvml - .{ .tag = @enumFromInt(2721), .param_str = "V256dV256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrg_vvvmvl - .{ .tag = @enumFromInt(2722), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrgw_vsvMl - .{ .tag = @enumFromInt(2723), .param_str = "V256dUiV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrgw_vsvMvl - .{ .tag = @enumFromInt(2724), .param_str = "V256dUiV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrgw_vvvMl - .{ .tag = @enumFromInt(2725), .param_str = "V256dV256dV256dV512bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmrgw_vvvMvl - .{ .tag = @enumFromInt(2726), .param_str = "V256dV256dV256dV512bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulsl_vsvl - .{ .tag = @enumFromInt(2727), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulsl_vsvmvl - .{ .tag = @enumFromInt(2728), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulsl_vsvvl - .{ .tag = @enumFromInt(2729), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulsl_vvvl - .{ .tag = @enumFromInt(2730), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulsl_vvvmvl - .{ .tag = @enumFromInt(2731), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulsl_vvvvl - .{ .tag = @enumFromInt(2732), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulslw_vsvl - .{ .tag = @enumFromInt(2733), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulslw_vsvvl - .{ .tag = @enumFromInt(2734), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulslw_vvvl - .{ .tag = @enumFromInt(2735), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulslw_vvvvl - .{ .tag = @enumFromInt(2736), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswsx_vsvl - .{ .tag = @enumFromInt(2737), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswsx_vsvmvl - .{ .tag = @enumFromInt(2738), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswsx_vsvvl - .{ .tag = @enumFromInt(2739), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswsx_vvvl - .{ .tag = @enumFromInt(2740), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswsx_vvvmvl - .{ .tag = @enumFromInt(2741), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswsx_vvvvl - .{ .tag = @enumFromInt(2742), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswzx_vsvl - .{ .tag = @enumFromInt(2743), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswzx_vsvmvl - .{ .tag = @enumFromInt(2744), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswzx_vsvvl - .{ .tag = @enumFromInt(2745), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswzx_vvvl - .{ .tag = @enumFromInt(2746), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswzx_vvvmvl - .{ .tag = @enumFromInt(2747), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulswzx_vvvvl - .{ .tag = @enumFromInt(2748), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulul_vsvl - .{ .tag = @enumFromInt(2749), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulul_vsvmvl - .{ .tag = @enumFromInt(2750), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulul_vsvvl - .{ .tag = @enumFromInt(2751), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulul_vvvl - .{ .tag = @enumFromInt(2752), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulul_vvvmvl - .{ .tag = @enumFromInt(2753), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmulul_vvvvl - .{ .tag = @enumFromInt(2754), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmuluw_vsvl - .{ .tag = @enumFromInt(2755), .param_str = "V256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmuluw_vsvmvl - .{ .tag = @enumFromInt(2756), .param_str = "V256dUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmuluw_vsvvl - .{ .tag = @enumFromInt(2757), .param_str = "V256dUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmuluw_vvvl - .{ .tag = @enumFromInt(2758), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmuluw_vvvmvl - .{ .tag = @enumFromInt(2759), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmuluw_vvvvl - .{ .tag = @enumFromInt(2760), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmv_vsvl - .{ .tag = @enumFromInt(2761), .param_str = "V256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmv_vsvmvl - .{ .tag = @enumFromInt(2762), .param_str = "V256dUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vmv_vsvvl - .{ .tag = @enumFromInt(2763), .param_str = "V256dUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vor_vsvl - .{ .tag = @enumFromInt(2764), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vor_vsvmvl - .{ .tag = @enumFromInt(2765), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vor_vsvvl - .{ .tag = @enumFromInt(2766), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vor_vvvl - .{ .tag = @enumFromInt(2767), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vor_vvvmvl - .{ .tag = @enumFromInt(2768), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vor_vvvvl - .{ .tag = @enumFromInt(2769), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vpcnt_vvl - .{ .tag = @enumFromInt(2770), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vpcnt_vvmvl - .{ .tag = @enumFromInt(2771), .param_str = "V256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vpcnt_vvvl - .{ .tag = @enumFromInt(2772), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrand_vvl - .{ .tag = @enumFromInt(2773), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrand_vvml - .{ .tag = @enumFromInt(2774), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrcpd_vvl - .{ .tag = @enumFromInt(2775), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrcpd_vvvl - .{ .tag = @enumFromInt(2776), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrcps_vvl - .{ .tag = @enumFromInt(2777), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrcps_vvvl - .{ .tag = @enumFromInt(2778), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxslfst_vvl - .{ .tag = @enumFromInt(2779), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxslfst_vvvl - .{ .tag = @enumFromInt(2780), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxsllst_vvl - .{ .tag = @enumFromInt(2781), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxsllst_vvvl - .{ .tag = @enumFromInt(2782), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswfstsx_vvl - .{ .tag = @enumFromInt(2783), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswfstsx_vvvl - .{ .tag = @enumFromInt(2784), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswfstzx_vvl - .{ .tag = @enumFromInt(2785), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswfstzx_vvvl - .{ .tag = @enumFromInt(2786), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswlstsx_vvl - .{ .tag = @enumFromInt(2787), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswlstsx_vvvl - .{ .tag = @enumFromInt(2788), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswlstzx_vvl - .{ .tag = @enumFromInt(2789), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrmaxswlstzx_vvvl - .{ .tag = @enumFromInt(2790), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminslfst_vvl - .{ .tag = @enumFromInt(2791), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminslfst_vvvl - .{ .tag = @enumFromInt(2792), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminsllst_vvl - .{ .tag = @enumFromInt(2793), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminsllst_vvvl - .{ .tag = @enumFromInt(2794), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswfstsx_vvl - .{ .tag = @enumFromInt(2795), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswfstsx_vvvl - .{ .tag = @enumFromInt(2796), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswfstzx_vvl - .{ .tag = @enumFromInt(2797), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswfstzx_vvvl - .{ .tag = @enumFromInt(2798), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswlstsx_vvl - .{ .tag = @enumFromInt(2799), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswlstsx_vvvl - .{ .tag = @enumFromInt(2800), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswlstzx_vvl - .{ .tag = @enumFromInt(2801), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrminswlstzx_vvvl - .{ .tag = @enumFromInt(2802), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vror_vvl - .{ .tag = @enumFromInt(2803), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vror_vvml - .{ .tag = @enumFromInt(2804), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrtd_vvl - .{ .tag = @enumFromInt(2805), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrtd_vvvl - .{ .tag = @enumFromInt(2806), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrtdnex_vvl - .{ .tag = @enumFromInt(2807), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrtdnex_vvvl - .{ .tag = @enumFromInt(2808), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrts_vvl - .{ .tag = @enumFromInt(2809), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrts_vvvl - .{ .tag = @enumFromInt(2810), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrtsnex_vvl - .{ .tag = @enumFromInt(2811), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrsqrtsnex_vvvl - .{ .tag = @enumFromInt(2812), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrxor_vvl - .{ .tag = @enumFromInt(2813), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vrxor_vvml - .{ .tag = @enumFromInt(2814), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsc_vvssl - .{ .tag = @enumFromInt(2815), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsc_vvssml - .{ .tag = @enumFromInt(2816), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscl_vvssl - .{ .tag = @enumFromInt(2817), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscl_vvssml - .{ .tag = @enumFromInt(2818), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsclnc_vvssl - .{ .tag = @enumFromInt(2819), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsclnc_vvssml - .{ .tag = @enumFromInt(2820), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsclncot_vvssl - .{ .tag = @enumFromInt(2821), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsclncot_vvssml - .{ .tag = @enumFromInt(2822), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsclot_vvssl - .{ .tag = @enumFromInt(2823), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsclot_vvssml - .{ .tag = @enumFromInt(2824), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscnc_vvssl - .{ .tag = @enumFromInt(2825), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscnc_vvssml - .{ .tag = @enumFromInt(2826), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscncot_vvssl - .{ .tag = @enumFromInt(2827), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscncot_vvssml - .{ .tag = @enumFromInt(2828), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscot_vvssl - .{ .tag = @enumFromInt(2829), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscot_vvssml - .{ .tag = @enumFromInt(2830), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscu_vvssl - .{ .tag = @enumFromInt(2831), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscu_vvssml - .{ .tag = @enumFromInt(2832), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscunc_vvssl - .{ .tag = @enumFromInt(2833), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscunc_vvssml - .{ .tag = @enumFromInt(2834), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscuncot_vvssl - .{ .tag = @enumFromInt(2835), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscuncot_vvssml - .{ .tag = @enumFromInt(2836), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscuot_vvssl - .{ .tag = @enumFromInt(2837), .param_str = "vV256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vscuot_vvssml - .{ .tag = @enumFromInt(2838), .param_str = "vV256dV256dLUiLUiV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vseq_vl - .{ .tag = @enumFromInt(2839), .param_str = "V256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vseq_vvl - .{ .tag = @enumFromInt(2840), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsfa_vvssl - .{ .tag = @enumFromInt(2841), .param_str = "V256dV256dLUiLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsfa_vvssmvl - .{ .tag = @enumFromInt(2842), .param_str = "V256dV256dLUiLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsfa_vvssvl - .{ .tag = @enumFromInt(2843), .param_str = "V256dV256dLUiLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vshf_vvvsl - .{ .tag = @enumFromInt(2844), .param_str = "V256dV256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vshf_vvvsvl - .{ .tag = @enumFromInt(2845), .param_str = "V256dV256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslal_vvsl - .{ .tag = @enumFromInt(2846), .param_str = "V256dV256dLiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslal_vvsmvl - .{ .tag = @enumFromInt(2847), .param_str = "V256dV256dLiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslal_vvsvl - .{ .tag = @enumFromInt(2848), .param_str = "V256dV256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslal_vvvl - .{ .tag = @enumFromInt(2849), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslal_vvvmvl - .{ .tag = @enumFromInt(2850), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslal_vvvvl - .{ .tag = @enumFromInt(2851), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawsx_vvsl - .{ .tag = @enumFromInt(2852), .param_str = "V256dV256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawsx_vvsmvl - .{ .tag = @enumFromInt(2853), .param_str = "V256dV256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawsx_vvsvl - .{ .tag = @enumFromInt(2854), .param_str = "V256dV256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawsx_vvvl - .{ .tag = @enumFromInt(2855), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawsx_vvvmvl - .{ .tag = @enumFromInt(2856), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawsx_vvvvl - .{ .tag = @enumFromInt(2857), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawzx_vvsl - .{ .tag = @enumFromInt(2858), .param_str = "V256dV256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawzx_vvsmvl - .{ .tag = @enumFromInt(2859), .param_str = "V256dV256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawzx_vvsvl - .{ .tag = @enumFromInt(2860), .param_str = "V256dV256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawzx_vvvl - .{ .tag = @enumFromInt(2861), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawzx_vvvmvl - .{ .tag = @enumFromInt(2862), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vslawzx_vvvvl - .{ .tag = @enumFromInt(2863), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsll_vvsl - .{ .tag = @enumFromInt(2864), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsll_vvsmvl - .{ .tag = @enumFromInt(2865), .param_str = "V256dV256dLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsll_vvsvl - .{ .tag = @enumFromInt(2866), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsll_vvvl - .{ .tag = @enumFromInt(2867), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsll_vvvmvl - .{ .tag = @enumFromInt(2868), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsll_vvvvl - .{ .tag = @enumFromInt(2869), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsral_vvsl - .{ .tag = @enumFromInt(2870), .param_str = "V256dV256dLiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsral_vvsmvl - .{ .tag = @enumFromInt(2871), .param_str = "V256dV256dLiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsral_vvsvl - .{ .tag = @enumFromInt(2872), .param_str = "V256dV256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsral_vvvl - .{ .tag = @enumFromInt(2873), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsral_vvvmvl - .{ .tag = @enumFromInt(2874), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsral_vvvvl - .{ .tag = @enumFromInt(2875), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawsx_vvsl - .{ .tag = @enumFromInt(2876), .param_str = "V256dV256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawsx_vvsmvl - .{ .tag = @enumFromInt(2877), .param_str = "V256dV256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawsx_vvsvl - .{ .tag = @enumFromInt(2878), .param_str = "V256dV256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawsx_vvvl - .{ .tag = @enumFromInt(2879), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawsx_vvvmvl - .{ .tag = @enumFromInt(2880), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawsx_vvvvl - .{ .tag = @enumFromInt(2881), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawzx_vvsl - .{ .tag = @enumFromInt(2882), .param_str = "V256dV256diUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawzx_vvsmvl - .{ .tag = @enumFromInt(2883), .param_str = "V256dV256diV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawzx_vvsvl - .{ .tag = @enumFromInt(2884), .param_str = "V256dV256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawzx_vvvl - .{ .tag = @enumFromInt(2885), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawzx_vvvmvl - .{ .tag = @enumFromInt(2886), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrawzx_vvvvl - .{ .tag = @enumFromInt(2887), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrl_vvsl - .{ .tag = @enumFromInt(2888), .param_str = "V256dV256dLUiUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrl_vvsmvl - .{ .tag = @enumFromInt(2889), .param_str = "V256dV256dLUiV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrl_vvsvl - .{ .tag = @enumFromInt(2890), .param_str = "V256dV256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrl_vvvl - .{ .tag = @enumFromInt(2891), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrl_vvvmvl - .{ .tag = @enumFromInt(2892), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsrl_vvvvl - .{ .tag = @enumFromInt(2893), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2d_vssl - .{ .tag = @enumFromInt(2894), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2d_vssml - .{ .tag = @enumFromInt(2895), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2dnc_vssl - .{ .tag = @enumFromInt(2896), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2dnc_vssml - .{ .tag = @enumFromInt(2897), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2dncot_vssl - .{ .tag = @enumFromInt(2898), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2dncot_vssml - .{ .tag = @enumFromInt(2899), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2dot_vssl - .{ .tag = @enumFromInt(2900), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst2dot_vssml - .{ .tag = @enumFromInt(2901), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst_vssl - .{ .tag = @enumFromInt(2902), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vst_vssml - .{ .tag = @enumFromInt(2903), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2d_vssl - .{ .tag = @enumFromInt(2904), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2d_vssml - .{ .tag = @enumFromInt(2905), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2dnc_vssl - .{ .tag = @enumFromInt(2906), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2dnc_vssml - .{ .tag = @enumFromInt(2907), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2dncot_vssl - .{ .tag = @enumFromInt(2908), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2dncot_vssml - .{ .tag = @enumFromInt(2909), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2dot_vssl - .{ .tag = @enumFromInt(2910), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl2dot_vssml - .{ .tag = @enumFromInt(2911), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl_vssl - .{ .tag = @enumFromInt(2912), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstl_vssml - .{ .tag = @enumFromInt(2913), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstlnc_vssl - .{ .tag = @enumFromInt(2914), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstlnc_vssml - .{ .tag = @enumFromInt(2915), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstlncot_vssl - .{ .tag = @enumFromInt(2916), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstlncot_vssml - .{ .tag = @enumFromInt(2917), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstlot_vssl - .{ .tag = @enumFromInt(2918), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstlot_vssml - .{ .tag = @enumFromInt(2919), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstnc_vssl - .{ .tag = @enumFromInt(2920), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstnc_vssml - .{ .tag = @enumFromInt(2921), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstncot_vssl - .{ .tag = @enumFromInt(2922), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstncot_vssml - .{ .tag = @enumFromInt(2923), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstot_vssl - .{ .tag = @enumFromInt(2924), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstot_vssml - .{ .tag = @enumFromInt(2925), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2d_vssl - .{ .tag = @enumFromInt(2926), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2d_vssml - .{ .tag = @enumFromInt(2927), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2dnc_vssl - .{ .tag = @enumFromInt(2928), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2dnc_vssml - .{ .tag = @enumFromInt(2929), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2dncot_vssl - .{ .tag = @enumFromInt(2930), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2dncot_vssml - .{ .tag = @enumFromInt(2931), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2dot_vssl - .{ .tag = @enumFromInt(2932), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu2dot_vssml - .{ .tag = @enumFromInt(2933), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu_vssl - .{ .tag = @enumFromInt(2934), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstu_vssml - .{ .tag = @enumFromInt(2935), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstunc_vssl - .{ .tag = @enumFromInt(2936), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstunc_vssml - .{ .tag = @enumFromInt(2937), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstuncot_vssl - .{ .tag = @enumFromInt(2938), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstuncot_vssml - .{ .tag = @enumFromInt(2939), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstuot_vssl - .{ .tag = @enumFromInt(2940), .param_str = "vV256dLUiv*Ui", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vstuot_vssml - .{ .tag = @enumFromInt(2941), .param_str = "vV256dLUiv*V256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubsl_vsvl - .{ .tag = @enumFromInt(2942), .param_str = "V256dLiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubsl_vsvmvl - .{ .tag = @enumFromInt(2943), .param_str = "V256dLiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubsl_vsvvl - .{ .tag = @enumFromInt(2944), .param_str = "V256dLiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubsl_vvvl - .{ .tag = @enumFromInt(2945), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubsl_vvvmvl - .{ .tag = @enumFromInt(2946), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubsl_vvvvl - .{ .tag = @enumFromInt(2947), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswsx_vsvl - .{ .tag = @enumFromInt(2948), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswsx_vsvmvl - .{ .tag = @enumFromInt(2949), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswsx_vsvvl - .{ .tag = @enumFromInt(2950), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswsx_vvvl - .{ .tag = @enumFromInt(2951), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswsx_vvvmvl - .{ .tag = @enumFromInt(2952), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswsx_vvvvl - .{ .tag = @enumFromInt(2953), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswzx_vsvl - .{ .tag = @enumFromInt(2954), .param_str = "V256diV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswzx_vsvmvl - .{ .tag = @enumFromInt(2955), .param_str = "V256diV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswzx_vsvvl - .{ .tag = @enumFromInt(2956), .param_str = "V256diV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswzx_vvvl - .{ .tag = @enumFromInt(2957), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswzx_vvvmvl - .{ .tag = @enumFromInt(2958), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubswzx_vvvvl - .{ .tag = @enumFromInt(2959), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubul_vsvl - .{ .tag = @enumFromInt(2960), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubul_vsvmvl - .{ .tag = @enumFromInt(2961), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubul_vsvvl - .{ .tag = @enumFromInt(2962), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubul_vvvl - .{ .tag = @enumFromInt(2963), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubul_vvvmvl - .{ .tag = @enumFromInt(2964), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubul_vvvvl - .{ .tag = @enumFromInt(2965), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubuw_vsvl - .{ .tag = @enumFromInt(2966), .param_str = "V256dUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubuw_vsvmvl - .{ .tag = @enumFromInt(2967), .param_str = "V256dUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubuw_vsvvl - .{ .tag = @enumFromInt(2968), .param_str = "V256dUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubuw_vvvl - .{ .tag = @enumFromInt(2969), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubuw_vvvmvl - .{ .tag = @enumFromInt(2970), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsubuw_vvvvl - .{ .tag = @enumFromInt(2971), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsuml_vvl - .{ .tag = @enumFromInt(2972), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsuml_vvml - .{ .tag = @enumFromInt(2973), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsumwsx_vvl - .{ .tag = @enumFromInt(2974), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsumwsx_vvml - .{ .tag = @enumFromInt(2975), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsumwzx_vvl - .{ .tag = @enumFromInt(2976), .param_str = "V256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vsumwzx_vvml - .{ .tag = @enumFromInt(2977), .param_str = "V256dV256dV256bUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vxor_vsvl - .{ .tag = @enumFromInt(2978), .param_str = "V256dLUiV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vxor_vsvmvl - .{ .tag = @enumFromInt(2979), .param_str = "V256dLUiV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vxor_vsvvl - .{ .tag = @enumFromInt(2980), .param_str = "V256dLUiV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vxor_vvvl - .{ .tag = @enumFromInt(2981), .param_str = "V256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vxor_vvvmvl - .{ .tag = @enumFromInt(2982), .param_str = "V256dV256dV256dV256bV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_vxor_vvvvl - .{ .tag = @enumFromInt(2983), .param_str = "V256dV256dV256dV256dUi", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_xorm_MMM - .{ .tag = @enumFromInt(2984), .param_str = "V512bV512bV512b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_ve_vl_xorm_mmm - .{ .tag = @enumFromInt(2985), .param_str = "V256bV256bV256b", .properties = .{ .target_set = TargetSet.initOne(.vevl_gen) } }, - // __builtin_vfprintf - .{ .tag = @enumFromInt(2986), .param_str = "iP*RcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 1 } } }, - // __builtin_vfscanf - .{ .tag = @enumFromInt(2987), .param_str = "iP*RcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vscanf, .format_string_position = 1 } } }, - // __builtin_vprintf - .{ .tag = @enumFromInt(2988), .param_str = "icC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf } } }, - // __builtin_vscanf - .{ .tag = @enumFromInt(2989), .param_str = "icC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vscanf } } }, - // __builtin_vsnprintf - .{ .tag = @enumFromInt(2990), .param_str = "ic*RzcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 2 } } }, - // __builtin_vsprintf - .{ .tag = @enumFromInt(2991), .param_str = "ic*RcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 1 } } }, - // __builtin_vsscanf - .{ .tag = @enumFromInt(2992), .param_str = "icC*RcC*Ra", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vscanf, .format_string_position = 1 } } }, - // __builtin_wasm_max_f32 - .{ .tag = @enumFromInt(2993), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_max_f64 - .{ .tag = @enumFromInt(2994), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_memory_grow - .{ .tag = @enumFromInt(2995), .param_str = "zIiz", .properties = .{ .target_set = TargetSet.initOne(.webassembly) } }, - // __builtin_wasm_memory_size - .{ .tag = @enumFromInt(2996), .param_str = "zIi", .properties = .{ .target_set = TargetSet.initOne(.webassembly) } }, - // __builtin_wasm_min_f32 - .{ .tag = @enumFromInt(2997), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_min_f64 - .{ .tag = @enumFromInt(2998), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_s_i32_f32 - .{ .tag = @enumFromInt(2999), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_s_i32_f64 - .{ .tag = @enumFromInt(3000), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_s_i64_f32 - .{ .tag = @enumFromInt(3001), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_s_i64_f64 - .{ .tag = @enumFromInt(3002), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_u_i32_f32 - .{ .tag = @enumFromInt(3003), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_u_i32_f64 - .{ .tag = @enumFromInt(3004), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_u_i64_f32 - .{ .tag = @enumFromInt(3005), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wasm_trunc_u_i64_f64 - .{ .tag = @enumFromInt(3006), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.webassembly), .attributes = .{ .@"const" = true } } }, - // __builtin_wcschr - .{ .tag = @enumFromInt(3007), .param_str = "w*wC*w", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wcscmp - .{ .tag = @enumFromInt(3008), .param_str = "iwC*wC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wcslen - .{ .tag = @enumFromInt(3009), .param_str = "zwC*", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wcsncmp - .{ .tag = @enumFromInt(3010), .param_str = "iwC*wC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wmemchr - .{ .tag = @enumFromInt(3011), .param_str = "w*wC*wz", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wmemcmp - .{ .tag = @enumFromInt(3012), .param_str = "iwC*wC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wmemcpy - .{ .tag = @enumFromInt(3013), .param_str = "w*w*wC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __builtin_wmemmove - .{ .tag = @enumFromInt(3014), .param_str = "w*w*wC*z", .properties = .{ .attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true } } }, - // __c11_atomic_is_lock_free - .{ .tag = @enumFromInt(3015), .param_str = "bz", .properties = .{ .attributes = .{ .const_evaluable = true } } }, - // __c11_atomic_signal_fence - .{ .tag = @enumFromInt(3016), .param_str = "vi", .properties = .{} }, - // __c11_atomic_thread_fence - .{ .tag = @enumFromInt(3017), .param_str = "vi", .properties = .{} }, - // __clear_cache - .{ .tag = @enumFromInt(3018), .param_str = "vv*v*", .properties = .{ .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __cospi - .{ .tag = @enumFromInt(3019), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __cospif - .{ .tag = @enumFromInt(3020), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __debugbreak - .{ .tag = @enumFromInt(3021), .param_str = "v", .properties = .{ .language = .all_ms_languages } }, - // __dmb - .{ .tag = @enumFromInt(3022), .param_str = "vUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __dsb - .{ .tag = @enumFromInt(3023), .param_str = "vUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __emit - .{ .tag = @enumFromInt(3024), .param_str = "vIUiC", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initOne(.arm) } }, - // __exception_code - .{ .tag = @enumFromInt(3025), .param_str = "UNi", .properties = .{ .language = .all_ms_languages } }, - // __exception_info - .{ .tag = @enumFromInt(3026), .param_str = "v*", .properties = .{ .language = .all_ms_languages } }, - // __exp10 - .{ .tag = @enumFromInt(3027), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __exp10f - .{ .tag = @enumFromInt(3028), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __fastfail - .{ .tag = @enumFromInt(3029), .param_str = "vUi", .properties = .{ .language = .all_ms_languages, .attributes = .{ .noreturn = true } } }, - // __finite - .{ .tag = @enumFromInt(3030), .param_str = "id", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // __finitef - .{ .tag = @enumFromInt(3031), .param_str = "if", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // __finitel - .{ .tag = @enumFromInt(3032), .param_str = "iLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // __isb - .{ .tag = @enumFromInt(3033), .param_str = "vUi", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }), .attributes = .{ .@"const" = true } } }, - // __iso_volatile_load16 - .{ .tag = @enumFromInt(3034), .param_str = "ssCD*", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_load32 - .{ .tag = @enumFromInt(3035), .param_str = "iiCD*", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_load64 - .{ .tag = @enumFromInt(3036), .param_str = "LLiLLiCD*", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_load8 - .{ .tag = @enumFromInt(3037), .param_str = "ccCD*", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_store16 - .{ .tag = @enumFromInt(3038), .param_str = "vsD*s", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_store32 - .{ .tag = @enumFromInt(3039), .param_str = "viD*i", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_store64 - .{ .tag = @enumFromInt(3040), .param_str = "vLLiD*LLi", .properties = .{ .language = .all_ms_languages } }, - // __iso_volatile_store8 - .{ .tag = @enumFromInt(3041), .param_str = "vcD*c", .properties = .{ .language = .all_ms_languages } }, - // __ldrexd - .{ .tag = @enumFromInt(3042), .param_str = "WiWiCD*", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initOne(.arm) } }, - // __lzcnt - .{ .tag = @enumFromInt(3043), .param_str = "UiUi", .properties = .{ .language = .all_ms_languages, .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __lzcnt16 - .{ .tag = @enumFromInt(3044), .param_str = "UsUs", .properties = .{ .language = .all_ms_languages, .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __lzcnt64 - .{ .tag = @enumFromInt(3045), .param_str = "UWiUWi", .properties = .{ .language = .all_ms_languages, .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __noop - .{ .tag = @enumFromInt(3046), .param_str = "i.", .properties = .{ .language = .all_ms_languages } }, - // __nvvm_add_rm_d - .{ .tag = @enumFromInt(3047), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rm_f - .{ .tag = @enumFromInt(3048), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rm_ftz_f - .{ .tag = @enumFromInt(3049), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rn_d - .{ .tag = @enumFromInt(3050), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rn_f - .{ .tag = @enumFromInt(3051), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rn_ftz_f - .{ .tag = @enumFromInt(3052), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rp_d - .{ .tag = @enumFromInt(3053), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rp_f - .{ .tag = @enumFromInt(3054), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rp_ftz_f - .{ .tag = @enumFromInt(3055), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rz_d - .{ .tag = @enumFromInt(3056), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rz_f - .{ .tag = @enumFromInt(3057), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_add_rz_ftz_f - .{ .tag = @enumFromInt(3058), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_add_gen_f - .{ .tag = @enumFromInt(3059), .param_str = "ffD*f", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_add_gen_i - .{ .tag = @enumFromInt(3060), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_add_gen_l - .{ .tag = @enumFromInt(3061), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_add_gen_ll - .{ .tag = @enumFromInt(3062), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_and_gen_i - .{ .tag = @enumFromInt(3063), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_and_gen_l - .{ .tag = @enumFromInt(3064), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_and_gen_ll - .{ .tag = @enumFromInt(3065), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_cas_gen_i - .{ .tag = @enumFromInt(3066), .param_str = "iiD*ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_cas_gen_l - .{ .tag = @enumFromInt(3067), .param_str = "LiLiD*LiLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_cas_gen_ll - .{ .tag = @enumFromInt(3068), .param_str = "LLiLLiD*LLiLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_dec_gen_ui - .{ .tag = @enumFromInt(3069), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_inc_gen_ui - .{ .tag = @enumFromInt(3070), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_max_gen_i - .{ .tag = @enumFromInt(3071), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_max_gen_l - .{ .tag = @enumFromInt(3072), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_max_gen_ll - .{ .tag = @enumFromInt(3073), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_max_gen_ui - .{ .tag = @enumFromInt(3074), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_max_gen_ul - .{ .tag = @enumFromInt(3075), .param_str = "ULiULiD*ULi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_max_gen_ull - .{ .tag = @enumFromInt(3076), .param_str = "ULLiULLiD*ULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_min_gen_i - .{ .tag = @enumFromInt(3077), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_min_gen_l - .{ .tag = @enumFromInt(3078), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_min_gen_ll - .{ .tag = @enumFromInt(3079), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_min_gen_ui - .{ .tag = @enumFromInt(3080), .param_str = "UiUiD*Ui", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_min_gen_ul - .{ .tag = @enumFromInt(3081), .param_str = "ULiULiD*ULi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_min_gen_ull - .{ .tag = @enumFromInt(3082), .param_str = "ULLiULLiD*ULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_or_gen_i - .{ .tag = @enumFromInt(3083), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_or_gen_l - .{ .tag = @enumFromInt(3084), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_or_gen_ll - .{ .tag = @enumFromInt(3085), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_sub_gen_i - .{ .tag = @enumFromInt(3086), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_sub_gen_l - .{ .tag = @enumFromInt(3087), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_sub_gen_ll - .{ .tag = @enumFromInt(3088), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_xchg_gen_i - .{ .tag = @enumFromInt(3089), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_xchg_gen_l - .{ .tag = @enumFromInt(3090), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_xchg_gen_ll - .{ .tag = @enumFromInt(3091), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_xor_gen_i - .{ .tag = @enumFromInt(3092), .param_str = "iiD*i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_xor_gen_l - .{ .tag = @enumFromInt(3093), .param_str = "LiLiD*Li", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_atom_xor_gen_ll - .{ .tag = @enumFromInt(3094), .param_str = "LLiLLiD*LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bar0_and - .{ .tag = @enumFromInt(3095), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bar0_or - .{ .tag = @enumFromInt(3096), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bar0_popc - .{ .tag = @enumFromInt(3097), .param_str = "ii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bar_sync - .{ .tag = @enumFromInt(3098), .param_str = "vi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bitcast_d2ll - .{ .tag = @enumFromInt(3099), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bitcast_f2i - .{ .tag = @enumFromInt(3100), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bitcast_i2f - .{ .tag = @enumFromInt(3101), .param_str = "fi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_bitcast_ll2d - .{ .tag = @enumFromInt(3102), .param_str = "dLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ceil_d - .{ .tag = @enumFromInt(3103), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ceil_f - .{ .tag = @enumFromInt(3104), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ceil_ftz_f - .{ .tag = @enumFromInt(3105), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_compiler_error - .{ .tag = @enumFromInt(3106), .param_str = "vcC*4", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_compiler_warn - .{ .tag = @enumFromInt(3107), .param_str = "vcC*4", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_cos_approx_f - .{ .tag = @enumFromInt(3108), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_cos_approx_ftz_f - .{ .tag = @enumFromInt(3109), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rm - .{ .tag = @enumFromInt(3110), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rm_ftz - .{ .tag = @enumFromInt(3111), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rn - .{ .tag = @enumFromInt(3112), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rn_ftz - .{ .tag = @enumFromInt(3113), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rp - .{ .tag = @enumFromInt(3114), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rp_ftz - .{ .tag = @enumFromInt(3115), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rz - .{ .tag = @enumFromInt(3116), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2f_rz_ftz - .{ .tag = @enumFromInt(3117), .param_str = "fd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2i_hi - .{ .tag = @enumFromInt(3118), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2i_lo - .{ .tag = @enumFromInt(3119), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2i_rm - .{ .tag = @enumFromInt(3120), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2i_rn - .{ .tag = @enumFromInt(3121), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2i_rp - .{ .tag = @enumFromInt(3122), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2i_rz - .{ .tag = @enumFromInt(3123), .param_str = "id", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ll_rm - .{ .tag = @enumFromInt(3124), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ll_rn - .{ .tag = @enumFromInt(3125), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ll_rp - .{ .tag = @enumFromInt(3126), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ll_rz - .{ .tag = @enumFromInt(3127), .param_str = "LLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ui_rm - .{ .tag = @enumFromInt(3128), .param_str = "Uid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ui_rn - .{ .tag = @enumFromInt(3129), .param_str = "Uid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ui_rp - .{ .tag = @enumFromInt(3130), .param_str = "Uid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ui_rz - .{ .tag = @enumFromInt(3131), .param_str = "Uid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ull_rm - .{ .tag = @enumFromInt(3132), .param_str = "ULLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ull_rn - .{ .tag = @enumFromInt(3133), .param_str = "ULLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ull_rp - .{ .tag = @enumFromInt(3134), .param_str = "ULLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_d2ull_rz - .{ .tag = @enumFromInt(3135), .param_str = "ULLid", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_approx_f - .{ .tag = @enumFromInt(3136), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_approx_ftz_f - .{ .tag = @enumFromInt(3137), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rm_d - .{ .tag = @enumFromInt(3138), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rm_f - .{ .tag = @enumFromInt(3139), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rm_ftz_f - .{ .tag = @enumFromInt(3140), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rn_d - .{ .tag = @enumFromInt(3141), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rn_f - .{ .tag = @enumFromInt(3142), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rn_ftz_f - .{ .tag = @enumFromInt(3143), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rp_d - .{ .tag = @enumFromInt(3144), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rp_f - .{ .tag = @enumFromInt(3145), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rp_ftz_f - .{ .tag = @enumFromInt(3146), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rz_d - .{ .tag = @enumFromInt(3147), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rz_f - .{ .tag = @enumFromInt(3148), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_div_rz_ftz_f - .{ .tag = @enumFromInt(3149), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ex2_approx_d - .{ .tag = @enumFromInt(3150), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ex2_approx_f - .{ .tag = @enumFromInt(3151), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ex2_approx_ftz_f - .{ .tag = @enumFromInt(3152), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2h_rn - .{ .tag = @enumFromInt(3153), .param_str = "Usf", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2h_rn_ftz - .{ .tag = @enumFromInt(3154), .param_str = "Usf", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rm - .{ .tag = @enumFromInt(3155), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rm_ftz - .{ .tag = @enumFromInt(3156), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rn - .{ .tag = @enumFromInt(3157), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rn_ftz - .{ .tag = @enumFromInt(3158), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rp - .{ .tag = @enumFromInt(3159), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rp_ftz - .{ .tag = @enumFromInt(3160), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rz - .{ .tag = @enumFromInt(3161), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2i_rz_ftz - .{ .tag = @enumFromInt(3162), .param_str = "if", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rm - .{ .tag = @enumFromInt(3163), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rm_ftz - .{ .tag = @enumFromInt(3164), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rn - .{ .tag = @enumFromInt(3165), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rn_ftz - .{ .tag = @enumFromInt(3166), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rp - .{ .tag = @enumFromInt(3167), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rp_ftz - .{ .tag = @enumFromInt(3168), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rz - .{ .tag = @enumFromInt(3169), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ll_rz_ftz - .{ .tag = @enumFromInt(3170), .param_str = "LLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rm - .{ .tag = @enumFromInt(3171), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rm_ftz - .{ .tag = @enumFromInt(3172), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rn - .{ .tag = @enumFromInt(3173), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rn_ftz - .{ .tag = @enumFromInt(3174), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rp - .{ .tag = @enumFromInt(3175), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rp_ftz - .{ .tag = @enumFromInt(3176), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rz - .{ .tag = @enumFromInt(3177), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ui_rz_ftz - .{ .tag = @enumFromInt(3178), .param_str = "Uif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rm - .{ .tag = @enumFromInt(3179), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rm_ftz - .{ .tag = @enumFromInt(3180), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rn - .{ .tag = @enumFromInt(3181), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rn_ftz - .{ .tag = @enumFromInt(3182), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rp - .{ .tag = @enumFromInt(3183), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rp_ftz - .{ .tag = @enumFromInt(3184), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rz - .{ .tag = @enumFromInt(3185), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_f2ull_rz_ftz - .{ .tag = @enumFromInt(3186), .param_str = "ULLif", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fabs_d - .{ .tag = @enumFromInt(3187), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fabs_f - .{ .tag = @enumFromInt(3188), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fabs_ftz_f - .{ .tag = @enumFromInt(3189), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_floor_d - .{ .tag = @enumFromInt(3190), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_floor_f - .{ .tag = @enumFromInt(3191), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_floor_ftz_f - .{ .tag = @enumFromInt(3192), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rm_d - .{ .tag = @enumFromInt(3193), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rm_f - .{ .tag = @enumFromInt(3194), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rm_ftz_f - .{ .tag = @enumFromInt(3195), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rn_d - .{ .tag = @enumFromInt(3196), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rn_f - .{ .tag = @enumFromInt(3197), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rn_ftz_f - .{ .tag = @enumFromInt(3198), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rp_d - .{ .tag = @enumFromInt(3199), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rp_f - .{ .tag = @enumFromInt(3200), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rp_ftz_f - .{ .tag = @enumFromInt(3201), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rz_d - .{ .tag = @enumFromInt(3202), .param_str = "dddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rz_f - .{ .tag = @enumFromInt(3203), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fma_rz_ftz_f - .{ .tag = @enumFromInt(3204), .param_str = "ffff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fmax_d - .{ .tag = @enumFromInt(3205), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fmax_f - .{ .tag = @enumFromInt(3206), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fmax_ftz_f - .{ .tag = @enumFromInt(3207), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fmin_d - .{ .tag = @enumFromInt(3208), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fmin_f - .{ .tag = @enumFromInt(3209), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_fmin_ftz_f - .{ .tag = @enumFromInt(3210), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2d_rm - .{ .tag = @enumFromInt(3211), .param_str = "di", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2d_rn - .{ .tag = @enumFromInt(3212), .param_str = "di", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2d_rp - .{ .tag = @enumFromInt(3213), .param_str = "di", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2d_rz - .{ .tag = @enumFromInt(3214), .param_str = "di", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2f_rm - .{ .tag = @enumFromInt(3215), .param_str = "fi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2f_rn - .{ .tag = @enumFromInt(3216), .param_str = "fi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2f_rp - .{ .tag = @enumFromInt(3217), .param_str = "fi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_i2f_rz - .{ .tag = @enumFromInt(3218), .param_str = "fi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_isspacep_const - .{ .tag = @enumFromInt(3219), .param_str = "bvC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_isspacep_global - .{ .tag = @enumFromInt(3220), .param_str = "bvC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_isspacep_local - .{ .tag = @enumFromInt(3221), .param_str = "bvC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_isspacep_shared - .{ .tag = @enumFromInt(3222), .param_str = "bvC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_ldg_c - .{ .tag = @enumFromInt(3223), .param_str = "ccC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_c2 - .{ .tag = @enumFromInt(3224), .param_str = "E2cE2cC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_c4 - .{ .tag = @enumFromInt(3225), .param_str = "E4cE4cC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_d - .{ .tag = @enumFromInt(3226), .param_str = "ddC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_d2 - .{ .tag = @enumFromInt(3227), .param_str = "E2dE2dC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_f - .{ .tag = @enumFromInt(3228), .param_str = "ffC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_f2 - .{ .tag = @enumFromInt(3229), .param_str = "E2fE2fC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_f4 - .{ .tag = @enumFromInt(3230), .param_str = "E4fE4fC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_h - .{ .tag = @enumFromInt(3231), .param_str = "hhC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_h2 - .{ .tag = @enumFromInt(3232), .param_str = "E2hE2hC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_i - .{ .tag = @enumFromInt(3233), .param_str = "iiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_i2 - .{ .tag = @enumFromInt(3234), .param_str = "E2iE2iC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_i4 - .{ .tag = @enumFromInt(3235), .param_str = "E4iE4iC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_l - .{ .tag = @enumFromInt(3236), .param_str = "LiLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_l2 - .{ .tag = @enumFromInt(3237), .param_str = "E2LiE2LiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ll - .{ .tag = @enumFromInt(3238), .param_str = "LLiLLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ll2 - .{ .tag = @enumFromInt(3239), .param_str = "E2LLiE2LLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_s - .{ .tag = @enumFromInt(3240), .param_str = "ssC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_s2 - .{ .tag = @enumFromInt(3241), .param_str = "E2sE2sC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_s4 - .{ .tag = @enumFromInt(3242), .param_str = "E4sE4sC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_sc - .{ .tag = @enumFromInt(3243), .param_str = "ScScC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_sc2 - .{ .tag = @enumFromInt(3244), .param_str = "E2ScE2ScC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_sc4 - .{ .tag = @enumFromInt(3245), .param_str = "E4ScE4ScC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_uc - .{ .tag = @enumFromInt(3246), .param_str = "UcUcC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_uc2 - .{ .tag = @enumFromInt(3247), .param_str = "E2UcE2UcC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_uc4 - .{ .tag = @enumFromInt(3248), .param_str = "E4UcE4UcC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ui - .{ .tag = @enumFromInt(3249), .param_str = "UiUiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ui2 - .{ .tag = @enumFromInt(3250), .param_str = "E2UiE2UiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ui4 - .{ .tag = @enumFromInt(3251), .param_str = "E4UiE4UiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ul - .{ .tag = @enumFromInt(3252), .param_str = "ULiULiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ul2 - .{ .tag = @enumFromInt(3253), .param_str = "E2ULiE2ULiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ull - .{ .tag = @enumFromInt(3254), .param_str = "ULLiULLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_ull2 - .{ .tag = @enumFromInt(3255), .param_str = "E2ULLiE2ULLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_us - .{ .tag = @enumFromInt(3256), .param_str = "UsUsC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_us2 - .{ .tag = @enumFromInt(3257), .param_str = "E2UsE2UsC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldg_us4 - .{ .tag = @enumFromInt(3258), .param_str = "E4UsE4UsC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_c - .{ .tag = @enumFromInt(3259), .param_str = "ccC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_c2 - .{ .tag = @enumFromInt(3260), .param_str = "E2cE2cC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_c4 - .{ .tag = @enumFromInt(3261), .param_str = "E4cE4cC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_d - .{ .tag = @enumFromInt(3262), .param_str = "ddC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_d2 - .{ .tag = @enumFromInt(3263), .param_str = "E2dE2dC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_f - .{ .tag = @enumFromInt(3264), .param_str = "ffC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_f2 - .{ .tag = @enumFromInt(3265), .param_str = "E2fE2fC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_f4 - .{ .tag = @enumFromInt(3266), .param_str = "E4fE4fC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_h - .{ .tag = @enumFromInt(3267), .param_str = "hhC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_h2 - .{ .tag = @enumFromInt(3268), .param_str = "E2hE2hC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_i - .{ .tag = @enumFromInt(3269), .param_str = "iiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_i2 - .{ .tag = @enumFromInt(3270), .param_str = "E2iE2iC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_i4 - .{ .tag = @enumFromInt(3271), .param_str = "E4iE4iC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_l - .{ .tag = @enumFromInt(3272), .param_str = "LiLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_l2 - .{ .tag = @enumFromInt(3273), .param_str = "E2LiE2LiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ll - .{ .tag = @enumFromInt(3274), .param_str = "LLiLLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ll2 - .{ .tag = @enumFromInt(3275), .param_str = "E2LLiE2LLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_s - .{ .tag = @enumFromInt(3276), .param_str = "ssC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_s2 - .{ .tag = @enumFromInt(3277), .param_str = "E2sE2sC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_s4 - .{ .tag = @enumFromInt(3278), .param_str = "E4sE4sC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_sc - .{ .tag = @enumFromInt(3279), .param_str = "ScScC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_sc2 - .{ .tag = @enumFromInt(3280), .param_str = "E2ScE2ScC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_sc4 - .{ .tag = @enumFromInt(3281), .param_str = "E4ScE4ScC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_uc - .{ .tag = @enumFromInt(3282), .param_str = "UcUcC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_uc2 - .{ .tag = @enumFromInt(3283), .param_str = "E2UcE2UcC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_uc4 - .{ .tag = @enumFromInt(3284), .param_str = "E4UcE4UcC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ui - .{ .tag = @enumFromInt(3285), .param_str = "UiUiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ui2 - .{ .tag = @enumFromInt(3286), .param_str = "E2UiE2UiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ui4 - .{ .tag = @enumFromInt(3287), .param_str = "E4UiE4UiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ul - .{ .tag = @enumFromInt(3288), .param_str = "ULiULiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ul2 - .{ .tag = @enumFromInt(3289), .param_str = "E2ULiE2ULiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ull - .{ .tag = @enumFromInt(3290), .param_str = "ULLiULLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_ull2 - .{ .tag = @enumFromInt(3291), .param_str = "E2ULLiE2ULLiC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_us - .{ .tag = @enumFromInt(3292), .param_str = "UsUsC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_us2 - .{ .tag = @enumFromInt(3293), .param_str = "E2UsE2UsC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ldu_us4 - .{ .tag = @enumFromInt(3294), .param_str = "E4UsE4UsC*", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_lg2_approx_d - .{ .tag = @enumFromInt(3295), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_lg2_approx_f - .{ .tag = @enumFromInt(3296), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_lg2_approx_ftz_f - .{ .tag = @enumFromInt(3297), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2d_rm - .{ .tag = @enumFromInt(3298), .param_str = "dLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2d_rn - .{ .tag = @enumFromInt(3299), .param_str = "dLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2d_rp - .{ .tag = @enumFromInt(3300), .param_str = "dLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2d_rz - .{ .tag = @enumFromInt(3301), .param_str = "dLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2f_rm - .{ .tag = @enumFromInt(3302), .param_str = "fLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2f_rn - .{ .tag = @enumFromInt(3303), .param_str = "fLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2f_rp - .{ .tag = @enumFromInt(3304), .param_str = "fLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ll2f_rz - .{ .tag = @enumFromInt(3305), .param_str = "fLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_lohi_i2d - .{ .tag = @enumFromInt(3306), .param_str = "dii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_membar_cta - .{ .tag = @enumFromInt(3307), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_membar_gl - .{ .tag = @enumFromInt(3308), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_membar_sys - .{ .tag = @enumFromInt(3309), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_memcpy - .{ .tag = @enumFromInt(3310), .param_str = "vUc*Uc*zi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_memset - .{ .tag = @enumFromInt(3311), .param_str = "vUc*Uczi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul24_i - .{ .tag = @enumFromInt(3312), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul24_ui - .{ .tag = @enumFromInt(3313), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rm_d - .{ .tag = @enumFromInt(3314), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rm_f - .{ .tag = @enumFromInt(3315), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rm_ftz_f - .{ .tag = @enumFromInt(3316), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rn_d - .{ .tag = @enumFromInt(3317), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rn_f - .{ .tag = @enumFromInt(3318), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rn_ftz_f - .{ .tag = @enumFromInt(3319), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rp_d - .{ .tag = @enumFromInt(3320), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rp_f - .{ .tag = @enumFromInt(3321), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rp_ftz_f - .{ .tag = @enumFromInt(3322), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rz_d - .{ .tag = @enumFromInt(3323), .param_str = "ddd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rz_f - .{ .tag = @enumFromInt(3324), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mul_rz_ftz_f - .{ .tag = @enumFromInt(3325), .param_str = "fff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mulhi_i - .{ .tag = @enumFromInt(3326), .param_str = "iii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mulhi_ll - .{ .tag = @enumFromInt(3327), .param_str = "LLiLLiLLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mulhi_ui - .{ .tag = @enumFromInt(3328), .param_str = "UiUiUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_mulhi_ull - .{ .tag = @enumFromInt(3329), .param_str = "ULLiULLiULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_prmt - .{ .tag = @enumFromInt(3330), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_approx_ftz_d - .{ .tag = @enumFromInt(3331), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_approx_ftz_f - .{ .tag = @enumFromInt(3332), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rm_d - .{ .tag = @enumFromInt(3333), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rm_f - .{ .tag = @enumFromInt(3334), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rm_ftz_f - .{ .tag = @enumFromInt(3335), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rn_d - .{ .tag = @enumFromInt(3336), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rn_f - .{ .tag = @enumFromInt(3337), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rn_ftz_f - .{ .tag = @enumFromInt(3338), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rp_d - .{ .tag = @enumFromInt(3339), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rp_f - .{ .tag = @enumFromInt(3340), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rp_ftz_f - .{ .tag = @enumFromInt(3341), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rz_d - .{ .tag = @enumFromInt(3342), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rz_f - .{ .tag = @enumFromInt(3343), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rcp_rz_ftz_f - .{ .tag = @enumFromInt(3344), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_clock - .{ .tag = @enumFromInt(3345), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_clock64 - .{ .tag = @enumFromInt(3346), .param_str = "LLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_ctaid_w - .{ .tag = @enumFromInt(3347), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ctaid_x - .{ .tag = @enumFromInt(3348), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ctaid_y - .{ .tag = @enumFromInt(3349), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ctaid_z - .{ .tag = @enumFromInt(3350), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_gridid - .{ .tag = @enumFromInt(3351), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_laneid - .{ .tag = @enumFromInt(3352), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_lanemask_eq - .{ .tag = @enumFromInt(3353), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_lanemask_ge - .{ .tag = @enumFromInt(3354), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_lanemask_gt - .{ .tag = @enumFromInt(3355), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_lanemask_le - .{ .tag = @enumFromInt(3356), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_lanemask_lt - .{ .tag = @enumFromInt(3357), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_nctaid_w - .{ .tag = @enumFromInt(3358), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_nctaid_x - .{ .tag = @enumFromInt(3359), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_nctaid_y - .{ .tag = @enumFromInt(3360), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_nctaid_z - .{ .tag = @enumFromInt(3361), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_nsmid - .{ .tag = @enumFromInt(3362), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ntid_w - .{ .tag = @enumFromInt(3363), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ntid_x - .{ .tag = @enumFromInt(3364), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ntid_y - .{ .tag = @enumFromInt(3365), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_ntid_z - .{ .tag = @enumFromInt(3366), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_nwarpid - .{ .tag = @enumFromInt(3367), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_pm0 - .{ .tag = @enumFromInt(3368), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_pm1 - .{ .tag = @enumFromInt(3369), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_pm2 - .{ .tag = @enumFromInt(3370), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_pm3 - .{ .tag = @enumFromInt(3371), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_read_ptx_sreg_smid - .{ .tag = @enumFromInt(3372), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_tid_w - .{ .tag = @enumFromInt(3373), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_tid_x - .{ .tag = @enumFromInt(3374), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_tid_y - .{ .tag = @enumFromInt(3375), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_tid_z - .{ .tag = @enumFromInt(3376), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_read_ptx_sreg_warpid - .{ .tag = @enumFromInt(3377), .param_str = "i", .properties = .{ .target_set = TargetSet.initOne(.nvptx), .attributes = .{ .@"const" = true } } }, - // __nvvm_round_d - .{ .tag = @enumFromInt(3378), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_round_f - .{ .tag = @enumFromInt(3379), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_round_ftz_f - .{ .tag = @enumFromInt(3380), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rsqrt_approx_d - .{ .tag = @enumFromInt(3381), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rsqrt_approx_f - .{ .tag = @enumFromInt(3382), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_rsqrt_approx_ftz_f - .{ .tag = @enumFromInt(3383), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sad_i - .{ .tag = @enumFromInt(3384), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sad_ui - .{ .tag = @enumFromInt(3385), .param_str = "UiUiUiUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_saturate_d - .{ .tag = @enumFromInt(3386), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_saturate_f - .{ .tag = @enumFromInt(3387), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_saturate_ftz_f - .{ .tag = @enumFromInt(3388), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_bfly_f32 - .{ .tag = @enumFromInt(3389), .param_str = "ffii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_bfly_i32 - .{ .tag = @enumFromInt(3390), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_down_f32 - .{ .tag = @enumFromInt(3391), .param_str = "ffii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_down_i32 - .{ .tag = @enumFromInt(3392), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_idx_f32 - .{ .tag = @enumFromInt(3393), .param_str = "ffii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_idx_i32 - .{ .tag = @enumFromInt(3394), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_up_f32 - .{ .tag = @enumFromInt(3395), .param_str = "ffii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_shfl_up_i32 - .{ .tag = @enumFromInt(3396), .param_str = "iiii", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sin_approx_f - .{ .tag = @enumFromInt(3397), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sin_approx_ftz_f - .{ .tag = @enumFromInt(3398), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_approx_f - .{ .tag = @enumFromInt(3399), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_approx_ftz_f - .{ .tag = @enumFromInt(3400), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rm_d - .{ .tag = @enumFromInt(3401), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rm_f - .{ .tag = @enumFromInt(3402), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rm_ftz_f - .{ .tag = @enumFromInt(3403), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rn_d - .{ .tag = @enumFromInt(3404), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rn_f - .{ .tag = @enumFromInt(3405), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rn_ftz_f - .{ .tag = @enumFromInt(3406), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rp_d - .{ .tag = @enumFromInt(3407), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rp_f - .{ .tag = @enumFromInt(3408), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rp_ftz_f - .{ .tag = @enumFromInt(3409), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rz_d - .{ .tag = @enumFromInt(3410), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rz_f - .{ .tag = @enumFromInt(3411), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_sqrt_rz_ftz_f - .{ .tag = @enumFromInt(3412), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_trunc_d - .{ .tag = @enumFromInt(3413), .param_str = "dd", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_trunc_f - .{ .tag = @enumFromInt(3414), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_trunc_ftz_f - .{ .tag = @enumFromInt(3415), .param_str = "ff", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2d_rm - .{ .tag = @enumFromInt(3416), .param_str = "dUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2d_rn - .{ .tag = @enumFromInt(3417), .param_str = "dUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2d_rp - .{ .tag = @enumFromInt(3418), .param_str = "dUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2d_rz - .{ .tag = @enumFromInt(3419), .param_str = "dUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2f_rm - .{ .tag = @enumFromInt(3420), .param_str = "fUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2f_rn - .{ .tag = @enumFromInt(3421), .param_str = "fUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2f_rp - .{ .tag = @enumFromInt(3422), .param_str = "fUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ui2f_rz - .{ .tag = @enumFromInt(3423), .param_str = "fUi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2d_rm - .{ .tag = @enumFromInt(3424), .param_str = "dULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2d_rn - .{ .tag = @enumFromInt(3425), .param_str = "dULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2d_rp - .{ .tag = @enumFromInt(3426), .param_str = "dULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2d_rz - .{ .tag = @enumFromInt(3427), .param_str = "dULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2f_rm - .{ .tag = @enumFromInt(3428), .param_str = "fULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2f_rn - .{ .tag = @enumFromInt(3429), .param_str = "fULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2f_rp - .{ .tag = @enumFromInt(3430), .param_str = "fULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_ull2f_rz - .{ .tag = @enumFromInt(3431), .param_str = "fULLi", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_vote_all - .{ .tag = @enumFromInt(3432), .param_str = "bb", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_vote_any - .{ .tag = @enumFromInt(3433), .param_str = "bb", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_vote_ballot - .{ .tag = @enumFromInt(3434), .param_str = "Uib", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __nvvm_vote_uni - .{ .tag = @enumFromInt(3435), .param_str = "bb", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __popcnt - .{ .tag = @enumFromInt(3436), .param_str = "UiUi", .properties = .{ .language = .all_ms_languages, .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __popcnt16 - .{ .tag = @enumFromInt(3437), .param_str = "UsUs", .properties = .{ .language = .all_ms_languages, .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __popcnt64 - .{ .tag = @enumFromInt(3438), .param_str = "UWiUWi", .properties = .{ .language = .all_ms_languages, .attributes = .{ .@"const" = true, .const_evaluable = true } } }, - // __rdtsc - .{ .tag = @enumFromInt(3439), .param_str = "UOi", .properties = .{ .target_set = TargetSet.initOne(.x86) } }, - // __sev - .{ .tag = @enumFromInt(3440), .param_str = "v", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __sevl - .{ .tag = @enumFromInt(3441), .param_str = "v", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __sigsetjmp - .{ .tag = @enumFromInt(3442), .param_str = "iSJi", .properties = .{ .header = .setjmp, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // __sinpi - .{ .tag = @enumFromInt(3443), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __sinpif - .{ .tag = @enumFromInt(3444), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __sync_add_and_fetch - .{ .tag = @enumFromInt(3445), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_add_and_fetch_1 - .{ .tag = @enumFromInt(3446), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_add_and_fetch_16 - .{ .tag = @enumFromInt(3447), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_add_and_fetch_2 - .{ .tag = @enumFromInt(3448), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_add_and_fetch_4 - .{ .tag = @enumFromInt(3449), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_add_and_fetch_8 - .{ .tag = @enumFromInt(3450), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_and_and_fetch - .{ .tag = @enumFromInt(3451), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_and_and_fetch_1 - .{ .tag = @enumFromInt(3452), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_and_and_fetch_16 - .{ .tag = @enumFromInt(3453), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_and_and_fetch_2 - .{ .tag = @enumFromInt(3454), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_and_and_fetch_4 - .{ .tag = @enumFromInt(3455), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_and_and_fetch_8 - .{ .tag = @enumFromInt(3456), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_bool_compare_and_swap - .{ .tag = @enumFromInt(3457), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_bool_compare_and_swap_1 - .{ .tag = @enumFromInt(3458), .param_str = "bcD*cc.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_bool_compare_and_swap_16 - .{ .tag = @enumFromInt(3459), .param_str = "bLLLiD*LLLiLLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_bool_compare_and_swap_2 - .{ .tag = @enumFromInt(3460), .param_str = "bsD*ss.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_bool_compare_and_swap_4 - .{ .tag = @enumFromInt(3461), .param_str = "biD*ii.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_bool_compare_and_swap_8 - .{ .tag = @enumFromInt(3462), .param_str = "bLLiD*LLiLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_add - .{ .tag = @enumFromInt(3463), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_add_1 - .{ .tag = @enumFromInt(3464), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_add_16 - .{ .tag = @enumFromInt(3465), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_add_2 - .{ .tag = @enumFromInt(3466), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_add_4 - .{ .tag = @enumFromInt(3467), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_add_8 - .{ .tag = @enumFromInt(3468), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_and - .{ .tag = @enumFromInt(3469), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_and_1 - .{ .tag = @enumFromInt(3470), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_and_16 - .{ .tag = @enumFromInt(3471), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_and_2 - .{ .tag = @enumFromInt(3472), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_and_4 - .{ .tag = @enumFromInt(3473), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_and_8 - .{ .tag = @enumFromInt(3474), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_max - .{ .tag = @enumFromInt(3475), .param_str = "iiD*i", .properties = .{} }, - // __sync_fetch_and_min - .{ .tag = @enumFromInt(3476), .param_str = "iiD*i", .properties = .{} }, - // __sync_fetch_and_nand - .{ .tag = @enumFromInt(3477), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_nand_1 - .{ .tag = @enumFromInt(3478), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_nand_16 - .{ .tag = @enumFromInt(3479), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_nand_2 - .{ .tag = @enumFromInt(3480), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_nand_4 - .{ .tag = @enumFromInt(3481), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_nand_8 - .{ .tag = @enumFromInt(3482), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_or - .{ .tag = @enumFromInt(3483), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_or_1 - .{ .tag = @enumFromInt(3484), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_or_16 - .{ .tag = @enumFromInt(3485), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_or_2 - .{ .tag = @enumFromInt(3486), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_or_4 - .{ .tag = @enumFromInt(3487), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_or_8 - .{ .tag = @enumFromInt(3488), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_sub - .{ .tag = @enumFromInt(3489), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_sub_1 - .{ .tag = @enumFromInt(3490), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_sub_16 - .{ .tag = @enumFromInt(3491), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_sub_2 - .{ .tag = @enumFromInt(3492), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_sub_4 - .{ .tag = @enumFromInt(3493), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_sub_8 - .{ .tag = @enumFromInt(3494), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_umax - .{ .tag = @enumFromInt(3495), .param_str = "UiUiD*Ui", .properties = .{} }, - // __sync_fetch_and_umin - .{ .tag = @enumFromInt(3496), .param_str = "UiUiD*Ui", .properties = .{} }, - // __sync_fetch_and_xor - .{ .tag = @enumFromInt(3497), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_xor_1 - .{ .tag = @enumFromInt(3498), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_xor_16 - .{ .tag = @enumFromInt(3499), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_xor_2 - .{ .tag = @enumFromInt(3500), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_xor_4 - .{ .tag = @enumFromInt(3501), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_fetch_and_xor_8 - .{ .tag = @enumFromInt(3502), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_release - .{ .tag = @enumFromInt(3503), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_release_1 - .{ .tag = @enumFromInt(3504), .param_str = "vcD*.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_release_16 - .{ .tag = @enumFromInt(3505), .param_str = "vLLLiD*.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_release_2 - .{ .tag = @enumFromInt(3506), .param_str = "vsD*.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_release_4 - .{ .tag = @enumFromInt(3507), .param_str = "viD*.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_release_8 - .{ .tag = @enumFromInt(3508), .param_str = "vLLiD*.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_test_and_set - .{ .tag = @enumFromInt(3509), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_test_and_set_1 - .{ .tag = @enumFromInt(3510), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_test_and_set_16 - .{ .tag = @enumFromInt(3511), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_test_and_set_2 - .{ .tag = @enumFromInt(3512), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_test_and_set_4 - .{ .tag = @enumFromInt(3513), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_lock_test_and_set_8 - .{ .tag = @enumFromInt(3514), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_nand_and_fetch - .{ .tag = @enumFromInt(3515), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_nand_and_fetch_1 - .{ .tag = @enumFromInt(3516), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_nand_and_fetch_16 - .{ .tag = @enumFromInt(3517), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_nand_and_fetch_2 - .{ .tag = @enumFromInt(3518), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_nand_and_fetch_4 - .{ .tag = @enumFromInt(3519), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_nand_and_fetch_8 - .{ .tag = @enumFromInt(3520), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_or_and_fetch - .{ .tag = @enumFromInt(3521), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_or_and_fetch_1 - .{ .tag = @enumFromInt(3522), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_or_and_fetch_16 - .{ .tag = @enumFromInt(3523), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_or_and_fetch_2 - .{ .tag = @enumFromInt(3524), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_or_and_fetch_4 - .{ .tag = @enumFromInt(3525), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_or_and_fetch_8 - .{ .tag = @enumFromInt(3526), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_sub_and_fetch - .{ .tag = @enumFromInt(3527), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_sub_and_fetch_1 - .{ .tag = @enumFromInt(3528), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_sub_and_fetch_16 - .{ .tag = @enumFromInt(3529), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_sub_and_fetch_2 - .{ .tag = @enumFromInt(3530), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_sub_and_fetch_4 - .{ .tag = @enumFromInt(3531), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_sub_and_fetch_8 - .{ .tag = @enumFromInt(3532), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_swap - .{ .tag = @enumFromInt(3533), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_swap_1 - .{ .tag = @enumFromInt(3534), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_swap_16 - .{ .tag = @enumFromInt(3535), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_swap_2 - .{ .tag = @enumFromInt(3536), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_swap_4 - .{ .tag = @enumFromInt(3537), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_swap_8 - .{ .tag = @enumFromInt(3538), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_synchronize - .{ .tag = @enumFromInt(3539), .param_str = "v", .properties = .{} }, - // __sync_val_compare_and_swap - .{ .tag = @enumFromInt(3540), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_val_compare_and_swap_1 - .{ .tag = @enumFromInt(3541), .param_str = "ccD*cc.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_val_compare_and_swap_16 - .{ .tag = @enumFromInt(3542), .param_str = "LLLiLLLiD*LLLiLLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_val_compare_and_swap_2 - .{ .tag = @enumFromInt(3543), .param_str = "ssD*ss.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_val_compare_and_swap_4 - .{ .tag = @enumFromInt(3544), .param_str = "iiD*ii.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_val_compare_and_swap_8 - .{ .tag = @enumFromInt(3545), .param_str = "LLiLLiD*LLiLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_xor_and_fetch - .{ .tag = @enumFromInt(3546), .param_str = "v.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_xor_and_fetch_1 - .{ .tag = @enumFromInt(3547), .param_str = "ccD*c.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_xor_and_fetch_16 - .{ .tag = @enumFromInt(3548), .param_str = "LLLiLLLiD*LLLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_xor_and_fetch_2 - .{ .tag = @enumFromInt(3549), .param_str = "ssD*s.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_xor_and_fetch_4 - .{ .tag = @enumFromInt(3550), .param_str = "iiD*i.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __sync_xor_and_fetch_8 - .{ .tag = @enumFromInt(3551), .param_str = "LLiLLiD*LLi.", .properties = .{ .attributes = .{ .custom_typecheck = true } } }, - // __syncthreads - .{ .tag = @enumFromInt(3552), .param_str = "v", .properties = .{ .target_set = TargetSet.initOne(.nvptx) } }, - // __tanpi - .{ .tag = @enumFromInt(3553), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __tanpif - .{ .tag = @enumFromInt(3554), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // __va_start - .{ .tag = @enumFromInt(3555), .param_str = "vc**.", .properties = .{ .language = .all_ms_languages, .attributes = .{ .custom_typecheck = true } } }, - // __warn_memset_zero_len - .{ .tag = @enumFromInt(3556), .param_str = "v", .properties = .{ .attributes = .{ .pure = true } } }, - // __wfe - .{ .tag = @enumFromInt(3557), .param_str = "v", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __wfi - .{ .tag = @enumFromInt(3558), .param_str = "v", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // __xray_customevent - .{ .tag = @enumFromInt(3559), .param_str = "vcC*z", .properties = .{} }, - // __xray_typedevent - .{ .tag = @enumFromInt(3560), .param_str = "vzcC*z", .properties = .{} }, - // __yield - .{ .tag = @enumFromInt(3561), .param_str = "v", .properties = .{ .language = .all_ms_languages, .target_set = TargetSet.initMany(&.{ .aarch64, .arm }) } }, - // _abnormal_termination - .{ .tag = @enumFromInt(3562), .param_str = "i", .properties = .{ .language = .all_ms_languages } }, - // _alloca - .{ .tag = @enumFromInt(3563), .param_str = "v*z", .properties = .{ .language = .all_ms_languages } }, - // _bittest - .{ .tag = @enumFromInt(3564), .param_str = "UcNiC*Ni", .properties = .{ .language = .all_ms_languages } }, - // _bittest64 - .{ .tag = @enumFromInt(3565), .param_str = "UcWiC*Wi", .properties = .{ .language = .all_ms_languages } }, - // _bittestandcomplement - .{ .tag = @enumFromInt(3566), .param_str = "UcNi*Ni", .properties = .{ .language = .all_ms_languages } }, - // _bittestandcomplement64 - .{ .tag = @enumFromInt(3567), .param_str = "UcWi*Wi", .properties = .{ .language = .all_ms_languages } }, - // _bittestandreset - .{ .tag = @enumFromInt(3568), .param_str = "UcNi*Ni", .properties = .{ .language = .all_ms_languages } }, - // _bittestandreset64 - .{ .tag = @enumFromInt(3569), .param_str = "UcWi*Wi", .properties = .{ .language = .all_ms_languages } }, - // _bittestandset - .{ .tag = @enumFromInt(3570), .param_str = "UcNi*Ni", .properties = .{ .language = .all_ms_languages } }, - // _bittestandset64 - .{ .tag = @enumFromInt(3571), .param_str = "UcWi*Wi", .properties = .{ .language = .all_ms_languages } }, - // _byteswap_uint64 - .{ .tag = @enumFromInt(3572), .param_str = "ULLiULLi", .properties = .{ .header = .stdlib, .language = .all_ms_languages, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // _byteswap_ulong - .{ .tag = @enumFromInt(3573), .param_str = "UNiUNi", .properties = .{ .header = .stdlib, .language = .all_ms_languages, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // _byteswap_ushort - .{ .tag = @enumFromInt(3574), .param_str = "UsUs", .properties = .{ .header = .stdlib, .language = .all_ms_languages, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // _exception_code - .{ .tag = @enumFromInt(3575), .param_str = "UNi", .properties = .{ .language = .all_ms_languages } }, - // _exception_info - .{ .tag = @enumFromInt(3576), .param_str = "v*", .properties = .{ .language = .all_ms_languages } }, - // _exit - .{ .tag = @enumFromInt(3577), .param_str = "vi", .properties = .{ .header = .unistd, .language = .all_gnu_languages, .attributes = .{ .noreturn = true, .lib_function_without_prefix = true } } }, - // _interlockedbittestandreset - .{ .tag = @enumFromInt(3578), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandreset64 - .{ .tag = @enumFromInt(3579), .param_str = "UcWiD*Wi", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandreset_acq - .{ .tag = @enumFromInt(3580), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandreset_nf - .{ .tag = @enumFromInt(3581), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandreset_rel - .{ .tag = @enumFromInt(3582), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandset - .{ .tag = @enumFromInt(3583), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandset64 - .{ .tag = @enumFromInt(3584), .param_str = "UcWiD*Wi", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandset_acq - .{ .tag = @enumFromInt(3585), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandset_nf - .{ .tag = @enumFromInt(3586), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _interlockedbittestandset_rel - .{ .tag = @enumFromInt(3587), .param_str = "UcNiD*Ni", .properties = .{ .language = .all_ms_languages } }, - // _longjmp - .{ .tag = @enumFromInt(3588), .param_str = "vJi", .properties = .{ .header = .setjmp, .language = .all_gnu_languages, .attributes = .{ .noreturn = true, .allow_type_mismatch = true, .lib_function_without_prefix = true } } }, - // _lrotl - .{ .tag = @enumFromInt(3589), .param_str = "ULiULii", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _lrotr - .{ .tag = @enumFromInt(3590), .param_str = "ULiULii", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotl - .{ .tag = @enumFromInt(3591), .param_str = "UiUii", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotl16 - .{ .tag = @enumFromInt(3592), .param_str = "UsUsUc", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotl64 - .{ .tag = @enumFromInt(3593), .param_str = "UWiUWii", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotl8 - .{ .tag = @enumFromInt(3594), .param_str = "UcUcUc", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotr - .{ .tag = @enumFromInt(3595), .param_str = "UiUii", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotr16 - .{ .tag = @enumFromInt(3596), .param_str = "UsUsUc", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotr64 - .{ .tag = @enumFromInt(3597), .param_str = "UWiUWii", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _rotr8 - .{ .tag = @enumFromInt(3598), .param_str = "UcUcUc", .properties = .{ .language = .all_ms_languages, .attributes = .{ .const_evaluable = true } } }, - // _setjmp - .{ .tag = @enumFromInt(3599), .param_str = "iJ", .properties = .{ .header = .setjmp, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // _setjmpex - .{ .tag = @enumFromInt(3600), .param_str = "iJ", .properties = .{ .header = .setjmpex, .language = .all_ms_languages, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // abort - .{ .tag = @enumFromInt(3601), .param_str = "v", .properties = .{ .header = .stdlib, .attributes = .{ .noreturn = true, .lib_function_without_prefix = true } } }, - // abs - .{ .tag = @enumFromInt(3602), .param_str = "ii", .properties = .{ .header = .stdlib, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // acos - .{ .tag = @enumFromInt(3603), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // acosf - .{ .tag = @enumFromInt(3604), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // acosh - .{ .tag = @enumFromInt(3605), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // acoshf - .{ .tag = @enumFromInt(3606), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // acoshl - .{ .tag = @enumFromInt(3607), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // acosl - .{ .tag = @enumFromInt(3608), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // aligned_alloc - .{ .tag = @enumFromInt(3609), .param_str = "v*zz", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // alloca - .{ .tag = @enumFromInt(3610), .param_str = "v*z", .properties = .{ .header = .stdlib, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // asin - .{ .tag = @enumFromInt(3611), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // asinf - .{ .tag = @enumFromInt(3612), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // asinh - .{ .tag = @enumFromInt(3613), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // asinhf - .{ .tag = @enumFromInt(3614), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // asinhl - .{ .tag = @enumFromInt(3615), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // asinl - .{ .tag = @enumFromInt(3616), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atan - .{ .tag = @enumFromInt(3617), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atan2 - .{ .tag = @enumFromInt(3618), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atan2f - .{ .tag = @enumFromInt(3619), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atan2l - .{ .tag = @enumFromInt(3620), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atanf - .{ .tag = @enumFromInt(3621), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atanh - .{ .tag = @enumFromInt(3622), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atanhf - .{ .tag = @enumFromInt(3623), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atanhl - .{ .tag = @enumFromInt(3624), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // atanl - .{ .tag = @enumFromInt(3625), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // bcmp - .{ .tag = @enumFromInt(3626), .param_str = "ivC*vC*z", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // bcopy - .{ .tag = @enumFromInt(3627), .param_str = "vvC*v*z", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // bzero - .{ .tag = @enumFromInt(3628), .param_str = "vv*z", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // cabs - .{ .tag = @enumFromInt(3629), .param_str = "dXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cabsf - .{ .tag = @enumFromInt(3630), .param_str = "fXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cabsl - .{ .tag = @enumFromInt(3631), .param_str = "LdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cacos - .{ .tag = @enumFromInt(3632), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cacosf - .{ .tag = @enumFromInt(3633), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cacosh - .{ .tag = @enumFromInt(3634), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cacoshf - .{ .tag = @enumFromInt(3635), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cacoshl - .{ .tag = @enumFromInt(3636), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cacosl - .{ .tag = @enumFromInt(3637), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // calloc - .{ .tag = @enumFromInt(3638), .param_str = "v*zz", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // carg - .{ .tag = @enumFromInt(3639), .param_str = "dXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cargf - .{ .tag = @enumFromInt(3640), .param_str = "fXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cargl - .{ .tag = @enumFromInt(3641), .param_str = "LdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // casin - .{ .tag = @enumFromInt(3642), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // casinf - .{ .tag = @enumFromInt(3643), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // casinh - .{ .tag = @enumFromInt(3644), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // casinhf - .{ .tag = @enumFromInt(3645), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // casinhl - .{ .tag = @enumFromInt(3646), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // casinl - .{ .tag = @enumFromInt(3647), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // catan - .{ .tag = @enumFromInt(3648), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // catanf - .{ .tag = @enumFromInt(3649), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // catanh - .{ .tag = @enumFromInt(3650), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // catanhf - .{ .tag = @enumFromInt(3651), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // catanhl - .{ .tag = @enumFromInt(3652), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // catanl - .{ .tag = @enumFromInt(3653), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cbrt - .{ .tag = @enumFromInt(3654), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cbrtf - .{ .tag = @enumFromInt(3655), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cbrtl - .{ .tag = @enumFromInt(3656), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // ccos - .{ .tag = @enumFromInt(3657), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ccosf - .{ .tag = @enumFromInt(3658), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ccosh - .{ .tag = @enumFromInt(3659), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ccoshf - .{ .tag = @enumFromInt(3660), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ccoshl - .{ .tag = @enumFromInt(3661), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ccosl - .{ .tag = @enumFromInt(3662), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ceil - .{ .tag = @enumFromInt(3663), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // ceilf - .{ .tag = @enumFromInt(3664), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // ceill - .{ .tag = @enumFromInt(3665), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cexp - .{ .tag = @enumFromInt(3666), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cexpf - .{ .tag = @enumFromInt(3667), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cexpl - .{ .tag = @enumFromInt(3668), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cimag - .{ .tag = @enumFromInt(3669), .param_str = "dXd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cimagf - .{ .tag = @enumFromInt(3670), .param_str = "fXf", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cimagl - .{ .tag = @enumFromInt(3671), .param_str = "LdXLd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // clog - .{ .tag = @enumFromInt(3672), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // clogf - .{ .tag = @enumFromInt(3673), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // clogl - .{ .tag = @enumFromInt(3674), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // conj - .{ .tag = @enumFromInt(3675), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // conjf - .{ .tag = @enumFromInt(3676), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // conjl - .{ .tag = @enumFromInt(3677), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // copysign - .{ .tag = @enumFromInt(3678), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // copysignf - .{ .tag = @enumFromInt(3679), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // copysignl - .{ .tag = @enumFromInt(3680), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cos - .{ .tag = @enumFromInt(3681), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cosf - .{ .tag = @enumFromInt(3682), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cosh - .{ .tag = @enumFromInt(3683), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // coshf - .{ .tag = @enumFromInt(3684), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // coshl - .{ .tag = @enumFromInt(3685), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cosl - .{ .tag = @enumFromInt(3686), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cpow - .{ .tag = @enumFromInt(3687), .param_str = "XdXdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cpowf - .{ .tag = @enumFromInt(3688), .param_str = "XfXfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cpowl - .{ .tag = @enumFromInt(3689), .param_str = "XLdXLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // cproj - .{ .tag = @enumFromInt(3690), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cprojf - .{ .tag = @enumFromInt(3691), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // cprojl - .{ .tag = @enumFromInt(3692), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // creal - .{ .tag = @enumFromInt(3693), .param_str = "dXd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // crealf - .{ .tag = @enumFromInt(3694), .param_str = "fXf", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // creall - .{ .tag = @enumFromInt(3695), .param_str = "LdXLd", .properties = .{ .header = .complex, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // csin - .{ .tag = @enumFromInt(3696), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csinf - .{ .tag = @enumFromInt(3697), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csinh - .{ .tag = @enumFromInt(3698), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csinhf - .{ .tag = @enumFromInt(3699), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csinhl - .{ .tag = @enumFromInt(3700), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csinl - .{ .tag = @enumFromInt(3701), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csqrt - .{ .tag = @enumFromInt(3702), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csqrtf - .{ .tag = @enumFromInt(3703), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // csqrtl - .{ .tag = @enumFromInt(3704), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ctan - .{ .tag = @enumFromInt(3705), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ctanf - .{ .tag = @enumFromInt(3706), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ctanh - .{ .tag = @enumFromInt(3707), .param_str = "XdXd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ctanhf - .{ .tag = @enumFromInt(3708), .param_str = "XfXf", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ctanhl - .{ .tag = @enumFromInt(3709), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ctanl - .{ .tag = @enumFromInt(3710), .param_str = "XLdXLd", .properties = .{ .header = .complex, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // erf - .{ .tag = @enumFromInt(3711), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // erfc - .{ .tag = @enumFromInt(3712), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // erfcf - .{ .tag = @enumFromInt(3713), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // erfcl - .{ .tag = @enumFromInt(3714), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // erff - .{ .tag = @enumFromInt(3715), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // erfl - .{ .tag = @enumFromInt(3716), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // exit - .{ .tag = @enumFromInt(3717), .param_str = "vi", .properties = .{ .header = .stdlib, .attributes = .{ .noreturn = true, .lib_function_without_prefix = true } } }, - // exp - .{ .tag = @enumFromInt(3718), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // exp2 - .{ .tag = @enumFromInt(3719), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // exp2f - .{ .tag = @enumFromInt(3720), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // exp2l - .{ .tag = @enumFromInt(3721), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // expf - .{ .tag = @enumFromInt(3722), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // expl - .{ .tag = @enumFromInt(3723), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // expm1 - .{ .tag = @enumFromInt(3724), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // expm1f - .{ .tag = @enumFromInt(3725), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // expm1l - .{ .tag = @enumFromInt(3726), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fabs - .{ .tag = @enumFromInt(3727), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fabsf - .{ .tag = @enumFromInt(3728), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fabsl - .{ .tag = @enumFromInt(3729), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fdim - .{ .tag = @enumFromInt(3730), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fdimf - .{ .tag = @enumFromInt(3731), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fdiml - .{ .tag = @enumFromInt(3732), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // finite - .{ .tag = @enumFromInt(3733), .param_str = "id", .properties = .{ .header = .math, .language = .gnu_lang, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // finitef - .{ .tag = @enumFromInt(3734), .param_str = "if", .properties = .{ .header = .math, .language = .gnu_lang, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // finitel - .{ .tag = @enumFromInt(3735), .param_str = "iLd", .properties = .{ .header = .math, .language = .gnu_lang, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // floor - .{ .tag = @enumFromInt(3736), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // floorf - .{ .tag = @enumFromInt(3737), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // floorl - .{ .tag = @enumFromInt(3738), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fma - .{ .tag = @enumFromInt(3739), .param_str = "dddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fmaf - .{ .tag = @enumFromInt(3740), .param_str = "ffff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fmal - .{ .tag = @enumFromInt(3741), .param_str = "LdLdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fmax - .{ .tag = @enumFromInt(3742), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fmaxf - .{ .tag = @enumFromInt(3743), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fmaxl - .{ .tag = @enumFromInt(3744), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fmin - .{ .tag = @enumFromInt(3745), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fminf - .{ .tag = @enumFromInt(3746), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fminl - .{ .tag = @enumFromInt(3747), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // fmod - .{ .tag = @enumFromInt(3748), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fmodf - .{ .tag = @enumFromInt(3749), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fmodl - .{ .tag = @enumFromInt(3750), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // fopen - .{ .tag = @enumFromInt(3751), .param_str = "P*cC*cC*", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true } } }, - // fprintf - .{ .tag = @enumFromInt(3752), .param_str = "iP*cC*.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf, .format_string_position = 1 } } }, - // fread - .{ .tag = @enumFromInt(3753), .param_str = "zv*zzP*", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true } } }, - // free - .{ .tag = @enumFromInt(3754), .param_str = "vv*", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // frexp - .{ .tag = @enumFromInt(3755), .param_str = "ddi*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // frexpf - .{ .tag = @enumFromInt(3756), .param_str = "ffi*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // frexpl - .{ .tag = @enumFromInt(3757), .param_str = "LdLdi*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // fscanf - .{ .tag = @enumFromInt(3758), .param_str = "iP*RcC*R.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .scanf, .format_string_position = 1 } } }, - // fwrite - .{ .tag = @enumFromInt(3759), .param_str = "zvC*zzP*", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true } } }, - // getcontext - .{ .tag = @enumFromInt(3760), .param_str = "iK*", .properties = .{ .header = .setjmp, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // hypot - .{ .tag = @enumFromInt(3761), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // hypotf - .{ .tag = @enumFromInt(3762), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // hypotl - .{ .tag = @enumFromInt(3763), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ilogb - .{ .tag = @enumFromInt(3764), .param_str = "id", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ilogbf - .{ .tag = @enumFromInt(3765), .param_str = "if", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ilogbl - .{ .tag = @enumFromInt(3766), .param_str = "iLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // index - .{ .tag = @enumFromInt(3767), .param_str = "c*cC*i", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // isalnum - .{ .tag = @enumFromInt(3768), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isalpha - .{ .tag = @enumFromInt(3769), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isblank - .{ .tag = @enumFromInt(3770), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // iscntrl - .{ .tag = @enumFromInt(3771), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isdigit - .{ .tag = @enumFromInt(3772), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isgraph - .{ .tag = @enumFromInt(3773), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // islower - .{ .tag = @enumFromInt(3774), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isprint - .{ .tag = @enumFromInt(3775), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // ispunct - .{ .tag = @enumFromInt(3776), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isspace - .{ .tag = @enumFromInt(3777), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isupper - .{ .tag = @enumFromInt(3778), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // isxdigit - .{ .tag = @enumFromInt(3779), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // labs - .{ .tag = @enumFromInt(3780), .param_str = "LiLi", .properties = .{ .header = .stdlib, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // ldexp - .{ .tag = @enumFromInt(3781), .param_str = "ddi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ldexpf - .{ .tag = @enumFromInt(3782), .param_str = "ffi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // ldexpl - .{ .tag = @enumFromInt(3783), .param_str = "LdLdi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // lgamma - .{ .tag = @enumFromInt(3784), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // lgammaf - .{ .tag = @enumFromInt(3785), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // lgammal - .{ .tag = @enumFromInt(3786), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // llabs - .{ .tag = @enumFromInt(3787), .param_str = "LLiLLi", .properties = .{ .header = .stdlib, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // llrint - .{ .tag = @enumFromInt(3788), .param_str = "LLid", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // llrintf - .{ .tag = @enumFromInt(3789), .param_str = "LLif", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // llrintl - .{ .tag = @enumFromInt(3790), .param_str = "LLiLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // llround - .{ .tag = @enumFromInt(3791), .param_str = "LLid", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // llroundf - .{ .tag = @enumFromInt(3792), .param_str = "LLif", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // llroundl - .{ .tag = @enumFromInt(3793), .param_str = "LLiLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log - .{ .tag = @enumFromInt(3794), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log10 - .{ .tag = @enumFromInt(3795), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log10f - .{ .tag = @enumFromInt(3796), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log10l - .{ .tag = @enumFromInt(3797), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log1p - .{ .tag = @enumFromInt(3798), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log1pf - .{ .tag = @enumFromInt(3799), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log1pl - .{ .tag = @enumFromInt(3800), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log2 - .{ .tag = @enumFromInt(3801), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log2f - .{ .tag = @enumFromInt(3802), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // log2l - .{ .tag = @enumFromInt(3803), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // logb - .{ .tag = @enumFromInt(3804), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // logbf - .{ .tag = @enumFromInt(3805), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // logbl - .{ .tag = @enumFromInt(3806), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // logf - .{ .tag = @enumFromInt(3807), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // logl - .{ .tag = @enumFromInt(3808), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // longjmp - .{ .tag = @enumFromInt(3809), .param_str = "vJi", .properties = .{ .header = .setjmp, .attributes = .{ .noreturn = true, .allow_type_mismatch = true, .lib_function_without_prefix = true } } }, - // lrint - .{ .tag = @enumFromInt(3810), .param_str = "Lid", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // lrintf - .{ .tag = @enumFromInt(3811), .param_str = "Lif", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // lrintl - .{ .tag = @enumFromInt(3812), .param_str = "LiLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // lround - .{ .tag = @enumFromInt(3813), .param_str = "Lid", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // lroundf - .{ .tag = @enumFromInt(3814), .param_str = "Lif", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // lroundl - .{ .tag = @enumFromInt(3815), .param_str = "LiLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // malloc - .{ .tag = @enumFromInt(3816), .param_str = "v*z", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // memalign - .{ .tag = @enumFromInt(3817), .param_str = "v*zz", .properties = .{ .header = .malloc, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // memccpy - .{ .tag = @enumFromInt(3818), .param_str = "v*v*vC*iz", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // memchr - .{ .tag = @enumFromInt(3819), .param_str = "v*vC*iz", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // memcmp - .{ .tag = @enumFromInt(3820), .param_str = "ivC*vC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // memcpy - .{ .tag = @enumFromInt(3821), .param_str = "v*v*vC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // memmove - .{ .tag = @enumFromInt(3822), .param_str = "v*v*vC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // mempcpy - .{ .tag = @enumFromInt(3823), .param_str = "v*v*vC*z", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // memset - .{ .tag = @enumFromInt(3824), .param_str = "v*v*iz", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // modf - .{ .tag = @enumFromInt(3825), .param_str = "ddd*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // modff - .{ .tag = @enumFromInt(3826), .param_str = "fff*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // modfl - .{ .tag = @enumFromInt(3827), .param_str = "LdLdLd*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // nan - .{ .tag = @enumFromInt(3828), .param_str = "dcC*", .properties = .{ .header = .math, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // nanf - .{ .tag = @enumFromInt(3829), .param_str = "fcC*", .properties = .{ .header = .math, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // nanl - .{ .tag = @enumFromInt(3830), .param_str = "LdcC*", .properties = .{ .header = .math, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // nearbyint - .{ .tag = @enumFromInt(3831), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // nearbyintf - .{ .tag = @enumFromInt(3832), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // nearbyintl - .{ .tag = @enumFromInt(3833), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // nextafter - .{ .tag = @enumFromInt(3834), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // nextafterf - .{ .tag = @enumFromInt(3835), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // nextafterl - .{ .tag = @enumFromInt(3836), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // nexttoward - .{ .tag = @enumFromInt(3837), .param_str = "ddLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // nexttowardf - .{ .tag = @enumFromInt(3838), .param_str = "ffLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // nexttowardl - .{ .tag = @enumFromInt(3839), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // pow - .{ .tag = @enumFromInt(3840), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // powf - .{ .tag = @enumFromInt(3841), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // powl - .{ .tag = @enumFromInt(3842), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // printf - .{ .tag = @enumFromInt(3843), .param_str = "icC*.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf } } }, - // realloc - .{ .tag = @enumFromInt(3844), .param_str = "v*v*z", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // remainder - .{ .tag = @enumFromInt(3845), .param_str = "ddd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // remainderf - .{ .tag = @enumFromInt(3846), .param_str = "fff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // remainderl - .{ .tag = @enumFromInt(3847), .param_str = "LdLdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // remquo - .{ .tag = @enumFromInt(3848), .param_str = "dddi*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // remquof - .{ .tag = @enumFromInt(3849), .param_str = "fffi*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // remquol - .{ .tag = @enumFromInt(3850), .param_str = "LdLdLdi*", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true } } }, - // rindex - .{ .tag = @enumFromInt(3851), .param_str = "c*cC*i", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // rint - .{ .tag = @enumFromInt(3852), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_fp_exceptions = true } } }, - // rintf - .{ .tag = @enumFromInt(3853), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_fp_exceptions = true } } }, - // rintl - .{ .tag = @enumFromInt(3854), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_fp_exceptions = true } } }, - // round - .{ .tag = @enumFromInt(3855), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // roundeven - .{ .tag = @enumFromInt(3856), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // roundevenf - .{ .tag = @enumFromInt(3857), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // roundevenl - .{ .tag = @enumFromInt(3858), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // roundf - .{ .tag = @enumFromInt(3859), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // roundl - .{ .tag = @enumFromInt(3860), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // savectx - .{ .tag = @enumFromInt(3861), .param_str = "iJ", .properties = .{ .header = .setjmp, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // scalbln - .{ .tag = @enumFromInt(3862), .param_str = "ddLi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // scalblnf - .{ .tag = @enumFromInt(3863), .param_str = "ffLi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // scalblnl - .{ .tag = @enumFromInt(3864), .param_str = "LdLdLi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // scalbn - .{ .tag = @enumFromInt(3865), .param_str = "ddi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // scalbnf - .{ .tag = @enumFromInt(3866), .param_str = "ffi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // scalbnl - .{ .tag = @enumFromInt(3867), .param_str = "LdLdi", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // scanf - .{ .tag = @enumFromInt(3868), .param_str = "icC*R.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .scanf } } }, - // setjmp - .{ .tag = @enumFromInt(3869), .param_str = "iJ", .properties = .{ .header = .setjmp, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // siglongjmp - .{ .tag = @enumFromInt(3870), .param_str = "vSJi", .properties = .{ .header = .setjmp, .language = .all_gnu_languages, .attributes = .{ .noreturn = true, .allow_type_mismatch = true, .lib_function_without_prefix = true } } }, - // sigsetjmp - .{ .tag = @enumFromInt(3871), .param_str = "iSJi", .properties = .{ .header = .setjmp, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // sin - .{ .tag = @enumFromInt(3872), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sinf - .{ .tag = @enumFromInt(3873), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sinh - .{ .tag = @enumFromInt(3874), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sinhf - .{ .tag = @enumFromInt(3875), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sinhl - .{ .tag = @enumFromInt(3876), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sinl - .{ .tag = @enumFromInt(3877), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // snprintf - .{ .tag = @enumFromInt(3878), .param_str = "ic*zcC*.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf, .format_string_position = 2 } } }, - // sprintf - .{ .tag = @enumFromInt(3879), .param_str = "ic*cC*.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf, .format_string_position = 1 } } }, - // sqrt - .{ .tag = @enumFromInt(3880), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sqrtf - .{ .tag = @enumFromInt(3881), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sqrtl - .{ .tag = @enumFromInt(3882), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // sscanf - .{ .tag = @enumFromInt(3883), .param_str = "icC*RcC*R.", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .scanf, .format_string_position = 1 } } }, - // stpcpy - .{ .tag = @enumFromInt(3884), .param_str = "c*c*cC*", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // stpncpy - .{ .tag = @enumFromInt(3885), .param_str = "c*c*cC*z", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strcasecmp - .{ .tag = @enumFromInt(3886), .param_str = "icC*cC*", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strcat - .{ .tag = @enumFromInt(3887), .param_str = "c*c*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strchr - .{ .tag = @enumFromInt(3888), .param_str = "c*cC*i", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // strcmp - .{ .tag = @enumFromInt(3889), .param_str = "icC*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // strcpy - .{ .tag = @enumFromInt(3890), .param_str = "c*c*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strcspn - .{ .tag = @enumFromInt(3891), .param_str = "zcC*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strdup - .{ .tag = @enumFromInt(3892), .param_str = "c*cC*", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strerror - .{ .tag = @enumFromInt(3893), .param_str = "c*i", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strlcat - .{ .tag = @enumFromInt(3894), .param_str = "zc*cC*z", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strlcpy - .{ .tag = @enumFromInt(3895), .param_str = "zc*cC*z", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strlen - .{ .tag = @enumFromInt(3896), .param_str = "zcC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // strncasecmp - .{ .tag = @enumFromInt(3897), .param_str = "icC*cC*z", .properties = .{ .header = .strings, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strncat - .{ .tag = @enumFromInt(3898), .param_str = "c*c*cC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strncmp - .{ .tag = @enumFromInt(3899), .param_str = "icC*cC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // strncpy - .{ .tag = @enumFromInt(3900), .param_str = "c*c*cC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strndup - .{ .tag = @enumFromInt(3901), .param_str = "c*cC*z", .properties = .{ .header = .string, .language = .all_gnu_languages, .attributes = .{ .lib_function_without_prefix = true } } }, - // strpbrk - .{ .tag = @enumFromInt(3902), .param_str = "c*cC*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strrchr - .{ .tag = @enumFromInt(3903), .param_str = "c*cC*i", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strspn - .{ .tag = @enumFromInt(3904), .param_str = "zcC*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strstr - .{ .tag = @enumFromInt(3905), .param_str = "c*cC*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtod - .{ .tag = @enumFromInt(3906), .param_str = "dcC*c**", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtof - .{ .tag = @enumFromInt(3907), .param_str = "fcC*c**", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtok - .{ .tag = @enumFromInt(3908), .param_str = "c*c*cC*", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtol - .{ .tag = @enumFromInt(3909), .param_str = "LicC*c**i", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtold - .{ .tag = @enumFromInt(3910), .param_str = "LdcC*c**", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtoll - .{ .tag = @enumFromInt(3911), .param_str = "LLicC*c**i", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtoul - .{ .tag = @enumFromInt(3912), .param_str = "ULicC*c**i", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strtoull - .{ .tag = @enumFromInt(3913), .param_str = "ULLicC*c**i", .properties = .{ .header = .stdlib, .attributes = .{ .lib_function_without_prefix = true } } }, - // strxfrm - .{ .tag = @enumFromInt(3914), .param_str = "zc*cC*z", .properties = .{ .header = .string, .attributes = .{ .lib_function_without_prefix = true } } }, - // tan - .{ .tag = @enumFromInt(3915), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tanf - .{ .tag = @enumFromInt(3916), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tanh - .{ .tag = @enumFromInt(3917), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tanhf - .{ .tag = @enumFromInt(3918), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tanhl - .{ .tag = @enumFromInt(3919), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tanl - .{ .tag = @enumFromInt(3920), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tgamma - .{ .tag = @enumFromInt(3921), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tgammaf - .{ .tag = @enumFromInt(3922), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tgammal - .{ .tag = @enumFromInt(3923), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true } } }, - // tolower - .{ .tag = @enumFromInt(3924), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // toupper - .{ .tag = @enumFromInt(3925), .param_str = "ii", .properties = .{ .header = .ctype, .attributes = .{ .pure = true, .lib_function_without_prefix = true } } }, - // trunc - .{ .tag = @enumFromInt(3926), .param_str = "dd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // truncf - .{ .tag = @enumFromInt(3927), .param_str = "ff", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // truncl - .{ .tag = @enumFromInt(3928), .param_str = "LdLd", .properties = .{ .header = .math, .attributes = .{ .@"const" = true, .lib_function_without_prefix = true } } }, - // va_copy - .{ .tag = @enumFromInt(3929), .param_str = "vAA", .properties = .{ .header = .stdarg, .attributes = .{ .lib_function_without_prefix = true } } }, - // va_end - .{ .tag = @enumFromInt(3930), .param_str = "vA", .properties = .{ .header = .stdarg, .attributes = .{ .lib_function_without_prefix = true } } }, - // va_start - .{ .tag = @enumFromInt(3931), .param_str = "vA.", .properties = .{ .header = .stdarg, .attributes = .{ .lib_function_without_prefix = true } } }, - // vfork - .{ .tag = @enumFromInt(3932), .param_str = "p", .properties = .{ .header = .unistd, .attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true } } }, - // vfprintf - .{ .tag = @enumFromInt(3933), .param_str = "iP*cC*a", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf, .format_string_position = 1 } } }, - // vfscanf - .{ .tag = @enumFromInt(3934), .param_str = "iP*RcC*Ra", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vscanf, .format_string_position = 1 } } }, - // vprintf - .{ .tag = @enumFromInt(3935), .param_str = "icC*a", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf } } }, - // vscanf - .{ .tag = @enumFromInt(3936), .param_str = "icC*Ra", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vscanf } } }, - // vsnprintf - .{ .tag = @enumFromInt(3937), .param_str = "ic*zcC*a", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf, .format_string_position = 2 } } }, - // vsprintf - .{ .tag = @enumFromInt(3938), .param_str = "ic*cC*a", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf, .format_string_position = 1 } } }, - // vsscanf - .{ .tag = @enumFromInt(3939), .param_str = "icC*RcC*Ra", .properties = .{ .header = .stdio, .attributes = .{ .lib_function_without_prefix = true, .format_kind = .vscanf, .format_string_position = 1 } } }, - // wcschr - .{ .tag = @enumFromInt(3940), .param_str = "w*wC*w", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wcscmp - .{ .tag = @enumFromInt(3941), .param_str = "iwC*wC*", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wcslen - .{ .tag = @enumFromInt(3942), .param_str = "zwC*", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wcsncmp - .{ .tag = @enumFromInt(3943), .param_str = "iwC*wC*z", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wmemchr - .{ .tag = @enumFromInt(3944), .param_str = "w*wC*wz", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wmemcmp - .{ .tag = @enumFromInt(3945), .param_str = "iwC*wC*z", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wmemcpy - .{ .tag = @enumFromInt(3946), .param_str = "w*w*wC*z", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - // wmemmove - .{ .tag = @enumFromInt(3947), .param_str = "w*w*wC*z", .properties = .{ .header = .wchar, .attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true } } }, - }; -}; diff --git a/deps/aro/CharInfo.zig b/deps/aro/CharInfo.zig deleted file mode 100644 index f5935fd56c..0000000000 --- a/deps/aro/CharInfo.zig +++ /dev/null @@ -1,487 +0,0 @@ -//! This module provides functions for classifying characters according to -//! various C standards. All classification routines *do not* consider -//! characters from the basic character set; it is assumed those will be -//! checked separately - -const assert = @import("std").debug.assert; - -/// C11 Standard Annex D -pub fn isC11IdChar(codepoint: u21) bool { - assert(codepoint > 0x7F); - return switch (codepoint) { - // 1 - 0x00A8, - 0x00AA, - 0x00AD, - 0x00AF, - 0x00B2...0x00B5, - 0x00B7...0x00BA, - 0x00BC...0x00BE, - 0x00C0...0x00D6, - 0x00D8...0x00F6, - 0x00F8...0x00FF, - - // 2 - 0x0100...0x167F, - 0x1681...0x180D, - 0x180F...0x1FFF, - - // 3 - 0x200B...0x200D, - 0x202A...0x202E, - 0x203F...0x2040, - 0x2054, - 0x2060...0x206F, - - // 4 - 0x2070...0x218F, - 0x2460...0x24FF, - 0x2776...0x2793, - 0x2C00...0x2DFF, - 0x2E80...0x2FFF, - - // 5 - 0x3004...0x3007, - 0x3021...0x302F, - 0x3031...0x303F, - - // 6 - 0x3040...0xD7FF, - - // 7 - 0xF900...0xFD3D, - 0xFD40...0xFDCF, - 0xFDF0...0xFE44, - 0xFE47...0xFFFD, - - // 8 - 0x10000...0x1FFFD, - 0x20000...0x2FFFD, - 0x30000...0x3FFFD, - 0x40000...0x4FFFD, - 0x50000...0x5FFFD, - 0x60000...0x6FFFD, - 0x70000...0x7FFFD, - 0x80000...0x8FFFD, - 0x90000...0x9FFFD, - 0xA0000...0xAFFFD, - 0xB0000...0xBFFFD, - 0xC0000...0xCFFFD, - 0xD0000...0xDFFFD, - 0xE0000...0xEFFFD, - => true, - else => false, - }; -} - -/// C99 Standard Annex D -pub fn isC99IdChar(codepoint: u21) bool { - assert(codepoint > 0x7F); - return switch (codepoint) { - // Latin - 0x00AA, - 0x00BA, - 0x00C0...0x00D6, - 0x00D8...0x00F6, - 0x00F8...0x01F5, - 0x01FA...0x0217, - 0x0250...0x02A8, - 0x1E00...0x1E9B, - 0x1EA0...0x1EF9, - 0x207F, - - // Greek - 0x0386, - 0x0388...0x038A, - 0x038C, - 0x038E...0x03A1, - 0x03A3...0x03CE, - 0x03D0...0x03D6, - 0x03DA, - 0x03DC, - 0x03DE, - 0x03E0, - 0x03E2...0x03F3, - 0x1F00...0x1F15, - 0x1F18...0x1F1D, - 0x1F20...0x1F45, - 0x1F48...0x1F4D, - 0x1F50...0x1F57, - 0x1F59, - 0x1F5B, - 0x1F5D, - 0x1F5F...0x1F7D, - 0x1F80...0x1FB4, - 0x1FB6...0x1FBC, - 0x1FC2...0x1FC4, - 0x1FC6...0x1FCC, - 0x1FD0...0x1FD3, - 0x1FD6...0x1FDB, - 0x1FE0...0x1FEC, - 0x1FF2...0x1FF4, - 0x1FF6...0x1FFC, - - // Cyrillic - 0x0401...0x040C, - 0x040E...0x044F, - 0x0451...0x045C, - 0x045E...0x0481, - 0x0490...0x04C4, - 0x04C7...0x04C8, - 0x04CB...0x04CC, - 0x04D0...0x04EB, - 0x04EE...0x04F5, - 0x04F8...0x04F9, - - // Armenian - 0x0531...0x0556, - 0x0561...0x0587, - - // Hebrew - 0x05B0...0x05B9, - 0x05BB...0x05BD, - 0x05BF, - 0x05C1...0x05C2, - 0x05D0...0x05EA, - 0x05F0...0x05F2, - - // Arabic - 0x0621...0x063A, - 0x0640...0x0652, - 0x0670...0x06B7, - 0x06BA...0x06BE, - 0x06C0...0x06CE, - 0x06D0...0x06DC, - 0x06E5...0x06E8, - 0x06EA...0x06ED, - - // Devanagari - 0x0901...0x0903, - 0x0905...0x0939, - 0x093E...0x094D, - 0x0950...0x0952, - 0x0958...0x0963, - - // Bengali - 0x0981...0x0983, - 0x0985...0x098C, - 0x098F...0x0990, - 0x0993...0x09A8, - 0x09AA...0x09B0, - 0x09B2, - 0x09B6...0x09B9, - 0x09BE...0x09C4, - 0x09C7...0x09C8, - 0x09CB...0x09CD, - 0x09DC...0x09DD, - 0x09DF...0x09E3, - 0x09F0...0x09F1, - - // Gurmukhi - 0x0A02, - 0x0A05...0x0A0A, - 0x0A0F...0x0A10, - 0x0A13...0x0A28, - 0x0A2A...0x0A30, - 0x0A32...0x0A33, - 0x0A35...0x0A36, - 0x0A38...0x0A39, - 0x0A3E...0x0A42, - 0x0A47...0x0A48, - 0x0A4B...0x0A4D, - 0x0A59...0x0A5C, - 0x0A5E, - 0x0A74, - - // Gujarati - 0x0A81...0x0A83, - 0x0A85...0x0A8B, - 0x0A8D, - 0x0A8F...0x0A91, - 0x0A93...0x0AA8, - 0x0AAA...0x0AB0, - 0x0AB2...0x0AB3, - 0x0AB5...0x0AB9, - 0x0ABD...0x0AC5, - 0x0AC7...0x0AC9, - 0x0ACB...0x0ACD, - 0x0AD0, - 0x0AE0, - - // Oriya - 0x0B01...0x0B03, - 0x0B05...0x0B0C, - 0x0B0F...0x0B10, - 0x0B13...0x0B28, - 0x0B2A...0x0B30, - 0x0B32...0x0B33, - 0x0B36...0x0B39, - 0x0B3E...0x0B43, - 0x0B47...0x0B48, - 0x0B4B...0x0B4D, - 0x0B5C...0x0B5D, - 0x0B5F...0x0B61, - - // Tamil - 0x0B82...0x0B83, - 0x0B85...0x0B8A, - 0x0B8E...0x0B90, - 0x0B92...0x0B95, - 0x0B99...0x0B9A, - 0x0B9C, - 0x0B9E...0x0B9F, - 0x0BA3...0x0BA4, - 0x0BA8...0x0BAA, - 0x0BAE...0x0BB5, - 0x0BB7...0x0BB9, - 0x0BBE...0x0BC2, - 0x0BC6...0x0BC8, - 0x0BCA...0x0BCD, - - // Telugu - 0x0C01...0x0C03, - 0x0C05...0x0C0C, - 0x0C0E...0x0C10, - 0x0C12...0x0C28, - 0x0C2A...0x0C33, - 0x0C35...0x0C39, - 0x0C3E...0x0C44, - 0x0C46...0x0C48, - 0x0C4A...0x0C4D, - 0x0C60...0x0C61, - - // Kannada - 0x0C82...0x0C83, - 0x0C85...0x0C8C, - 0x0C8E...0x0C90, - 0x0C92...0x0CA8, - 0x0CAA...0x0CB3, - 0x0CB5...0x0CB9, - 0x0CBE...0x0CC4, - 0x0CC6...0x0CC8, - 0x0CCA...0x0CCD, - 0x0CDE, - 0x0CE0...0x0CE1, - - // Malayalam - 0x0D02...0x0D03, - 0x0D05...0x0D0C, - 0x0D0E...0x0D10, - 0x0D12...0x0D28, - 0x0D2A...0x0D39, - 0x0D3E...0x0D43, - 0x0D46...0x0D48, - 0x0D4A...0x0D4D, - 0x0D60...0x0D61, - - // Thai (excluding digits 0x0E50...0x0E59; originally 0x0E01...0x0E3A and 0x0E40...0x0E5B - 0x0E01...0x0E3A, - 0x0E40...0x0E4F, - 0x0E5A...0x0E5B, - - // Lao - 0x0E81...0x0E82, - 0x0E84, - 0x0E87...0x0E88, - 0x0E8A, - 0x0E8D, - 0x0E94...0x0E97, - 0x0E99...0x0E9F, - 0x0EA1...0x0EA3, - 0x0EA5, - 0x0EA7, - 0x0EAA...0x0EAB, - 0x0EAD...0x0EAE, - 0x0EB0...0x0EB9, - 0x0EBB...0x0EBD, - 0x0EC0...0x0EC4, - 0x0EC6, - 0x0EC8...0x0ECD, - 0x0EDC...0x0EDD, - - // Tibetan - 0x0F00, - 0x0F18...0x0F19, - 0x0F35, - 0x0F37, - 0x0F39, - 0x0F3E...0x0F47, - 0x0F49...0x0F69, - 0x0F71...0x0F84, - 0x0F86...0x0F8B, - 0x0F90...0x0F95, - 0x0F97, - 0x0F99...0x0FAD, - 0x0FB1...0x0FB7, - 0x0FB9, - - // Georgian - 0x10A0...0x10C5, - 0x10D0...0x10F6, - - // Hiragana - 0x3041...0x3093, - 0x309B...0x309C, - - // Katakana - 0x30A1...0x30F6, - 0x30FB...0x30FC, - - // Bopomofo - 0x3105...0x312C, - - // CJK Unified Ideographs - 0x4E00...0x9FA5, - - // Hangul - 0xAC00...0xD7A3, - - // Digits - 0x0660...0x0669, - 0x06F0...0x06F9, - 0x0966...0x096F, - 0x09E6...0x09EF, - 0x0A66...0x0A6F, - 0x0AE6...0x0AEF, - 0x0B66...0x0B6F, - 0x0BE7...0x0BEF, - 0x0C66...0x0C6F, - 0x0CE6...0x0CEF, - 0x0D66...0x0D6F, - 0x0E50...0x0E59, - 0x0ED0...0x0ED9, - 0x0F20...0x0F33, - - // Special characters - 0x00B5, - 0x00B7, - 0x02B0...0x02B8, - 0x02BB, - 0x02BD...0x02C1, - 0x02D0...0x02D1, - 0x02E0...0x02E4, - 0x037A, - 0x0559, - 0x093D, - 0x0B3D, - 0x1FBE, - 0x203F...0x2040, - 0x2102, - 0x2107, - 0x210A...0x2113, - 0x2115, - 0x2118...0x211D, - 0x2124, - 0x2126, - 0x2128, - 0x212A...0x2131, - 0x2133...0x2138, - 0x2160...0x2182, - 0x3005...0x3007, - 0x3021...0x3029, - => true, - else => false, - }; -} - -/// C11 standard Annex D -pub fn isC11DisallowedInitialIdChar(codepoint: u21) bool { - assert(codepoint > 0x7F); - return switch (codepoint) { - 0x0300...0x036F, - 0x1DC0...0x1DFF, - 0x20D0...0x20FF, - 0xFE20...0xFE2F, - => true, - else => false, - }; -} - -/// These are "digit" characters; C99 disallows them as the first -/// character of an identifier -pub fn isC99DisallowedInitialIDChar(codepoint: u21) bool { - assert(codepoint > 0x7F); - return switch (codepoint) { - 0x0660...0x0669, - 0x06F0...0x06F9, - 0x0966...0x096F, - 0x09E6...0x09EF, - 0x0A66...0x0A6F, - 0x0AE6...0x0AEF, - 0x0B66...0x0B6F, - 0x0BE7...0x0BEF, - 0x0C66...0x0C6F, - 0x0CE6...0x0CEF, - 0x0D66...0x0D6F, - 0x0E50...0x0E59, - 0x0ED0...0x0ED9, - 0x0F20...0x0F33, - => true, - else => false, - }; -} - -pub fn isInvisible(codepoint: u21) bool { - assert(codepoint > 0x7F); - return switch (codepoint) { - 0x00ad, // SOFT HYPHEN - 0x200b, // ZERO WIDTH SPACE - 0x200c, // ZERO WIDTH NON-JOINER - 0x200d, // ZERO WIDTH JOINER - 0x2060, // WORD JOINER - 0x2061, // FUNCTION APPLICATION - 0x2062, // INVISIBLE TIMES - 0x2063, // INVISIBLE SEPARATOR - 0x2064, // INVISIBLE PLUS - 0xfeff, // ZERO WIDTH NO-BREAK SPACE - => true, - else => false, - }; -} - -/// Checks for identifier characters which resemble non-identifier characters -pub fn homoglyph(codepoint: u21) ?u21 { - assert(codepoint > 0x7F); - return switch (codepoint) { - 0x01c3 => '!', // LATIN LETTER RETROFLEX CLICK - 0x037e => ';', // GREEK QUESTION MARK - 0x2212 => '-', // MINUS SIGN - 0x2215 => '/', // DIVISION SLASH - 0x2216 => '\\', // SET MINUS - 0x2217 => '*', // ASTERISK OPERATOR - 0x2223 => '|', // DIVIDES - 0x2227 => '^', // LOGICAL AND - 0x2236 => ':', // RATIO - 0x223c => '~', // TILDE OPERATOR - 0xa789 => ':', // MODIFIER LETTER COLON - 0xff01 => '!', // FULLWIDTH EXCLAMATION MARK - 0xff03 => '#', // FULLWIDTH NUMBER SIGN - 0xff04 => '$', // FULLWIDTH DOLLAR SIGN - 0xff05 => '%', // FULLWIDTH PERCENT SIGN - 0xff06 => '&', // FULLWIDTH AMPERSAND - 0xff08 => '(', // FULLWIDTH LEFT PARENTHESIS - 0xff09 => ')', // FULLWIDTH RIGHT PARENTHESIS - 0xff0a => '*', // FULLWIDTH ASTERISK - 0xff0b => '+', // FULLWIDTH ASTERISK - 0xff0c => ',', // FULLWIDTH COMMA - 0xff0d => '-', // FULLWIDTH HYPHEN-MINUS - 0xff0e => '.', // FULLWIDTH FULL STOP - 0xff0f => '/', // FULLWIDTH SOLIDUS - 0xff1a => ':', // FULLWIDTH COLON - 0xff1b => ';', // FULLWIDTH SEMICOLON - 0xff1c => '<', // FULLWIDTH LESS-THAN SIGN - 0xff1d => '=', // FULLWIDTH EQUALS SIGN - 0xff1e => '>', // FULLWIDTH GREATER-THAN SIGN - 0xff1f => '?', // FULLWIDTH QUESTION MARK - 0xff20 => '@', // FULLWIDTH COMMERCIAL AT - 0xff3b => '[', // FULLWIDTH LEFT SQUARE BRACKET - 0xff3c => '\\', // FULLWIDTH REVERSE SOLIDUS - 0xff3d => ']', // FULLWIDTH RIGHT SQUARE BRACKET - 0xff3e => '^', // FULLWIDTH CIRCUMFLEX ACCENT - 0xff5b => '{', // FULLWIDTH LEFT CURLY BRACKET - 0xff5c => '|', // FULLWIDTH VERTICAL LINE - 0xff5d => '}', // FULLWIDTH RIGHT CURLY BRACKET - 0xff5e => '~', // FULLWIDTH TILDE - else => null, - }; -} diff --git a/deps/aro/CharLiteral.zig b/deps/aro/CharLiteral.zig deleted file mode 100644 index 7c47ac7f74..0000000000 --- a/deps/aro/CharLiteral.zig +++ /dev/null @@ -1,298 +0,0 @@ -const std = @import("std"); -const Compilation = @import("Compilation.zig"); -const Type = @import("Type.zig"); -const Diagnostics = @import("Diagnostics.zig"); -const Tokenizer = @import("Tokenizer.zig"); -const mem = std.mem; - -pub const Item = union(enum) { - /// decoded escape - value: u32, - /// Char literal in the source text is not utf8 encoded - improperly_encoded: []const u8, - /// 1 or more unescaped bytes - utf8_text: std.unicode.Utf8View, -}; - -const CharDiagnostic = struct { - tag: Diagnostics.Tag, - extra: Diagnostics.Message.Extra, -}; - -pub const Kind = enum { - char, - wide, - utf_8, - utf_16, - utf_32, - - pub fn classify(id: Tokenizer.Token.Id) Kind { - return switch (id) { - .char_literal, - .string_literal, - => .char, - .char_literal_utf_8, - .string_literal_utf_8, - => .utf_8, - .char_literal_wide, - .string_literal_wide, - => .wide, - .char_literal_utf_16, - .string_literal_utf_16, - => .utf_16, - .char_literal_utf_32, - .string_literal_utf_32, - => .utf_32, - else => unreachable, - }; - } - - /// Largest unicode codepoint that can be represented by this character kind - /// May be smaller than the largest value that can be represented. - /// For example u8 char literals may only specify 0-127 via literals or - /// character escapes, but may specify up to \xFF via hex escapes. - pub fn maxCodepoint(kind: Kind, comp: *const Compilation) u21 { - return @intCast(switch (kind) { - .char => std.math.maxInt(u7), - .wide => @min(0x10FFFF, comp.types.wchar.maxInt(comp)), - .utf_8 => std.math.maxInt(u7), - .utf_16 => std.math.maxInt(u16), - .utf_32 => 0x10FFFF, - }); - } - - /// Largest integer that can be represented by this character kind - pub fn maxInt(kind: Kind, comp: *const Compilation) u32 { - return @intCast(switch (kind) { - .char, .utf_8 => std.math.maxInt(u8), - .wide => comp.types.wchar.maxInt(comp), - .utf_16 => std.math.maxInt(u16), - .utf_32 => std.math.maxInt(u32), - }); - } - - pub fn charLiteralType(kind: Kind, comp: *const Compilation) Type { - return switch (kind) { - .char => Type.int, - .wide => comp.types.wchar, - .utf_8 => .{ .specifier = .uchar }, - .utf_16 => comp.types.uint_least16_t, - .utf_32 => comp.types.uint_least32_t, - }; - } - - /// Return the actual contents of the string literal with leading / trailing quotes and - /// specifiers removed - pub fn contentSlice(kind: Kind, delimited: []const u8) []const u8 { - const end = delimited.len - 1; // remove trailing quote - return switch (kind) { - .char => delimited[1..end], - .wide => delimited[2..end], - .utf_8 => delimited[3..end], - .utf_16 => delimited[2..end], - .utf_32 => delimited[2..end], - }; - } -}; - -pub const Parser = struct { - literal: []const u8, - i: usize = 0, - kind: Kind, - /// We only want to issue a max of 1 error per char literal - errored: bool = false, - errors: std.BoundedArray(CharDiagnostic, 4) = .{}, - comp: *const Compilation, - - pub fn init(literal: []const u8, kind: Kind, comp: *const Compilation) Parser { - return .{ - .literal = literal, - .comp = comp, - .kind = kind, - }; - } - - pub fn err(self: *Parser, tag: Diagnostics.Tag, extra: Diagnostics.Message.Extra) void { - if (self.errored) return; - self.errored = true; - self.errors.append(.{ .tag = tag, .extra = extra }) catch {}; - } - - pub fn warn(self: *Parser, tag: Diagnostics.Tag, extra: Diagnostics.Message.Extra) void { - if (self.errored) return; - self.errors.append(.{ .tag = tag, .extra = extra }) catch {}; - } - - pub fn next(self: *Parser) ?Item { - if (self.i >= self.literal.len) return null; - - const start = self.i; - if (self.literal[start] != '\\') { - self.i = mem.indexOfScalarPos(u8, self.literal, start + 1, '\\') orelse self.literal.len; - const unescaped_slice = self.literal[start..self.i]; - - const view = std.unicode.Utf8View.init(unescaped_slice) catch { - if (self.kind != .char) { - self.err(.illegal_char_encoding_error, .{ .none = {} }); - } else { - self.warn(.illegal_char_encoding_warning, .{ .none = {} }); - } - return .{ .improperly_encoded = self.literal[start..self.i] }; - }; - return .{ .utf8_text = view }; - } - switch (self.literal[start + 1]) { - 'u', 'U' => return self.parseUnicodeEscape(), - else => return self.parseEscapedChar(), - } - } - - fn parseUnicodeEscape(self: *Parser) ?Item { - const start = self.i; - - std.debug.assert(self.literal[self.i] == '\\'); - - const kind = self.literal[self.i + 1]; - std.debug.assert(kind == 'u' or kind == 'U'); - - self.i += 2; - if (self.i >= self.literal.len or !std.ascii.isHex(self.literal[self.i])) { - self.err(.missing_hex_escape, .{ .ascii = @intCast(kind) }); - return null; - } - const expected_len: usize = if (kind == 'u') 4 else 8; - var overflowed = false; - var count: usize = 0; - var val: u32 = 0; - - for (self.literal[self.i..], 0..) |c, i| { - if (i == expected_len) break; - - const char = std.fmt.charToDigit(c, 16) catch { - break; - }; - - val, const overflow = @shlWithOverflow(val, 4); - overflowed = overflowed or overflow != 0; - val |= char; - count += 1; - } - self.i += expected_len; - - if (overflowed) { - self.err(.escape_sequence_overflow, .{ .unsigned = start }); - return null; - } - - if (count != expected_len) { - self.err(.incomplete_universal_character, .{ .none = {} }); - return null; - } - - if (val > std.math.maxInt(u21) or !std.unicode.utf8ValidCodepoint(@intCast(val))) { - self.err(.invalid_universal_character, .{ .unsigned = start }); - return null; - } - - if (val > self.kind.maxCodepoint(self.comp)) { - self.err(.char_too_large, .{ .none = {} }); - } - - if (val < 0xA0 and (val != '$' and val != '@' and val != '`')) { - const is_error = !self.comp.langopts.standard.atLeast(.c2x); - if (val >= 0x20 and val <= 0x7F) { - if (is_error) { - self.err(.ucn_basic_char_error, .{ .ascii = @intCast(val) }); - } else { - self.warn(.ucn_basic_char_warning, .{ .ascii = @intCast(val) }); - } - } else { - if (is_error) { - self.err(.ucn_control_char_error, .{ .none = {} }); - } else { - self.warn(.ucn_control_char_warning, .{ .none = {} }); - } - } - } - - self.warn(.c89_ucn_in_literal, .{ .none = {} }); - return .{ .value = val }; - } - - fn parseEscapedChar(self: *Parser) Item { - self.i += 1; - const c = self.literal[self.i]; - defer if (c != 'x' and (c < '0' or c > '7')) { - self.i += 1; - }; - - switch (c) { - '\n' => unreachable, // removed by line splicing - '\r' => unreachable, // removed by line splicing - '\'', '\"', '\\', '?' => return .{ .value = c }, - 'n' => return .{ .value = '\n' }, - 'r' => return .{ .value = '\r' }, - 't' => return .{ .value = '\t' }, - 'a' => return .{ .value = 0x07 }, - 'b' => return .{ .value = 0x08 }, - 'e', 'E' => { - self.warn(.non_standard_escape_char, .{ .invalid_escape = .{ .char = c, .offset = @intCast(self.i) } }); - return .{ .value = 0x1B }; - }, - '(', '{', '[', '%' => { - self.warn(.non_standard_escape_char, .{ .invalid_escape = .{ .char = c, .offset = @intCast(self.i) } }); - return .{ .value = c }; - }, - 'f' => return .{ .value = 0x0C }, - 'v' => return .{ .value = 0x0B }, - 'x' => return .{ .value = self.parseNumberEscape(.hex) }, - '0'...'7' => return .{ .value = self.parseNumberEscape(.octal) }, - 'u', 'U' => unreachable, // handled by parseUnicodeEscape - else => { - self.warn(.unknown_escape_sequence, .{ .invalid_escape = .{ .char = c, .offset = @intCast(self.i) } }); - return .{ .value = c }; - }, - } - } - - fn parseNumberEscape(self: *Parser, base: EscapeBase) u32 { - var val: u32 = 0; - var count: usize = 0; - var overflowed = false; - defer self.i += count; - const slice = switch (base) { - .octal => self.literal[self.i..@min(self.literal.len, self.i + 3)], // max 3 chars - .hex => blk: { - self.i += 1; - break :blk self.literal[self.i..]; // skip over 'x'; could have an arbitrary number of chars - }, - }; - for (slice) |c| { - const char = std.fmt.charToDigit(c, @intFromEnum(base)) catch break; - val, const overflow = @shlWithOverflow(val, base.log2()); - if (overflow != 0) overflowed = true; - val += char; - count += 1; - } - if (overflowed or val > self.kind.maxInt(self.comp)) { - self.err(.escape_sequence_overflow, .{ .unsigned = 0 }); - } - if (count == 0) { - std.debug.assert(base == .hex); - self.err(.missing_hex_escape, .{ .ascii = 'x' }); - } - return val; - } -}; - -const EscapeBase = enum(u8) { - octal = 8, - hex = 16, - - fn log2(base: EscapeBase) u4 { - return switch (base) { - .octal => 3, - .hex => 4, - }; - } -}; diff --git a/deps/aro/Codegen_legacy.zig b/deps/aro/Codegen_legacy.zig deleted file mode 100644 index b2bf3fe319..0000000000 --- a/deps/aro/Codegen_legacy.zig +++ /dev/null @@ -1,108 +0,0 @@ -const std = @import("std"); -const Compilation = @import("Compilation.zig"); -const Tree = @import("Tree.zig"); -const NodeIndex = Tree.NodeIndex; -const Object = @import("Object.zig"); -const x86_64 = @import("codegen/x86_64.zig"); - -const Codegen = @This(); - -comp: *Compilation, -tree: Tree, -obj: *Object, -node_tag: []const Tree.Tag, -node_data: []const Tree.Node.Data, - -pub const Error = Compilation.Error || error{CodegenFailed}; - -/// Generate tree to an object file. -/// Caller is responsible for flushing and freeing the returned object. -pub fn generateTree(comp: *Compilation, tree: Tree) Compilation.Error!*Object { - var c = Codegen{ - .comp = comp, - .tree = tree, - .obj = try Object.create(comp), - .node_tag = tree.nodes.items(.tag), - .node_data = tree.nodes.items(.data), - }; - errdefer c.obj.deinit(); - - const node_tags = tree.nodes.items(.tag); - for (tree.root_decls) |decl| { - switch (node_tags[@intFromEnum(decl)]) { - // these produce no code - .static_assert, - .typedef, - .struct_decl_two, - .union_decl_two, - .enum_decl_two, - .struct_decl, - .union_decl, - .enum_decl, - .struct_forward_decl, - .union_forward_decl, - .enum_forward_decl, - => {}, - - // define symbol - .fn_proto, - .static_fn_proto, - .inline_fn_proto, - .inline_static_fn_proto, - .extern_var, - .threadlocal_extern_var, - => { - const name = c.tree.tokSlice(c.node_data[@intFromEnum(decl)].decl.name); - _ = try c.obj.declareSymbol(.undefined, name, .Strong, .external, 0, 0); - }, - - // function definition - .fn_def, - .static_fn_def, - .inline_fn_def, - .inline_static_fn_def, - => c.genFn(decl) catch |err| switch (err) { - error.FatalError => return error.FatalError, - error.OutOfMemory => return error.OutOfMemory, - error.CodegenFailed => continue, - }, - - .@"var", - .static_var, - .threadlocal_var, - .threadlocal_static_var, - .implicit_static_var, - => c.genVar(decl) catch |err| switch (err) { - error.FatalError => return error.FatalError, - error.OutOfMemory => return error.OutOfMemory, - error.CodegenFailed => continue, - }, - - // TODO - .file_scope_asm => {}, - - else => unreachable, - } - } - - return c.obj; -} - -fn genFn(c: *Codegen, decl: NodeIndex) Error!void { - const section: Object.Section = .func; - const data = try c.obj.getSection(section); - const start_len = data.items.len; - switch (c.comp.target.cpu.arch) { - .x86_64 => try x86_64.genFn(c, decl, data), - else => unreachable, - } - const name = c.tree.tokSlice(c.node_data[@intFromEnum(decl)].decl.name); - _ = try c.obj.declareSymbol(section, name, .Strong, .func, start_len, data.items.len - start_len); -} - -fn genVar(c: *Codegen, decl: NodeIndex) Error!void { - switch (c.comp.target.cpu.arch) { - .x86_64 => try x86_64.genVar(c, decl), - else => unreachable, - } -} diff --git a/deps/aro/Diagnostics.zig b/deps/aro/Diagnostics.zig deleted file mode 100644 index 9229d01e7f..0000000000 --- a/deps/aro/Diagnostics.zig +++ /dev/null @@ -1,2935 +0,0 @@ -const std = @import("std"); -const mem = std.mem; -const Allocator = mem.Allocator; -const Source = @import("Source.zig"); -const Compilation = @import("Compilation.zig"); -const Attribute = @import("Attribute.zig"); -const Builtins = @import("Builtins.zig"); -const Builtin = Builtins.Builtin; -const Header = @import("Builtins/Properties.zig").Header; -const Tree = @import("Tree.zig"); -const util = @import("util.zig"); -const is_windows = @import("builtin").os.tag == .windows; - -const Diagnostics = @This(); - -const PointerSignMessage = " converts between pointers to integer types with different sign"; - -pub const Message = struct { - tag: Tag, - kind: Kind = undefined, - loc: Source.Location = .{}, - extra: Extra = .{ .none = {} }, - - pub const Extra = union { - str: []const u8, - tok_id: struct { - expected: Tree.Token.Id, - actual: Tree.Token.Id, - }, - tok_id_expected: Tree.Token.Id, - arguments: struct { - expected: u32, - actual: u32, - }, - codepoints: struct { - actual: u21, - resembles: u21, - }, - attr_arg_count: struct { - attribute: Attribute.Tag, - expected: u32, - }, - attr_arg_type: struct { - expected: Attribute.ArgumentType, - actual: Attribute.ArgumentType, - }, - attr_enum: struct { - tag: Attribute.Tag, - }, - ignored_record_attr: struct { - tag: Attribute.Tag, - specifier: enum { @"struct", @"union", @"enum" }, - }, - builtin_with_header: struct { - builtin: Builtin.Tag, - header: Header, - }, - invalid_escape: struct { - offset: u32, - char: u8, - }, - actual_codepoint: u21, - ascii: u7, - unsigned: u64, - pow_2_as_string: u8, - signed: i64, - none: void, - }; -}; - -pub const Tag = std.meta.DeclEnum(messages); - -pub const Kind = enum { @"fatal error", @"error", note, warning, off, default }; - -pub const Options = struct { - // do not directly use these, instead add `const NAME = true;` - all: Kind = .default, - extra: Kind = .default, - pedantic: Kind = .default, - - @"unsupported-pragma": Kind = .default, - @"c99-extensions": Kind = .default, - @"implicit-int": Kind = .default, - @"duplicate-decl-specifier": Kind = .default, - @"missing-declaration": Kind = .default, - @"extern-initializer": Kind = .default, - @"implicit-function-declaration": Kind = .default, - @"unused-value": Kind = .default, - @"unreachable-code": Kind = .default, - @"unknown-warning-option": Kind = .default, - @"gnu-empty-struct": Kind = .default, - @"gnu-alignof-expression": Kind = .default, - @"macro-redefined": Kind = .default, - @"generic-qual-type": Kind = .default, - multichar: Kind = .default, - @"pointer-integer-compare": Kind = .default, - @"compare-distinct-pointer-types": Kind = .default, - @"literal-conversion": Kind = .default, - @"cast-qualifiers": Kind = .default, - @"array-bounds": Kind = .default, - @"int-conversion": Kind = .default, - @"pointer-type-mismatch": Kind = .default, - @"c2x-extensions": Kind = .default, - @"incompatible-pointer-types": Kind = .default, - @"excess-initializers": Kind = .default, - @"division-by-zero": Kind = .default, - @"initializer-overrides": Kind = .default, - @"incompatible-pointer-types-discards-qualifiers": Kind = .default, - @"unknown-attributes": Kind = .default, - @"ignored-attributes": Kind = .default, - @"builtin-macro-redefined": Kind = .default, - @"gnu-label-as-value": Kind = .default, - @"malformed-warning-check": Kind = .default, - @"#pragma-messages": Kind = .default, - @"newline-eof": Kind = .default, - @"empty-translation-unit": Kind = .default, - @"implicitly-unsigned-literal": Kind = .default, - @"c99-compat": Kind = .default, - @"unicode-zero-width": Kind = .default, - @"unicode-homoglyph": Kind = .default, - unicode: Kind = .default, - @"return-type": Kind = .default, - @"dollar-in-identifier-extension": Kind = .default, - @"unknown-pragmas": Kind = .default, - @"predefined-identifier-outside-function": Kind = .default, - @"many-braces-around-scalar-init": Kind = .default, - uninitialized: Kind = .default, - @"gnu-statement-expression": Kind = .default, - @"gnu-imaginary-constant": Kind = .default, - @"gnu-complex-integer": Kind = .default, - @"ignored-qualifiers": Kind = .default, - @"integer-overflow": Kind = .default, - @"extra-semi": Kind = .default, - @"gnu-binary-literal": Kind = .default, - @"variadic-macros": Kind = .default, - varargs: Kind = .default, - @"#warnings": Kind = .default, - @"deprecated-declarations": Kind = .default, - @"backslash-newline-escape": Kind = .default, - @"pointer-to-int-cast": Kind = .default, - @"gnu-case-range": Kind = .default, - @"c++-compat": Kind = .default, - vla: Kind = .default, - @"float-overflow-conversion": Kind = .default, - @"float-zero-conversion": Kind = .default, - @"float-conversion": Kind = .default, - @"gnu-folding-constant": Kind = .default, - undef: Kind = .default, - @"ignored-pragmas": Kind = .default, - @"gnu-include-next": Kind = .default, - @"include-next-outside-header": Kind = .default, - @"include-next-absolute-path": Kind = .default, - @"enum-too-large": Kind = .default, - @"fixed-enum-extension": Kind = .default, - @"designated-init": Kind = .default, - @"attribute-warning": Kind = .default, - @"invalid-noreturn": Kind = .default, - @"zero-length-array": Kind = .default, - @"old-style-flexible-struct": Kind = .default, - @"gnu-zero-variadic-macro-arguments": Kind = .default, - @"main-return-type": Kind = .default, - @"expansion-to-defined": Kind = .default, - @"bit-int-extension": Kind = .default, - @"keyword-macro": Kind = .default, - @"pointer-arith": Kind = .default, - @"sizeof-array-argument": Kind = .default, - @"pre-c2x-compat": Kind = .default, - @"pointer-bool-conversion": Kind = .default, - @"string-conversion": Kind = .default, - @"gnu-auto-type": Kind = .default, - @"gnu-union-cast": Kind = .default, - @"pointer-sign": Kind = .default, - @"fuse-ld-path": Kind = .default, - @"language-extension-token": Kind = .default, - @"complex-component-init": Kind = .default, - @"microsoft-include": Kind = .default, - @"microsoft-end-of-file": Kind = .default, - @"invalid-source-encoding": Kind = .default, - @"four-char-constants": Kind = .default, - @"unknown-escape-sequence": Kind = .default, - @"invalid-pp-token": Kind = .default, -}; - -const messages = struct { - pub const todo = struct { // Maybe someday this will no longer be needed. - const msg = "TODO: {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const error_directive = struct { - const msg = "{s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const warning_directive = struct { - const msg = "{s}"; - const opt = "#warnings"; - const extra = .str; - const kind = .warning; - }; - pub const elif_without_if = struct { - const msg = "#elif without #if"; - const kind = .@"error"; - }; - pub const elif_after_else = struct { - const msg = "#elif after #else"; - const kind = .@"error"; - }; - pub const elifdef_without_if = struct { - const msg = "#elifdef without #if"; - const kind = .@"error"; - }; - pub const elifdef_after_else = struct { - const msg = "#elifdef after #else"; - const kind = .@"error"; - }; - pub const elifndef_without_if = struct { - const msg = "#elifndef without #if"; - const kind = .@"error"; - }; - pub const elifndef_after_else = struct { - const msg = "#elifndef after #else"; - const kind = .@"error"; - }; - pub const else_without_if = struct { - const msg = "#else without #if"; - const kind = .@"error"; - }; - pub const else_after_else = struct { - const msg = "#else after #else"; - const kind = .@"error"; - }; - pub const endif_without_if = struct { - const msg = "#endif without #if"; - const kind = .@"error"; - }; - pub const unknown_pragma = struct { - const msg = "unknown pragma ignored"; - const opt = "unknown-pragmas"; - const kind = .off; - const all = true; - }; - pub const line_simple_digit = struct { - const msg = "#line directive requires a simple digit sequence"; - const kind = .@"error"; - }; - pub const line_invalid_filename = struct { - const msg = "invalid filename for #line directive"; - const kind = .@"error"; - }; - pub const unterminated_conditional_directive = struct { - const msg = "unterminated conditional directive"; - const kind = .@"error"; - }; - pub const invalid_preprocessing_directive = struct { - const msg = "invalid preprocessing directive"; - const kind = .@"error"; - }; - pub const macro_name_missing = struct { - const msg = "macro name missing"; - const kind = .@"error"; - }; - pub const extra_tokens_directive_end = struct { - const msg = "extra tokens at end of macro directive"; - const kind = .@"error"; - }; - pub const expected_value_in_expr = struct { - const msg = "expected value in expression"; - const kind = .@"error"; - }; - pub const closing_paren = struct { - const msg = "expected closing ')'"; - const kind = .@"error"; - }; - pub const to_match_paren = struct { - const msg = "to match this '('"; - const kind = .note; - }; - pub const to_match_brace = struct { - const msg = "to match this '{'"; - const kind = .note; - }; - pub const to_match_bracket = struct { - const msg = "to match this '['"; - const kind = .note; - }; - pub const header_str_closing = struct { - const msg = "expected closing '>'"; - const kind = .@"error"; - }; - pub const header_str_match = struct { - const msg = "to match this '<'"; - const kind = .note; - }; - pub const string_literal_in_pp_expr = struct { - const msg = "string literal in preprocessor expression"; - const kind = .@"error"; - }; - pub const float_literal_in_pp_expr = struct { - const msg = "floating point literal in preprocessor expression"; - const kind = .@"error"; - }; - pub const defined_as_macro_name = struct { - const msg = "'defined' cannot be used as a macro name"; - const kind = .@"error"; - }; - pub const macro_name_must_be_identifier = struct { - const msg = "macro name must be an identifier"; - const kind = .@"error"; - }; - pub const whitespace_after_macro_name = struct { - const msg = "ISO C99 requires whitespace after the macro name"; - const opt = "c99-extensions"; - const kind = .warning; - }; - pub const hash_hash_at_start = struct { - const msg = "'##' cannot appear at the start of a macro expansion"; - const kind = .@"error"; - }; - pub const hash_hash_at_end = struct { - const msg = "'##' cannot appear at the end of a macro expansion"; - const kind = .@"error"; - }; - pub const pasting_formed_invalid = struct { - const msg = "pasting formed '{s}', an invalid preprocessing token"; - const extra = .str; - const kind = .@"error"; - }; - pub const missing_paren_param_list = struct { - const msg = "missing ')' in macro parameter list"; - const kind = .@"error"; - }; - pub const unterminated_macro_param_list = struct { - const msg = "unterminated macro param list"; - const kind = .@"error"; - }; - pub const invalid_token_param_list = struct { - const msg = "invalid token in macro parameter list"; - const kind = .@"error"; - }; - pub const expected_comma_param_list = struct { - const msg = "expected comma in macro parameter list"; - const kind = .@"error"; - }; - pub const hash_not_followed_param = struct { - const msg = "'#' is not followed by a macro parameter"; - const kind = .@"error"; - }; - pub const expected_filename = struct { - const msg = "expected \"FILENAME\" or "; - const kind = .@"error"; - }; - pub const empty_filename = struct { - const msg = "empty filename"; - const kind = .@"error"; - }; - pub const expected_invalid = struct { - const msg = "expected '{s}', found invalid bytes"; - const extra = .tok_id_expected; - const kind = .@"error"; - }; - pub const expected_eof = struct { - const msg = "expected '{s}' before end of file"; - const extra = .tok_id_expected; - const kind = .@"error"; - }; - pub const expected_token = struct { - const msg = "expected '{s}', found '{s}'"; - const extra = .tok_id; - const kind = .@"error"; - }; - pub const expected_expr = struct { - const msg = "expected expression"; - const kind = .@"error"; - }; - pub const expected_integer_constant_expr = struct { - const msg = "expression is not an integer constant expression"; - const kind = .@"error"; - }; - pub const missing_type_specifier = struct { - const msg = "type specifier missing, defaults to 'int'"; - const opt = "implicit-int"; - const kind = .warning; - const all = true; - }; - pub const missing_type_specifier_c2x = struct { - const msg = "a type specifier is required for all declarations"; - const kind = .@"error"; - }; - pub const multiple_storage_class = struct { - const msg = "cannot combine with previous '{s}' declaration specifier"; - const extra = .str; - const kind = .@"error"; - }; - pub const static_assert_failure = struct { - const msg = "static assertion failed"; - const kind = .@"error"; - }; - pub const static_assert_failure_message = struct { - const msg = "static assertion failed {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const expected_type = struct { - const msg = "expected a type"; - const kind = .@"error"; - }; - pub const cannot_combine_spec = struct { - const msg = "cannot combine with previous '{s}' specifier"; - const extra = .str; - const kind = .@"error"; - }; - pub const duplicate_decl_spec = struct { - const msg = "duplicate '{s}' declaration specifier"; - const extra = .str; - const opt = "duplicate-decl-specifier"; - const kind = .warning; - const all = true; - }; - pub const restrict_non_pointer = struct { - const msg = "restrict requires a pointer or reference ('{s}' is invalid)"; - const extra = .str; - const kind = .@"error"; - }; - pub const expected_external_decl = struct { - const msg = "expected external declaration"; - const kind = .@"error"; - }; - pub const expected_ident_or_l_paren = struct { - const msg = "expected identifier or '('"; - const kind = .@"error"; - }; - pub const missing_declaration = struct { - const msg = "declaration does not declare anything"; - const opt = "missing-declaration"; - const kind = .warning; - }; - pub const func_not_in_root = struct { - const msg = "function definition is not allowed here"; - const kind = .@"error"; - }; - pub const illegal_initializer = struct { - const msg = "illegal initializer (only variables can be initialized)"; - const kind = .@"error"; - }; - pub const extern_initializer = struct { - const msg = "extern variable has initializer"; - const opt = "extern-initializer"; - const kind = .warning; - }; - pub const spec_from_typedef = struct { - const msg = "'{s}' came from typedef"; - const extra = .str; - const kind = .note; - }; - pub const param_before_var_args = struct { - const msg = "ISO C requires a named parameter before '...'"; - const kind = .@"error"; - }; - pub const void_only_param = struct { - const msg = "'void' must be the only parameter if specified"; - const kind = .@"error"; - }; - pub const void_param_qualified = struct { - const msg = "'void' parameter cannot be qualified"; - const kind = .@"error"; - }; - pub const void_must_be_first_param = struct { - const msg = "'void' must be the first parameter if specified"; - const kind = .@"error"; - }; - pub const invalid_storage_on_param = struct { - const msg = "invalid storage class on function parameter"; - const kind = .@"error"; - }; - pub const threadlocal_non_var = struct { - const msg = "_Thread_local only allowed on variables"; - const kind = .@"error"; - }; - pub const func_spec_non_func = struct { - const msg = "'{s}' can only appear on functions"; - const extra = .str; - const kind = .@"error"; - }; - pub const illegal_storage_on_func = struct { - const msg = "illegal storage class on function"; - const kind = .@"error"; - }; - pub const illegal_storage_on_global = struct { - const msg = "illegal storage class on global variable"; - const kind = .@"error"; - }; - pub const expected_stmt = struct { - const msg = "expected statement"; - const kind = .@"error"; - }; - pub const func_cannot_return_func = struct { - const msg = "function cannot return a function"; - const kind = .@"error"; - }; - pub const func_cannot_return_array = struct { - const msg = "function cannot return an array"; - const kind = .@"error"; - }; - pub const undeclared_identifier = struct { - const msg = "use of undeclared identifier '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const not_callable = struct { - const msg = "cannot call non function type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const unsupported_str_cat = struct { - const msg = "unsupported string literal concatenation"; - const kind = .@"error"; - }; - pub const static_func_not_global = struct { - const msg = "static functions must be global"; - const kind = .@"error"; - }; - pub const implicit_func_decl = struct { - const msg = "implicit declaration of function '{s}' is invalid in C99"; - const extra = .str; - const opt = "implicit-function-declaration"; - const kind = .warning; - const all = true; - }; - pub const unknown_builtin = struct { - const msg = "use of unknown builtin '{s}'"; - const extra = .str; - const opt = "implicit-function-declaration"; - const kind = .@"error"; - const all = true; - }; - pub const implicit_builtin = struct { - const msg = "implicitly declaring library function '{s}'"; - const extra = .str; - const opt = "implicit-function-declaration"; - const kind = .@"error"; - const all = true; - }; - pub const implicit_builtin_header_note = struct { - const msg = "include the header <{s}.h> or explicitly provide a declaration for '{s}'"; - const extra = .builtin_with_header; - const opt = "implicit-function-declaration"; - const kind = .note; - const all = true; - }; - pub const expected_param_decl = struct { - const msg = "expected parameter declaration"; - const kind = .@"error"; - }; - pub const invalid_old_style_params = struct { - const msg = "identifier parameter lists are only allowed in function definitions"; - const kind = .@"error"; - }; - pub const expected_fn_body = struct { - const msg = "expected function body after function declaration"; - const kind = .@"error"; - }; - pub const invalid_void_param = struct { - const msg = "parameter cannot have void type"; - const kind = .@"error"; - }; - pub const unused_value = struct { - const msg = "expression result unused"; - const opt = "unused-value"; - const kind = .warning; - const all = true; - }; - pub const continue_not_in_loop = struct { - const msg = "'continue' statement not in a loop"; - const kind = .@"error"; - }; - pub const break_not_in_loop_or_switch = struct { - const msg = "'break' statement not in a loop or a switch"; - const kind = .@"error"; - }; - pub const unreachable_code = struct { - const msg = "unreachable code"; - const opt = "unreachable-code"; - const kind = .warning; - const all = true; - }; - pub const duplicate_label = struct { - const msg = "duplicate label '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const previous_label = struct { - const msg = "previous definition of label '{s}' was here"; - const extra = .str; - const kind = .note; - }; - pub const undeclared_label = struct { - const msg = "use of undeclared label '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const case_not_in_switch = struct { - const msg = "'{s}' statement not in a switch statement"; - const extra = .str; - const kind = .@"error"; - }; - pub const duplicate_switch_case_signed = struct { - const msg = "duplicate case value '{d}'"; - const extra = .signed; - const kind = .@"error"; - }; - pub const duplicate_switch_case_unsigned = struct { - const msg = "duplicate case value '{d}'"; - const extra = .unsigned; - const kind = .@"error"; - }; - pub const multiple_default = struct { - const msg = "multiple default cases in the same switch"; - const kind = .@"error"; - }; - pub const previous_case = struct { - const msg = "previous case defined here"; - const kind = .note; - }; - pub const expected_arguments = struct { - const msg = "expected {d} argument(s) got {d}"; - const extra = .arguments; - const kind = .@"error"; - }; - pub const expected_arguments_old = struct { - const msg = expected_arguments.msg; - const extra = .arguments; - const kind = .warning; - }; - pub const expected_at_least_arguments = struct { - const msg = "expected at least {d} argument(s) got {d}"; - const extra = .arguments; - const kind = .warning; - }; - pub const invalid_static_star = struct { - const msg = "'static' may not be used with an unspecified variable length array size"; - const kind = .@"error"; - }; - pub const static_non_param = struct { - const msg = "'static' used outside of function parameters"; - const kind = .@"error"; - }; - pub const array_qualifiers = struct { - const msg = "type qualifier in non parameter array type"; - const kind = .@"error"; - }; - pub const star_non_param = struct { - const msg = "star modifier used outside of function parameters"; - const kind = .@"error"; - }; - pub const variable_len_array_file_scope = struct { - const msg = "variable length arrays not allowed at file scope"; - const kind = .@"error"; - }; - pub const useless_static = struct { - const msg = "'static' useless without a constant size"; - const kind = .warning; - const w_extra = true; - }; - pub const negative_array_size = struct { - const msg = "array size must be 0 or greater"; - const kind = .@"error"; - }; - pub const array_incomplete_elem = struct { - const msg = "array has incomplete element type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const array_func_elem = struct { - const msg = "arrays cannot have functions as their element type"; - const kind = .@"error"; - }; - pub const static_non_outermost_array = struct { - const msg = "'static' used in non-outermost array type"; - const kind = .@"error"; - }; - pub const qualifier_non_outermost_array = struct { - const msg = "type qualifier used in non-outermost array type"; - const kind = .@"error"; - }; - pub const unterminated_macro_arg_list = struct { - const msg = "unterminated function macro argument list"; - const kind = .@"error"; - }; - pub const unknown_warning = struct { - const msg = "unknown warning '{s}'"; - const extra = .str; - const opt = "unknown-warning-option"; - const kind = .warning; - }; - pub const overflow_signed = struct { - const msg = "overflow in expression; result is '{d}'"; - const extra = .signed; - const opt = "integer-overflow"; - const kind = .warning; - }; - pub const overflow_unsigned = struct { - const msg = overflow_signed.msg; - const extra = .unsigned; - const opt = "integer-overflow"; - const kind = .warning; - }; - pub const int_literal_too_big = struct { - const msg = "integer literal is too large to be represented in any integer type"; - const kind = .@"error"; - }; - pub const indirection_ptr = struct { - const msg = "indirection requires pointer operand"; - const kind = .@"error"; - }; - pub const addr_of_rvalue = struct { - const msg = "cannot take the address of an rvalue"; - const kind = .@"error"; - }; - pub const addr_of_bitfield = struct { - const msg = "address of bit-field requested"; - const kind = .@"error"; - }; - pub const not_assignable = struct { - const msg = "expression is not assignable"; - const kind = .@"error"; - }; - pub const ident_or_l_brace = struct { - const msg = "expected identifier or '{'"; - const kind = .@"error"; - }; - pub const empty_enum = struct { - const msg = "empty enum is invalid"; - const kind = .@"error"; - }; - pub const redefinition = struct { - const msg = "redefinition of '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const previous_definition = struct { - const msg = "previous definition is here"; - const kind = .note; - }; - pub const expected_identifier = struct { - const msg = "expected identifier"; - const kind = .@"error"; - }; - pub const expected_str_literal = struct { - const msg = "expected string literal for diagnostic message in static_assert"; - const kind = .@"error"; - }; - pub const expected_str_literal_in = struct { - const msg = "expected string literal in '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const parameter_missing = struct { - const msg = "parameter named '{s}' is missing"; - const extra = .str; - const kind = .@"error"; - }; - pub const empty_record = struct { - const msg = "empty {s} is a GNU extension"; - const extra = .str; - const opt = "gnu-empty-struct"; - const kind = .off; - const pedantic = true; - }; - pub const empty_record_size = struct { - const msg = "empty {s} has size 0 in C, size 1 in C++"; - const extra = .str; - const opt = "c++-compat"; - const kind = .off; - }; - pub const wrong_tag = struct { - const msg = "use of '{s}' with tag type that does not match previous definition"; - const extra = .str; - const kind = .@"error"; - }; - pub const expected_parens_around_typename = struct { - const msg = "expected parentheses around type name"; - const kind = .@"error"; - }; - pub const alignof_expr = struct { - const msg = "'_Alignof' applied to an expression is a GNU extension"; - const opt = "gnu-alignof-expression"; - const kind = .warning; - const suppress_gnu = true; - }; - pub const invalid_alignof = struct { - const msg = "invalid application of 'alignof' to an incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_sizeof = struct { - const msg = "invalid application of 'sizeof' to an incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const macro_redefined = struct { - const msg = "'{s}' macro redefined"; - const extra = .str; - const opt = "macro-redefined"; - const kind = .warning; - }; - pub const generic_qual_type = struct { - const msg = "generic association with qualifiers cannot be matched with"; - const opt = "generic-qual-type"; - const kind = .warning; - }; - pub const generic_array_type = struct { - const msg = "generic association array type cannot be matched with"; - const opt = "generic-qual-type"; - const kind = .warning; - }; - pub const generic_func_type = struct { - const msg = "generic association function type cannot be matched with"; - const opt = "generic-qual-type"; - const kind = .warning; - }; - pub const generic_duplicate = struct { - const msg = "type '{s}' in generic association compatible with previously specified type"; - const extra = .str; - const kind = .@"error"; - }; - pub const generic_duplicate_here = struct { - const msg = "compatible type '{s}' specified here"; - const extra = .str; - const kind = .note; - }; - pub const generic_duplicate_default = struct { - const msg = "duplicate default generic association"; - const kind = .@"error"; - }; - pub const generic_no_match = struct { - const msg = "controlling expression type '{s}' not compatible with any generic association type"; - const extra = .str; - const kind = .@"error"; - }; - pub const escape_sequence_overflow = struct { - const msg = "escape sequence out of range"; - const kind = .@"error"; - }; - pub const invalid_universal_character = struct { - const msg = "invalid universal character"; - const kind = .@"error"; - }; - pub const incomplete_universal_character = struct { - const msg = "incomplete universal character name"; - const kind = .@"error"; - }; - pub const multichar_literal_warning = struct { - const msg = "multi-character character constant"; - const opt = "multichar"; - const kind = .warning; - const all = true; - }; - pub const invalid_multichar_literal = struct { - const msg = "{s} character literals may not contain multiple characters"; - const kind = .@"error"; - const extra = .str; - }; - pub const wide_multichar_literal = struct { - const msg = "extraneous characters in character constant ignored"; - const kind = .warning; - }; - pub const char_lit_too_wide = struct { - const msg = "character constant too long for its type"; - const kind = .warning; - const all = true; - }; - pub const char_too_large = struct { - const msg = "character too large for enclosing character literal type"; - const kind = .@"error"; - }; - pub const must_use_struct = struct { - const msg = "must use 'struct' tag to refer to type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const must_use_union = struct { - const msg = "must use 'union' tag to refer to type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const must_use_enum = struct { - const msg = "must use 'enum' tag to refer to type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const redefinition_different_sym = struct { - const msg = "redefinition of '{s}' as different kind of symbol"; - const extra = .str; - const kind = .@"error"; - }; - pub const redefinition_incompatible = struct { - const msg = "redefinition of '{s}' with a different type"; - const extra = .str; - const kind = .@"error"; - }; - pub const redefinition_of_parameter = struct { - const msg = "redefinition of parameter '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_bin_types = struct { - const msg = "invalid operands to binary expression ({s})"; - const extra = .str; - const kind = .@"error"; - }; - pub const comparison_ptr_int = struct { - const msg = "comparison between pointer and integer ({s})"; - const extra = .str; - const opt = "pointer-integer-compare"; - const kind = .warning; - }; - pub const comparison_distinct_ptr = struct { - const msg = "comparison of distinct pointer types ({s})"; - const extra = .str; - const opt = "compare-distinct-pointer-types"; - const kind = .warning; - }; - pub const incompatible_pointers = struct { - const msg = "incompatible pointer types ({s})"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_argument_un = struct { - const msg = "invalid argument type '{s}' to unary expression"; - const extra = .str; - const kind = .@"error"; - }; - pub const incompatible_assign = struct { - const msg = "assignment to {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const implicit_ptr_to_int = struct { - const msg = "implicit pointer to integer conversion from {s}"; - const extra = .str; - const opt = "int-conversion"; - const kind = .warning; - }; - pub const invalid_cast_to_float = struct { - const msg = "pointer cannot be cast to type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_cast_to_pointer = struct { - const msg = "operand of type '{s}' cannot be cast to a pointer type"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_cast_type = struct { - const msg = "cannot cast to non arithmetic or pointer type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const qual_cast = struct { - const msg = "cast to type '{s}' will not preserve qualifiers"; - const extra = .str; - const opt = "cast-qualifiers"; - const kind = .warning; - }; - pub const invalid_index = struct { - const msg = "array subscript is not an integer"; - const kind = .@"error"; - }; - pub const invalid_subscript = struct { - const msg = "subscripted value is not an array or pointer"; - const kind = .@"error"; - }; - pub const array_after = struct { - const msg = "array index {d} is past the end of the array"; - const extra = .unsigned; - const opt = "array-bounds"; - const kind = .warning; - }; - pub const array_before = struct { - const msg = "array index {d} is before the beginning of the array"; - const extra = .signed; - const opt = "array-bounds"; - const kind = .warning; - }; - pub const statement_int = struct { - const msg = "statement requires expression with integer type ('{s}' invalid)"; - const extra = .str; - const kind = .@"error"; - }; - pub const statement_scalar = struct { - const msg = "statement requires expression with scalar type ('{s}' invalid)"; - const extra = .str; - const kind = .@"error"; - }; - pub const func_should_return = struct { - const msg = "non-void function '{s}' should return a value"; - const extra = .str; - const opt = "return-type"; - const kind = .@"error"; - const all = true; - }; - pub const incompatible_return = struct { - const msg = "returning {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const incompatible_return_sign = struct { - const msg = "returning {s}" ++ PointerSignMessage; - const extra = .str; - const kind = .warning; - const opt = "pointer-sign"; - }; - pub const implicit_int_to_ptr = struct { - const msg = "implicit integer to pointer conversion from {s}"; - const extra = .str; - const opt = "int-conversion"; - const kind = .warning; - }; - pub const func_does_not_return = struct { - const msg = "non-void function '{s}' does not return a value"; - const extra = .str; - const opt = "return-type"; - const kind = .warning; - const all = true; - }; - pub const void_func_returns_value = struct { - const msg = "void function '{s}' should not return a value"; - const extra = .str; - const opt = "return-type"; - const kind = .@"error"; - const all = true; - }; - pub const incompatible_arg = struct { - const msg = "passing {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const incompatible_ptr_arg = struct { - const msg = "passing {s}"; - const extra = .str; - const kind = .warning; - const opt = "incompatible-pointer-types"; - }; - pub const incompatible_ptr_arg_sign = struct { - const msg = "passing {s}" ++ PointerSignMessage; - const extra = .str; - const kind = .warning; - const opt = "pointer-sign"; - }; - pub const parameter_here = struct { - const msg = "passing argument to parameter here"; - const kind = .note; - }; - pub const atomic_array = struct { - const msg = "atomic cannot be applied to array type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const atomic_func = struct { - const msg = "atomic cannot be applied to function type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const atomic_incomplete = struct { - const msg = "atomic cannot be applied to incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const addr_of_register = struct { - const msg = "address of register variable requested"; - const kind = .@"error"; - }; - pub const variable_incomplete_ty = struct { - const msg = "variable has incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const parameter_incomplete_ty = struct { - const msg = "parameter has incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const tentative_array = struct { - const msg = "tentative array definition assumed to have one element"; - const kind = .warning; - }; - pub const deref_incomplete_ty_ptr = struct { - const msg = "dereferencing pointer to incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const alignas_on_func = struct { - const msg = "'_Alignas' attribute only applies to variables and fields"; - const kind = .@"error"; - }; - pub const alignas_on_param = struct { - const msg = "'_Alignas' attribute cannot be applied to a function parameter"; - const kind = .@"error"; - }; - pub const minimum_alignment = struct { - const msg = "requested alignment is less than minimum alignment of {d}"; - const extra = .unsigned; - const kind = .@"error"; - }; - pub const maximum_alignment = struct { - const msg = "requested alignment of {d} is too large"; - const extra = .unsigned; - const kind = .@"error"; - }; - pub const negative_alignment = struct { - const msg = "requested negative alignment of {d} is invalid"; - const extra = .signed; - const kind = .@"error"; - }; - pub const align_ignored = struct { - const msg = "'_Alignas' attribute is ignored here"; - const kind = .warning; - }; - pub const zero_align_ignored = struct { - const msg = "requested alignment of zero is ignored"; - const kind = .warning; - }; - pub const non_pow2_align = struct { - const msg = "requested alignment is not a power of 2"; - const kind = .@"error"; - }; - pub const pointer_mismatch = struct { - const msg = "pointer type mismatch ({s})"; - const extra = .str; - const opt = "pointer-type-mismatch"; - const kind = .warning; - }; - pub const static_assert_not_constant = struct { - const msg = "static_assert expression is not an integral constant expression"; - const kind = .@"error"; - }; - pub const static_assert_missing_message = struct { - const msg = "static_assert with no message is a C2X extension"; - const opt = "c2x-extensions"; - const kind = .warning; - const suppress_version = .c2x; - }; - pub const pre_c2x_compat = struct { - const msg = "{s} is incompatible with C standards before C2x"; - const extra = .str; - const kind = .off; - const suppress_unless_version = .c2x; - const opt = "pre-c2x-compat"; - }; - pub const unbound_vla = struct { - const msg = "variable length array must be bound in function definition"; - const kind = .@"error"; - }; - pub const array_too_large = struct { - const msg = "array is too large"; - const kind = .@"error"; - }; - pub const incompatible_ptr_init = struct { - const msg = "incompatible pointer types initializing {s}"; - const extra = .str; - const opt = "incompatible-pointer-types"; - const kind = .warning; - }; - pub const incompatible_ptr_init_sign = struct { - const msg = "incompatible pointer types initializing {s}" ++ PointerSignMessage; - const extra = .str; - const opt = "pointer-sign"; - const kind = .warning; - }; - pub const incompatible_ptr_assign = struct { - const msg = "incompatible pointer types assigning to {s}"; - const extra = .str; - const opt = "incompatible-pointer-types"; - const kind = .warning; - }; - pub const incompatible_ptr_assign_sign = struct { - const msg = "incompatible pointer types assigning to {s} " ++ PointerSignMessage; - const extra = .str; - const opt = "pointer-sign"; - const kind = .warning; - }; - pub const vla_init = struct { - const msg = "variable-sized object may not be initialized"; - const kind = .@"error"; - }; - pub const func_init = struct { - const msg = "illegal initializer type"; - const kind = .@"error"; - }; - pub const incompatible_init = struct { - const msg = "initializing {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const empty_scalar_init = struct { - const msg = "scalar initializer cannot be empty"; - const kind = .@"error"; - }; - pub const excess_scalar_init = struct { - const msg = "excess elements in scalar initializer"; - const opt = "excess-initializers"; - const kind = .warning; - }; - pub const excess_str_init = struct { - const msg = "excess elements in string initializer"; - const opt = "excess-initializers"; - const kind = .warning; - }; - pub const excess_struct_init = struct { - const msg = "excess elements in struct initializer"; - const opt = "excess-initializers"; - const kind = .warning; - }; - pub const excess_array_init = struct { - const msg = "excess elements in array initializer"; - const opt = "excess-initializers"; - const kind = .warning; - }; - pub const str_init_too_long = struct { - const msg = "initializer-string for char array is too long"; - const opt = "excess-initializers"; - const kind = .warning; - }; - pub const arr_init_too_long = struct { - const msg = "cannot initialize type ({s})"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_typeof = struct { - const msg = "'{s} typeof' is invalid"; - const extra = .str; - const kind = .@"error"; - }; - pub const division_by_zero = struct { - const msg = "{s} by zero is undefined"; - const extra = .str; - const opt = "division-by-zero"; - const kind = .warning; - }; - pub const division_by_zero_macro = struct { - const msg = "{s} by zero in preprocessor expression"; - const extra = .str; - const kind = .@"error"; - }; - pub const builtin_choose_cond = struct { - const msg = "'__builtin_choose_expr' requires a constant expression"; - const kind = .@"error"; - }; - pub const alignas_unavailable = struct { - const msg = "'_Alignas' attribute requires integer constant expression"; - const kind = .@"error"; - }; - pub const case_val_unavailable = struct { - const msg = "case value must be an integer constant expression"; - const kind = .@"error"; - }; - pub const enum_val_unavailable = struct { - const msg = "enum value must be an integer constant expression"; - const kind = .@"error"; - }; - pub const incompatible_array_init = struct { - const msg = "cannot initialize array of type {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const array_init_str = struct { - const msg = "array initializer must be an initializer list or wide string literal"; - const kind = .@"error"; - }; - pub const initializer_overrides = struct { - const msg = "initializer overrides previous initialization"; - const opt = "initializer-overrides"; - const kind = .warning; - const w_extra = true; - }; - pub const previous_initializer = struct { - const msg = "previous initialization"; - const kind = .note; - }; - pub const invalid_array_designator = struct { - const msg = "array designator used for non-array type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const negative_array_designator = struct { - const msg = "array designator value {d} is negative"; - const extra = .signed; - const kind = .@"error"; - }; - pub const oob_array_designator = struct { - const msg = "array designator index {d} exceeds array bounds"; - const extra = .unsigned; - const kind = .@"error"; - }; - pub const invalid_field_designator = struct { - const msg = "field designator used for non-record type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const no_such_field_designator = struct { - const msg = "record type has no field named '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const empty_aggregate_init_braces = struct { - const msg = "initializer for aggregate with no elements requires explicit braces"; - const kind = .@"error"; - }; - pub const ptr_init_discards_quals = struct { - const msg = "initializing {s} discards qualifiers"; - const extra = .str; - const opt = "incompatible-pointer-types-discards-qualifiers"; - const kind = .warning; - }; - pub const ptr_assign_discards_quals = struct { - const msg = "assigning to {s} discards qualifiers"; - const extra = .str; - const opt = "incompatible-pointer-types-discards-qualifiers"; - const kind = .warning; - }; - pub const ptr_ret_discards_quals = struct { - const msg = "returning {s} discards qualifiers"; - const extra = .str; - const opt = "incompatible-pointer-types-discards-qualifiers"; - const kind = .warning; - }; - pub const ptr_arg_discards_quals = struct { - const msg = "passing {s} discards qualifiers"; - const extra = .str; - const opt = "incompatible-pointer-types-discards-qualifiers"; - const kind = .warning; - }; - pub const unknown_attribute = struct { - const msg = "unknown attribute '{s}' ignored"; - const extra = .str; - const opt = "unknown-attributes"; - const kind = .warning; - }; - pub const ignored_attribute = struct { - const msg = "{s}"; - const extra = .str; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const invalid_fallthrough = struct { - const msg = "fallthrough annotation does not directly precede switch label"; - const kind = .@"error"; - }; - pub const cannot_apply_attribute_to_statement = struct { - const msg = "'{s}' attribute cannot be applied to a statement"; - const extra = .str; - const kind = .@"error"; - }; - pub const builtin_macro_redefined = struct { - const msg = "redefining builtin macro"; - const opt = "builtin-macro-redefined"; - const kind = .warning; - }; - pub const feature_check_requires_identifier = struct { - const msg = "builtin feature check macro requires a parenthesized identifier"; - const kind = .@"error"; - }; - pub const missing_tok_builtin = struct { - const msg = "missing '{s}', after builtin feature-check macro"; - const extra = .tok_id_expected; - const kind = .@"error"; - }; - pub const gnu_label_as_value = struct { - const msg = "use of GNU address-of-label extension"; - const opt = "gnu-label-as-value"; - const kind = .off; - const pedantic = true; - }; - pub const expected_record_ty = struct { - const msg = "member reference base type '{s}' is not a structure or union"; - const extra = .str; - const kind = .@"error"; - }; - pub const member_expr_not_ptr = struct { - const msg = "member reference type '{s}' is not a pointer; did you mean to use '.'?"; - const extra = .str; - const kind = .@"error"; - }; - pub const member_expr_ptr = struct { - const msg = "member reference type '{s}' is a pointer; did you mean to use '->'?"; - const extra = .str; - const kind = .@"error"; - }; - pub const no_such_member = struct { - const msg = "no member named {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const malformed_warning_check = struct { - const msg = "{s} expected option name (e.g. \"-Wundef\")"; - const extra = .str; - const opt = "malformed-warning-check"; - const kind = .warning; - const all = true; - }; - pub const invalid_computed_goto = struct { - const msg = "computed goto in function with no address-of-label expressions"; - const kind = .@"error"; - }; - pub const pragma_warning_message = struct { - const msg = "{s}"; - const extra = .str; - const opt = "#pragma-messages"; - const kind = .warning; - }; - pub const pragma_error_message = struct { - const msg = "{s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const pragma_message = struct { - const msg = "#pragma message: {s}"; - const extra = .str; - const kind = .note; - }; - pub const pragma_requires_string_literal = struct { - const msg = "pragma {s} requires string literal"; - const extra = .str; - const kind = .@"error"; - }; - pub const poisoned_identifier = struct { - const msg = "attempt to use a poisoned identifier"; - const kind = .@"error"; - }; - pub const pragma_poison_identifier = struct { - const msg = "can only poison identifier tokens"; - const kind = .@"error"; - }; - pub const pragma_poison_macro = struct { - const msg = "poisoning existing macro"; - const kind = .warning; - }; - pub const newline_eof = struct { - const msg = "no newline at end of file"; - const opt = "newline-eof"; - const kind = .off; - const pedantic = true; - }; - pub const empty_translation_unit = struct { - const msg = "ISO C requires a translation unit to contain at least one declaration"; - const opt = "empty-translation-unit"; - const kind = .off; - const pedantic = true; - }; - pub const omitting_parameter_name = struct { - const msg = "omitting the parameter name in a function definition is a C2x extension"; - const opt = "c2x-extensions"; - const kind = .warning; - const suppress_version = .c2x; - }; - pub const non_int_bitfield = struct { - const msg = "bit-field has non-integer type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const negative_bitwidth = struct { - const msg = "bit-field has negative width ({d})"; - const extra = .signed; - const kind = .@"error"; - }; - pub const zero_width_named_field = struct { - const msg = "named bit-field has zero width"; - const kind = .@"error"; - }; - pub const bitfield_too_big = struct { - const msg = "width of bit-field exceeds width of its type"; - const kind = .@"error"; - }; - pub const invalid_utf8 = struct { - const msg = "source file is not valid UTF-8"; - const kind = .@"error"; - }; - pub const implicitly_unsigned_literal = struct { - const msg = "integer literal is too large to be represented in a signed integer type, interpreting as unsigned"; - const opt = "implicitly-unsigned-literal"; - const kind = .warning; - }; - pub const invalid_preproc_operator = struct { - const msg = "token is not a valid binary operator in a preprocessor subexpression"; - const kind = .@"error"; - }; - pub const invalid_preproc_expr_start = struct { - const msg = "invalid token at start of a preprocessor expression"; - const kind = .@"error"; - }; - pub const c99_compat = struct { - const msg = "using this character in an identifier is incompatible with C99"; - const opt = "c99-compat"; - const kind = .off; - }; - pub const unexpected_character = struct { - const msg = "unexpected character 4}>"; - const extra = .actual_codepoint; - const kind = .@"error"; - }; - pub const invalid_identifier_start_char = struct { - const msg = "character 4}> not allowed at the start of an identifier"; - const extra = .actual_codepoint; - const kind = .@"error"; - }; - pub const unicode_zero_width = struct { - const msg = "identifier contains Unicode character 4}> that is invisible in some environments"; - const opt = "unicode-homoglyph"; - const extra = .actual_codepoint; - const kind = .warning; - }; - pub const unicode_homoglyph = struct { - const msg = "treating Unicode character 4}> as identifier character rather than as '{u}' symbol"; - const extra = .codepoints; - const opt = "unicode-homoglyph"; - const kind = .warning; - }; - pub const meaningless_asm_qual = struct { - const msg = "meaningless '{s}' on assembly outside function"; - const extra = .str; - const kind = .@"error"; - }; - pub const duplicate_asm_qual = struct { - const msg = "duplicate asm qualifier '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_asm_str = struct { - const msg = "cannot use {s} string literal in assembly"; - const extra = .str; - const kind = .@"error"; - }; - pub const dollar_in_identifier_extension = struct { - const msg = "'$' in identifier"; - const opt = "dollar-in-identifier-extension"; - const kind = .off; - const suppress_language_option = "dollars_in_identifiers"; - const pedantic = true; - }; - pub const dollars_in_identifiers = struct { - const msg = "illegal character '$' in identifier"; - const kind = .@"error"; - }; - pub const expanded_from_here = struct { - const msg = "expanded from here"; - const kind = .note; - }; - pub const skipping_macro_backtrace = struct { - const msg = "(skipping {d} expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)"; - const extra = .unsigned; - const kind = .note; - }; - pub const pragma_operator_string_literal = struct { - const msg = "_Pragma requires exactly one string literal token"; - const kind = .@"error"; - }; - pub const unknown_gcc_pragma = struct { - const msg = "pragma GCC expected 'error', 'warning', 'diagnostic', 'poison'"; - const opt = "unknown-pragmas"; - const kind = .off; - const all = true; - }; - pub const unknown_gcc_pragma_directive = struct { - const msg = "pragma GCC diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'"; - const opt = "unknown-pragmas"; - const kind = .warning; - const all = true; - }; - pub const predefined_top_level = struct { - const msg = "predefined identifier is only valid inside function"; - const opt = "predefined-identifier-outside-function"; - const kind = .warning; - }; - pub const incompatible_va_arg = struct { - const msg = "first argument to va_arg, is of type '{s}' and not 'va_list'"; - const extra = .str; - const kind = .@"error"; - }; - pub const too_many_scalar_init_braces = struct { - const msg = "too many braces around scalar initializer"; - const opt = "many-braces-around-scalar-init"; - const kind = .warning; - }; - pub const uninitialized_in_own_init = struct { - const msg = "variable '{s}' is uninitialized when used within its own initialization"; - const extra = .str; - const opt = "uninitialized"; - const kind = .off; - const all = true; - }; - pub const gnu_statement_expression = struct { - const msg = "use of GNU statement expression extension"; - const opt = "gnu-statement-expression"; - const kind = .off; - const suppress_gnu = true; - const pedantic = true; - }; - pub const stmt_expr_not_allowed_file_scope = struct { - const msg = "statement expression not allowed at file scope"; - const kind = .@"error"; - }; - pub const gnu_imaginary_constant = struct { - const msg = "imaginary constants are a GNU extension"; - const opt = "gnu-imaginary-constant"; - const kind = .off; - const suppress_gnu = true; - const pedantic = true; - }; - pub const plain_complex = struct { - const msg = "plain '_Complex' requires a type specifier; assuming '_Complex double'"; - const kind = .warning; - }; - pub const complex_int = struct { - const msg = "complex integer types are a GNU extension"; - const opt = "gnu-complex-integer"; - const suppress_gnu = true; - const kind = .off; - }; - pub const qual_on_ret_type = struct { - const msg = "'{s}' type qualifier on return type has no effect"; - const opt = "ignored-qualifiers"; - const extra = .str; - const kind = .off; - const all = true; - }; - pub const cli_invalid_standard = struct { - const msg = "invalid standard '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const cli_invalid_target = struct { - const msg = "invalid target '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const cli_invalid_emulate = struct { - const msg = "invalid compiler '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const cli_unknown_arg = struct { - const msg = "unknown argument '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const cli_error = struct { - const msg = "{s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const cli_unused_link_object = struct { - const msg = "{s}: linker input file unused because linking not done"; - const extra = .str; - const kind = .warning; - }; - pub const cli_unknown_linker = struct { - const msg = "unrecognized linker '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const extra_semi = struct { - const msg = "extra ';' outside of a function"; - const opt = "extra-semi"; - const kind = .off; - const pedantic = true; - }; - pub const func_field = struct { - const msg = "field declared as a function"; - const kind = .@"error"; - }; - pub const vla_field = struct { - const msg = "variable length array fields extension is not supported"; - const kind = .@"error"; - }; - pub const field_incomplete_ty = struct { - const msg = "field has incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const flexible_in_union = struct { - const msg = "flexible array member in union is not allowed"; - const kind = .@"error"; - const suppress_msvc = true; - }; - pub const flexible_non_final = struct { - const msg = "flexible array member is not at the end of struct"; - const kind = .@"error"; - }; - pub const flexible_in_empty = struct { - const msg = "flexible array member in otherwise empty struct"; - const kind = .@"error"; - const suppress_msvc = true; - }; - pub const duplicate_member = struct { - const msg = "duplicate member '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const binary_integer_literal = struct { - const msg = "binary integer literals are a GNU extension"; - const kind = .off; - const opt = "gnu-binary-literal"; - const pedantic = true; - }; - pub const gnu_va_macro = struct { - const msg = "named variadic macros are a GNU extension"; - const opt = "variadic-macros"; - const kind = .off; - const pedantic = true; - }; - pub const builtin_must_be_called = struct { - const msg = "builtin function must be directly called"; - const kind = .@"error"; - }; - pub const va_start_not_in_func = struct { - const msg = "'va_start' cannot be used outside a function"; - const kind = .@"error"; - }; - pub const va_start_fixed_args = struct { - const msg = "'va_start' used in a function with fixed args"; - const kind = .@"error"; - }; - pub const va_start_not_last_param = struct { - const msg = "second argument to 'va_start' is not the last named parameter"; - const opt = "varargs"; - const kind = .warning; - }; - pub const attribute_not_enough_args = struct { - const msg = "'{s}' attribute takes at least {d} argument(s)"; - const kind = .@"error"; - const extra = .attr_arg_count; - }; - pub const attribute_too_many_args = struct { - const msg = "'{s}' attribute takes at most {d} argument(s)"; - const kind = .@"error"; - const extra = .attr_arg_count; - }; - pub const attribute_arg_invalid = struct { - const msg = "Attribute argument is invalid, expected {s} but got {s}"; - const kind = .@"error"; - const extra = .attr_arg_type; - }; - pub const unknown_attr_enum = struct { - const msg = "Unknown `{s}` argument. Possible values are: {s}"; - const kind = .@"error"; - const extra = .attr_enum; - }; - pub const attribute_requires_identifier = struct { - const msg = "'{s}' attribute requires an identifier"; - const kind = .@"error"; - const extra = .str; - }; - pub const declspec_not_enabled = struct { - const msg = "'__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes"; - const kind = .@"error"; - }; - pub const declspec_attr_not_supported = struct { - const msg = "__declspec attribute '{s}' is not supported"; - const extra = .str; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const deprecated_declarations = struct { - const msg = "{s}"; - const extra = .str; - const opt = "deprecated-declarations"; - const kind = .warning; - }; - pub const deprecated_note = struct { - const msg = "'{s}' has been explicitly marked deprecated here"; - const extra = .str; - const opt = "deprecated-declarations"; - const kind = .note; - }; - pub const unavailable = struct { - const msg = "{s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const unavailable_note = struct { - const msg = "'{s}' has been explicitly marked unavailable here"; - const extra = .str; - const kind = .note; - }; - pub const warning_attribute = struct { - const msg = "{s}"; - const extra = .str; - const kind = .warning; - const opt = "attribute-warning"; - }; - pub const error_attribute = struct { - const msg = "{s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const ignored_record_attr = struct { - const msg = "attribute '{s}' is ignored, place it after \"{s}\" to apply attribute to type declaration"; - const extra = .ignored_record_attr; - const kind = .warning; - const opt = "ignored-attributes"; - }; - pub const backslash_newline_escape = struct { - const msg = "backslash and newline separated by space"; - const kind = .warning; - const opt = "backslash-newline-escape"; - }; - pub const array_size_non_int = struct { - const msg = "size of array has non-integer type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const cast_to_smaller_int = struct { - const msg = "cast to smaller integer type {s}"; - const extra = .str; - const kind = .warning; - const opt = "pointer-to-int-cast"; - }; - pub const gnu_switch_range = struct { - const msg = "use of GNU case range extension"; - const opt = "gnu-case-range"; - const kind = .off; - const pedantic = true; - }; - pub const empty_case_range = struct { - const msg = "empty case range specified"; - const kind = .warning; - }; - pub const non_standard_escape_char = struct { - const msg = "use of non-standard escape character '\\{s}'"; - const kind = .off; - const opt = "pedantic"; - const extra = .invalid_escape; - }; - pub const invalid_pp_stringify_escape = struct { - const msg = "invalid string literal, ignoring final '\\'"; - const kind = .warning; - }; - pub const vla = struct { - const msg = "variable length array used"; - const kind = .off; - const opt = "vla"; - }; - pub const float_overflow_conversion = struct { - const msg = "implicit conversion of non-finite value from {s} is undefined"; - const extra = .str; - const kind = .off; - const opt = "float-overflow-conversion"; - }; - pub const float_out_of_range = struct { - const msg = "implicit conversion of out of range value from {s} is undefined"; - const extra = .str; - const kind = .warning; - const opt = "literal-conversion"; - }; - pub const float_zero_conversion = struct { - const msg = "implicit conversion from {s}"; - const extra = .str; - const kind = .off; - const opt = "float-zero-conversion"; - }; - pub const float_value_changed = struct { - const msg = "implicit conversion from {s}"; - const extra = .str; - const kind = .warning; - const opt = "float-conversion"; - }; - pub const float_to_int = struct { - const msg = "implicit conversion turns floating-point number into integer: {s}"; - const extra = .str; - const kind = .off; - const opt = "literal-conversion"; - }; - pub const const_decl_folded = struct { - const msg = "expression is not an integer constant expression; folding it to a constant is a GNU extension"; - const kind = .off; - const opt = "gnu-folding-constant"; - const pedantic = true; - }; - pub const const_decl_folded_vla = struct { - const msg = "variable length array folded to constant array as an extension"; - const kind = .off; - const opt = "gnu-folding-constant"; - const pedantic = true; - }; - pub const redefinition_of_typedef = struct { - const msg = "typedef redefinition with different types ({s})"; - const extra = .str; - const kind = .@"error"; - }; - pub const undefined_macro = struct { - const msg = "'{s}' is not defined, evaluates to 0"; - const extra = .str; - const kind = .off; - const opt = "undef"; - }; - pub const fn_macro_undefined = struct { - const msg = "function-like macro '{s}' is not defined"; - const extra = .str; - const kind = .@"error"; - }; - pub const preprocessing_directive_only = struct { - const msg = "'{s}' must be used within a preprocessing directive"; - const extra = .tok_id_expected; - const kind = .@"error"; - }; - pub const missing_lparen_after_builtin = struct { - const msg = "Missing '(' after built-in macro '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const offsetof_ty = struct { - const msg = "offsetof requires struct or union type, '{s}' invalid"; - const extra = .str; - const kind = .@"error"; - }; - pub const offsetof_incomplete = struct { - const msg = "offsetof of incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const offsetof_array = struct { - const msg = "offsetof requires array type, '{s}' invalid"; - const extra = .str; - const kind = .@"error"; - }; - pub const pragma_pack_lparen = struct { - const msg = "missing '(' after '#pragma pack' - ignoring"; - const kind = .warning; - const opt = "ignored-pragmas"; - }; - pub const pragma_pack_rparen = struct { - const msg = "missing ')' after '#pragma pack' - ignoring"; - const kind = .warning; - const opt = "ignored-pragmas"; - }; - pub const pragma_pack_unknown_action = struct { - const msg = "unknown action for '#pragma pack' - ignoring"; - const opt = "ignored-pragmas"; - const kind = .warning; - }; - pub const pragma_pack_show = struct { - const msg = "value of #pragma pack(show) == {d}"; - const extra = .unsigned; - const kind = .warning; - }; - pub const pragma_pack_int = struct { - const msg = "expected #pragma pack parameter to be '1', '2', '4', '8', or '16'"; - const opt = "ignored-pragmas"; - const kind = .warning; - }; - pub const pragma_pack_int_ident = struct { - const msg = "expected integer or identifier in '#pragma pack' - ignored"; - const opt = "ignored-pragmas"; - const kind = .warning; - }; - pub const pragma_pack_undefined_pop = struct { - const msg = "specifying both a name and alignment to 'pop' is undefined"; - const kind = .warning; - }; - pub const pragma_pack_empty_stack = struct { - const msg = "#pragma pack(pop, ...) failed: stack empty"; - const opt = "ignored-pragmas"; - const kind = .warning; - }; - pub const cond_expr_type = struct { - const msg = "used type '{s}' where arithmetic or pointer type is required"; - const extra = .str; - const kind = .@"error"; - }; - pub const too_many_includes = struct { - const msg = "#include nested too deeply"; - const kind = .@"error"; - }; - pub const enumerator_too_small = struct { - const msg = "ISO C restricts enumerator values to range of 'int' ({d} is too small)"; - const extra = .signed; - const kind = .off; - const opt = "pedantic"; - }; - pub const enumerator_too_large = struct { - const msg = "ISO C restricts enumerator values to range of 'int' ({d} is too large)"; - const extra = .unsigned; - const kind = .off; - const opt = "pedantic"; - }; - pub const include_next = struct { - const msg = "#include_next is a language extension"; - const kind = .off; - const pedantic = true; - const opt = "gnu-include-next"; - }; - pub const include_next_outside_header = struct { - const msg = "#include_next in primary source file; will search from start of include path"; - const kind = .warning; - const opt = "include-next-outside-header"; - }; - pub const enumerator_overflow = struct { - const msg = "overflow in enumeration value"; - const kind = .warning; - }; - pub const enum_not_representable = struct { - const msg = "incremented enumerator value {s} is not representable in the largest integer type"; - const kind = .warning; - const opt = "enum-too-large"; - const extra = .pow_2_as_string; - }; - pub const enum_too_large = struct { - const msg = "enumeration values exceed range of largest integer"; - const kind = .warning; - const opt = "enum-too-large"; - }; - pub const enum_fixed = struct { - const msg = "enumeration types with a fixed underlying type are a Clang extension"; - const kind = .off; - const pedantic = true; - const opt = "fixed-enum-extension"; - }; - pub const enum_prev_nonfixed = struct { - const msg = "enumeration previously declared with nonfixed underlying type"; - const kind = .@"error"; - }; - pub const enum_prev_fixed = struct { - const msg = "enumeration previously declared with fixed underlying type"; - const kind = .@"error"; - }; - pub const enum_different_explicit_ty = struct { - // str will be like 'new' (was 'old' - const msg = "enumeration redeclared with different underlying type {s})"; - const extra = .str; - const kind = .@"error"; - }; - pub const enum_not_representable_fixed = struct { - const msg = "enumerator value is not representable in the underlying type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const transparent_union_wrong_type = struct { - const msg = "'transparent_union' attribute only applies to unions"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const transparent_union_one_field = struct { - const msg = "transparent union definition must contain at least one field; transparent_union attribute ignored"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const transparent_union_size = struct { - const msg = "size of field {s} bits) does not match the size of the first field in transparent union; transparent_union attribute ignored"; - const extra = .str; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const transparent_union_size_note = struct { - const msg = "size of first field is {d}"; - const extra = .unsigned; - const kind = .note; - }; - pub const designated_init_invalid = struct { - const msg = "'designated_init' attribute is only valid on 'struct' type'"; - const kind = .@"error"; - }; - pub const designated_init_needed = struct { - const msg = "positional initialization of field in 'struct' declared with 'designated_init' attribute"; - const opt = "designated-init"; - const kind = .warning; - }; - pub const ignore_common = struct { - const msg = "ignoring attribute 'common' because it conflicts with attribute 'nocommon'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const ignore_nocommon = struct { - const msg = "ignoring attribute 'nocommon' because it conflicts with attribute 'common'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const non_string_ignored = struct { - const msg = "'nonstring' attribute ignored on objects of type '{s}'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const local_variable_attribute = struct { - const msg = "'{s}' attribute only applies to local variables"; - const extra = .str; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const ignore_cold = struct { - const msg = "ignoring attribute 'cold' because it conflicts with attribute 'hot'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const ignore_hot = struct { - const msg = "ignoring attribute 'hot' because it conflicts with attribute 'cold'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const ignore_noinline = struct { - const msg = "ignoring attribute 'noinline' because it conflicts with attribute 'always_inline'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const ignore_always_inline = struct { - const msg = "ignoring attribute 'always_inline' because it conflicts with attribute 'noinline'"; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const invalid_noreturn = struct { - const msg = "function '{s}' declared 'noreturn' should not return"; - const extra = .str; - const kind = .warning; - const opt = "invalid-noreturn"; - }; - pub const nodiscard_unused = struct { - const msg = "ignoring return value of '{s}', declared with 'nodiscard' attribute"; - const extra = .str; - const kind = .warning; - const op = "unused-result"; - }; - pub const warn_unused_result = struct { - const msg = "ignoring return value of '{s}', declared with 'warn_unused_result' attribute"; - const extra = .str; - const kind = .warning; - const op = "unused-result"; - }; - pub const invalid_vec_elem_ty = struct { - const msg = "invalid vector element type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const vec_size_not_multiple = struct { - const msg = "vector size not an integral multiple of component size"; - const kind = .@"error"; - }; - pub const invalid_imag = struct { - const msg = "invalid type '{s}' to __imag operator"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_real = struct { - const msg = "invalid type '{s}' to __real operator"; - const extra = .str; - const kind = .@"error"; - }; - pub const zero_length_array = struct { - const msg = "zero size arrays are an extension"; - const kind = .off; - const pedantic = true; - const opt = "zero-length-array"; - }; - pub const old_style_flexible_struct = struct { - const msg = "array index {d} is past the end of the array"; - const extra = .unsigned; - const kind = .off; - const pedantic = true; - const opt = "old-style-flexible-struct"; - }; - pub const comma_deletion_va_args = struct { - const msg = "token pasting of ',' and __VA_ARGS__ is a GNU extension"; - const kind = .off; - const pedantic = true; - const opt = "gnu-zero-variadic-macro-arguments"; - const suppress_gcc = true; - }; - pub const main_return_type = struct { - const msg = "return type of 'main' is not 'int'"; - const kind = .warning; - const opt = "main-return-type"; - }; - pub const expansion_to_defined = struct { - const msg = "macro expansion producing 'defined' has undefined behavior"; - const kind = .off; - const pedantic = true; - const opt = "expansion-to-defined"; - }; - pub const invalid_int_suffix = struct { - const msg = "invalid suffix '{s}' on integer constant"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_float_suffix = struct { - const msg = "invalid suffix '{s}' on floating constant"; - const extra = .str; - const kind = .@"error"; - }; - pub const invalid_octal_digit = struct { - const msg = "invalid digit '{c}' in octal constant"; - const extra = .ascii; - const kind = .@"error"; - }; - pub const invalid_binary_digit = struct { - const msg = "invalid digit '{c}' in binary constant"; - const extra = .ascii; - const kind = .@"error"; - }; - pub const exponent_has_no_digits = struct { - const msg = "exponent has no digits"; - const kind = .@"error"; - }; - pub const hex_floating_constant_requires_exponent = struct { - const msg = "hexadecimal floating constant requires an exponent"; - const kind = .@"error"; - }; - pub const sizeof_returns_zero = struct { - const msg = "sizeof returns 0"; - const kind = .warning; - const suppress_gcc = true; - const suppress_clang = true; - }; - pub const declspec_not_allowed_after_declarator = struct { - const msg = "'declspec' attribute not allowed after declarator"; - const kind = .@"error"; - }; - pub const declarator_name_tok = struct { - const msg = "this declarator"; - const kind = .note; - }; - pub const type_not_supported_on_target = struct { - const msg = "{s} is not supported on this target"; - const extra = .str; - const kind = .@"error"; - }; - pub const bit_int = struct { - const msg = "'_BitInt' in C17 and earlier is a Clang extension'"; - const kind = .off; - const pedantic = true; - const opt = "bit-int-extension"; - const suppress_version = .c2x; - }; - pub const unsigned_bit_int_too_small = struct { - const msg = "{s} must have a bit size of at least 1"; - const extra = .str; - const kind = .@"error"; - }; - pub const signed_bit_int_too_small = struct { - const msg = "{s} must have a bit size of at least 2"; - const extra = .str; - const kind = .@"error"; - }; - pub const bit_int_too_big = struct { - const msg = "{s} of bit sizes greater than " ++ std.fmt.comptimePrint("{d}", .{Compilation.bit_int_max_bits}) ++ " not supported"; - const extra = .str; - const kind = .@"error"; - }; - pub const keyword_macro = struct { - const msg = "keyword is hidden by macro definition"; - const kind = .off; - const pedantic = true; - const opt = "keyword-macro"; - }; - pub const ptr_arithmetic_incomplete = struct { - const msg = "arithmetic on a pointer to an incomplete type '{s}'"; - const extra = .str; - const kind = .@"error"; - }; - pub const callconv_not_supported = struct { - const msg = "'{s}' calling convention is not supported for this target"; - const extra = .str; - const opt = "ignored-attributes"; - const kind = .warning; - }; - pub const pointer_arith_void = struct { - const msg = "invalid application of '{s}' to a void type"; - const extra = .str; - const kind = .off; - const pedantic = true; - const opt = "pointer-arith"; - }; - pub const sizeof_array_arg = struct { - const msg = "sizeof on array function parameter will return size of {s}"; - const extra = .str; - const kind = .warning; - const opt = "sizeof-array-argument"; - }; - pub const array_address_to_bool = struct { - const msg = "address of array '{s}' will always evaluate to 'true'"; - const extra = .str; - const kind = .warning; - const opt = "pointer-bool-conversion"; - }; - pub const string_literal_to_bool = struct { - const msg = "implicit conversion turns string literal into bool: {s}"; - const extra = .str; - const kind = .off; - const opt = "string-conversion"; - }; - pub const constant_expression_conversion_not_allowed = struct { - const msg = "this conversion is not allowed in a constant expression"; - const kind = .note; - }; - pub const invalid_object_cast = struct { - const msg = "cannot cast an object of type {s}"; - const extra = .str; - const kind = .@"error"; - }; - pub const cli_invalid_fp_eval_method = struct { - const msg = "unsupported argument '{s}' to option '-ffp-eval-method='; expected 'source', 'double', or 'extended'"; - const extra = .str; - const kind = .@"error"; - }; - pub const suggest_pointer_for_invalid_fp16 = struct { - const msg = "{s} cannot have __fp16 type; did you forget * ?"; - const extra = .str; - const kind = .@"error"; - }; - pub const bitint_suffix = struct { - const msg = "'_BitInt' suffix for literals is a C2x extension"; - const opt = "c2x-extensions"; - const kind = .warning; - const suppress_version = .c2x; - }; - pub const auto_type_extension = struct { - const msg = "'__auto_type' is a GNU extension"; - const opt = "gnu-auto-type"; - const kind = .off; - const pedantic = true; - }; - pub const auto_type_not_allowed = struct { - const msg = "'__auto_type' not allowed in {s}"; - const kind = .@"error"; - const extra = .str; - }; - pub const auto_type_requires_initializer = struct { - const msg = "declaration of variable '{s}' with deduced type requires an initializer"; - const kind = .@"error"; - const extra = .str; - }; - pub const auto_type_requires_single_declarator = struct { - const msg = "'__auto_type' may only be used with a single declarator"; - const kind = .@"error"; - }; - pub const auto_type_requires_plain_declarator = struct { - const msg = "'__auto_type' requires a plain identifier as declarator"; - const kind = .@"error"; - }; - pub const invalid_cast_to_auto_type = struct { - const msg = "invalid cast to '__auto_type'"; - const kind = .@"error"; - }; - pub const auto_type_from_bitfield = struct { - const msg = "cannot use bit-field as '__auto_type' initializer"; - const kind = .@"error"; - }; - pub const array_of_auto_type = struct { - const msg = "'{s}' declared as array of '__auto_type'"; - const kind = .@"error"; - const extra = .str; - }; - pub const auto_type_with_init_list = struct { - const msg = "cannot use '__auto_type' with initializer list"; - const kind = .@"error"; - }; - pub const missing_semicolon = struct { - const msg = "expected ';' at end of declaration list"; - const kind = .warning; - }; - pub const tentative_definition_incomplete = struct { - const msg = "tentative definition has type '{s}' that is never completed"; - const kind = .@"error"; - const extra = .str; - }; - pub const forward_declaration_here = struct { - const msg = "forward declaration of '{s}'"; - const kind = .note; - const extra = .str; - }; - pub const gnu_union_cast = struct { - const msg = "cast to union type is a GNU extension"; - const opt = "gnu-union-cast"; - const kind = .off; - const pedantic = true; - }; - pub const invalid_union_cast = struct { - const msg = "cast to union type from type '{s}' not present in union"; - const kind = .@"error"; - const extra = .str; - }; - pub const cast_to_incomplete_type = struct { - const msg = "cast to incomplete type '{s}'"; - const kind = .@"error"; - const extra = .str; - }; - pub const invalid_source_epoch = struct { - const msg = "environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer less than or equal to 253402300799"; - const kind = .@"error"; - }; - pub const fuse_ld_path = struct { - const msg = "'-fuse-ld=' taking a path is deprecated; use '--ld-path=' instead"; - const kind = .off; - const opt = "fuse-ld-path"; - }; - pub const invalid_rtlib = struct { - const msg = "invalid runtime library name '{s}'"; - const kind = .@"error"; - const extra = .str; - }; - pub const unsupported_rtlib_gcc = struct { - const msg = "unsupported runtime library 'libgcc' for platform '{s}'"; - const kind = .@"error"; - const extra = .str; - }; - pub const invalid_unwindlib = struct { - const msg = "invalid unwind library name '{s}'"; - const kind = .@"error"; - const extra = .str; - }; - pub const incompatible_unwindlib = struct { - const msg = "--rtlib=libgcc requires --unwindlib=libgcc"; - const kind = .@"error"; - }; - pub const gnu_asm_disabled = struct { - const msg = "GNU-style inline assembly is disabled"; - const kind = .@"error"; - }; - pub const extension_token_used = struct { - const msg = "extension used"; - const kind = .off; - const pedantic = true; - const opt = "language-extension-token"; - }; - pub const complex_component_init = struct { - const msg = "complex initialization specifying real and imaginary components is an extension"; - const opt = "complex-component-init"; - const kind = .off; - const pedantic = true; - }; - pub const complex_prefix_postfix_op = struct { - const msg = "ISO C does not support '++'/'--' on complex type '{s}'"; - const opt = "pedantic"; - const extra = .str; - const kind = .off; - }; - pub const not_floating_type = struct { - const msg = "argument type '{s}' is not a real floating point type"; - const extra = .str; - const kind = .@"error"; - }; - pub const argument_types_differ = struct { - const msg = "arguments are of different types ({s})"; - const extra = .str; - const kind = .@"error"; - }; - pub const ms_search_rule = struct { - const msg = "#include resolved using non-portable Microsoft search rules as: {s}"; - const extra = .str; - const opt = "microsoft-include"; - const kind = .warning; - }; - pub const ctrl_z_eof = struct { - const msg = "treating Ctrl-Z as end-of-file is a Microsoft extension"; - const opt = "microsoft-end-of-file"; - const kind = .off; - const pedantic = true; - }; - pub const illegal_char_encoding_warning = struct { - const msg = "illegal character encoding in character literal"; - const opt = "invalid-source-encoding"; - const kind = .warning; - }; - pub const illegal_char_encoding_error = struct { - const msg = "illegal character encoding in character literal"; - const kind = .@"error"; - }; - pub const ucn_basic_char_error = struct { - const msg = "character '{c}' cannot be specified by a universal character name"; - const kind = .@"error"; - const extra = .ascii; - }; - pub const ucn_basic_char_warning = struct { - const msg = "specifying character '{c}' with a universal character name is incompatible with C standards before C2x"; - const kind = .off; - const extra = .ascii; - const suppress_unless_version = .c2x; - const opt = "pre-c2x-compat"; - }; - pub const ucn_control_char_error = struct { - const msg = "universal character name refers to a control character"; - const kind = .@"error"; - }; - pub const ucn_control_char_warning = struct { - const msg = "universal character name referring to a control character is incompatible with C standards before C2x"; - const kind = .off; - const suppress_unless_version = .c2x; - const opt = "pre-c2x-compat"; - }; - pub const c89_ucn_in_literal = struct { - const msg = "universal character names are only valid in C99 or later"; - const suppress_version = .c99; - const kind = .warning; - const opt = "unicode"; - }; - pub const four_char_char_literal = struct { - const msg = "multi-character character constant"; - const opt = "four-char-constants"; - const kind = .off; - }; - pub const multi_char_char_literal = struct { - const msg = "multi-character character constant"; - const kind = .off; - }; - pub const missing_hex_escape = struct { - const msg = "\\{c} used with no following hex digits"; - const kind = .@"error"; - const extra = .ascii; - }; - pub const unknown_escape_sequence = struct { - const msg = "unknown escape sequence '\\{s}'"; - const kind = .warning; - const opt = "unknown-escape-sequence"; - const extra = .invalid_escape; - }; - pub const attribute_requires_string = struct { - const msg = "attribute '{s}' requires an ordinary string"; - const kind = .@"error"; - const extra = .str; - }; - pub const unterminated_string_literal_warning = struct { - const msg = "missing terminating '\"' character"; - const kind = .warning; - const opt = "invalid-pp-token"; - }; - pub const unterminated_string_literal_error = struct { - const msg = "missing terminating '\"' character"; - const kind = .@"error"; - }; - pub const empty_char_literal_warning = struct { - const msg = "empty character constant"; - const kind = .warning; - const opt = "invalid-pp-token"; - }; - pub const empty_char_literal_error = struct { - const msg = "empty character constant"; - const kind = .@"error"; - }; - pub const unterminated_char_literal_warning = struct { - const msg = "missing terminating ' character"; - const kind = .warning; - const opt = "invalid-pp-token"; - }; - pub const unterminated_char_literal_error = struct { - const msg = "missing terminating ' character"; - const kind = .@"error"; - }; - pub const unterminated_comment = struct { - const msg = "unterminated comment"; - const kind = .@"error"; - }; -}; - -list: std.ArrayListUnmanaged(Message) = .{}, -arena: std.heap.ArenaAllocator, -color: bool = true, -fatal_errors: bool = false, -options: Options = .{}, -errors: u32 = 0, -macro_backtrace_limit: u32 = 6, - -pub fn warningExists(name: []const u8) bool { - inline for (std.meta.fields(Options)) |f| { - if (mem.eql(u8, f.name, name)) return true; - } - return false; -} - -pub fn set(diag: *Diagnostics, name: []const u8, to: Kind) !void { - inline for (std.meta.fields(Options)) |f| { - if (mem.eql(u8, f.name, name)) { - @field(diag.options, f.name) = to; - return; - } - } - try diag.add(.{ - .tag = .unknown_warning, - .extra = .{ .str = name }, - }, &.{}); -} - -pub fn init(gpa: Allocator) Diagnostics { - return .{ - .arena = std.heap.ArenaAllocator.init(gpa), - }; -} - -pub fn deinit(diag: *Diagnostics) void { - diag.list.deinit(diag.arena.allocator()); - diag.arena.deinit(); -} - -pub fn add(diag: *Diagnostics, msg: Message, expansion_locs: []const Source.Location) Compilation.Error!void { - const kind = diag.tagKind(msg.tag); - if (kind == .off) return; - var copy = msg; - copy.kind = kind; - - if (expansion_locs.len != 0) copy.loc = expansion_locs[expansion_locs.len - 1]; - try diag.list.append(diag.arena.allocator(), copy); - if (expansion_locs.len != 0) { - // Add macro backtrace notes in reverse order omitting from the middle if needed. - var i = expansion_locs.len - 1; - const half = diag.macro_backtrace_limit / 2; - const limit = if (i < diag.macro_backtrace_limit) 0 else i - half; - try diag.list.ensureUnusedCapacity( - diag.arena.allocator(), - if (limit == 0) expansion_locs.len else diag.macro_backtrace_limit + 1, - ); - while (i > limit) { - i -= 1; - diag.list.appendAssumeCapacity(.{ - .tag = .expanded_from_here, - .kind = .note, - .loc = expansion_locs[i], - }); - } - if (limit != 0) { - diag.list.appendAssumeCapacity(.{ - .tag = .skipping_macro_backtrace, - .kind = .note, - .extra = .{ .unsigned = expansion_locs.len - diag.macro_backtrace_limit }, - }); - i = half - 1; - while (i > 0) { - i -= 1; - diag.list.appendAssumeCapacity(.{ - .tag = .expanded_from_here, - .kind = .note, - .loc = expansion_locs[i], - }); - } - } - - diag.list.appendAssumeCapacity(.{ - .tag = .expanded_from_here, - .kind = .note, - .loc = msg.loc, - }); - } - if (kind == .@"fatal error" or (kind == .@"error" and diag.fatal_errors)) - return error.FatalError; -} - -pub fn fatal( - diag: *Diagnostics, - path: []const u8, - line: []const u8, - line_no: u32, - col: u32, - comptime fmt: []const u8, - args: anytype, -) Compilation.Error { - var m = MsgWriter.init(diag.color); - defer m.deinit(); - - m.location(path, line_no, col); - m.start(.@"fatal error"); - m.print(fmt, args); - m.end(line, col, false); - - diag.errors += 1; - return error.FatalError; -} - -pub fn fatalNoSrc(diag: *Diagnostics, comptime fmt: []const u8, args: anytype) error{FatalError} { - if (!diag.color) { - std.debug.print("fatal error: " ++ fmt ++ "\n", args); - } else { - const std_err = std.io.getStdErr().writer(); - util.setColor(.red, std_err); - std_err.writeAll("fatal error: ") catch {}; - util.setColor(.white, std_err); - std_err.print(fmt ++ "\n", args) catch {}; - util.setColor(.reset, std_err); - } - diag.errors += 1; - return error.FatalError; -} - -pub fn render(comp: *Compilation) void { - if (comp.diag.list.items.len == 0) return; - var m = defaultMsgWriter(comp); - defer m.deinit(); - renderMessages(comp, &m); -} -pub fn defaultMsgWriter(comp: *const Compilation) MsgWriter { - return MsgWriter.init(comp.diag.color); -} - -pub fn renderMessages(comp: *Compilation, m: anytype) void { - var errors: u32 = 0; - var warnings: u32 = 0; - for (comp.diag.list.items) |msg| { - switch (msg.kind) { - .@"fatal error", .@"error" => errors += 1, - .warning => warnings += 1, - .note => {}, - .off => continue, // happens if an error is added before it is disabled - .default => unreachable, - } - renderMessage(comp, m, msg); - } - const w_s: []const u8 = if (warnings == 1) "" else "s"; - const e_s: []const u8 = if (errors == 1) "" else "s"; - if (errors != 0 and warnings != 0) { - m.print("{d} warning{s} and {d} error{s} generated.\n", .{ warnings, w_s, errors, e_s }); - } else if (warnings != 0) { - m.print("{d} warning{s} generated.\n", .{ warnings, w_s }); - } else if (errors != 0) { - m.print("{d} error{s} generated.\n", .{ errors, e_s }); - } - - comp.diag.list.items.len = 0; - comp.diag.errors += errors; -} - -pub fn renderMessage(comp: *Compilation, m: anytype, msg: Message) void { - var line: ?[]const u8 = null; - var end_with_splice = false; - const width = if (msg.loc.id != .unused) blk: { - var loc = msg.loc; - switch (msg.tag) { - .escape_sequence_overflow, - .invalid_universal_character, - // use msg.extra.unsigned for index into string literal - => loc.byte_offset += @truncate(msg.extra.unsigned), - .non_standard_escape_char, - .unknown_escape_sequence, - => loc.byte_offset += msg.extra.invalid_escape.offset, - else => {}, - } - const source = comp.getSource(loc.id); - var line_col = source.lineCol(loc); - line = line_col.line; - end_with_splice = line_col.end_with_splice; - if (msg.tag == .backslash_newline_escape) { - line = line_col.line[0 .. line_col.col - 1]; - line_col.col += 1; - line_col.width += 1; - } - m.location(source.path, line_col.line_no, line_col.col); - break :blk line_col.width; - } else 0; - - m.start(msg.kind); - @setEvalBranchQuota(1500); - switch (msg.tag) { - inline else => |tag| { - const info = @field(messages, @tagName(tag)); - if (@hasDecl(info, "extra")) { - switch (info.extra) { - .str => m.print(info.msg, .{msg.extra.str}), - .tok_id => m.print(info.msg, .{ - msg.extra.tok_id.expected.symbol(), - msg.extra.tok_id.actual.symbol(), - }), - .tok_id_expected => m.print(info.msg, .{msg.extra.tok_id_expected.symbol()}), - .arguments => m.print(info.msg, .{ msg.extra.arguments.expected, msg.extra.arguments.actual }), - .codepoints => m.print(info.msg, .{ - msg.extra.codepoints.actual, - msg.extra.codepoints.resembles, - }), - .attr_arg_count => m.print(info.msg, .{ - @tagName(msg.extra.attr_arg_count.attribute), - msg.extra.attr_arg_count.expected, - }), - .attr_arg_type => m.print(info.msg, .{ - msg.extra.attr_arg_type.expected.toString(), - msg.extra.attr_arg_type.actual.toString(), - }), - .actual_codepoint => m.print(info.msg, .{msg.extra.actual_codepoint}), - .ascii => m.print(info.msg, .{msg.extra.ascii}), - .unsigned => m.print(info.msg, .{msg.extra.unsigned}), - .pow_2_as_string => m.print(info.msg, .{switch (msg.extra.pow_2_as_string) { - 63 => "9223372036854775808", - 64 => "18446744073709551616", - 127 => "170141183460469231731687303715884105728", - 128 => "340282366920938463463374607431768211456", - else => unreachable, - }}), - .signed => m.print(info.msg, .{msg.extra.signed}), - .attr_enum => m.print(info.msg, .{ - @tagName(msg.extra.attr_enum.tag), - Attribute.Formatting.choices(msg.extra.attr_enum.tag), - }), - .ignored_record_attr => m.print(info.msg, .{ - @tagName(msg.extra.ignored_record_attr.tag), - @tagName(msg.extra.ignored_record_attr.specifier), - }), - .builtin_with_header => m.print(info.msg, .{ - @tagName(msg.extra.builtin_with_header.header), - Builtin.nameFromTag(msg.extra.builtin_with_header.builtin).span(), - }), - .invalid_escape => { - if (std.ascii.isPrint(msg.extra.invalid_escape.char)) { - const str: [1]u8 = .{msg.extra.invalid_escape.char}; - m.print(info.msg, .{&str}); - } else { - var buf: [3]u8 = undefined; - _ = std.fmt.bufPrint(&buf, "x{x}", .{std.fmt.fmtSliceHexLower(&.{msg.extra.invalid_escape.char})}) catch unreachable; - m.print(info.msg, .{&buf}); - } - }, - else => @compileError("invalid extra kind " ++ @tagName(info.extra)), - } - } else { - m.write(info.msg); - } - - if (@hasDecl(info, "opt")) { - if (msg.kind == .@"error" and info.kind != .@"error") { - m.print(" [-Werror,-W{s}]", .{info.opt}); - } else if (msg.kind != .note) { - m.print(" [-W{s}]", .{info.opt}); - } - } - }, - } - - m.end(line, width, end_with_splice); -} - -fn tagKind(diag: *Diagnostics, tag: Tag) Kind { - // XXX: horrible hack, do not do this - const comp = @fieldParentPtr(Compilation, "diag", diag); - - var kind: Kind = undefined; - switch (tag) { - inline else => |tag_val| { - const info = @field(messages, @tagName(tag_val)); - kind = info.kind; - - // stage1 doesn't like when I combine these ifs - if (@hasDecl(info, "all")) { - if (diag.options.all != .default) kind = diag.options.all; - } - if (@hasDecl(info, "w_extra")) { - if (diag.options.extra != .default) kind = diag.options.extra; - } - if (@hasDecl(info, "pedantic")) { - if (diag.options.pedantic != .default) kind = diag.options.pedantic; - } - if (@hasDecl(info, "opt")) { - if (@field(diag.options, info.opt) != .default) kind = @field(diag.options, info.opt); - } - if (@hasDecl(info, "suppress_version")) if (comp.langopts.standard.atLeast(info.suppress_version)) return .off; - if (@hasDecl(info, "suppress_unless_version")) if (!comp.langopts.standard.atLeast(info.suppress_unless_version)) return .off; - if (@hasDecl(info, "suppress_gnu")) if (comp.langopts.standard.isExplicitGNU()) return .off; - if (@hasDecl(info, "suppress_language_option")) if (!@field(comp.langopts, info.suppress_language_option)) return .off; - if (@hasDecl(info, "suppress_gcc")) if (comp.langopts.emulate == .gcc) return .off; - if (@hasDecl(info, "suppress_clang")) if (comp.langopts.emulate == .clang) return .off; - if (@hasDecl(info, "suppress_msvc")) if (comp.langopts.emulate == .msvc) return .off; - if (kind == .@"error" and diag.fatal_errors) kind = .@"fatal error"; - return kind; - }, - } -} - -const MsgWriter = struct { - w: std.io.BufferedWriter(4096, std.fs.File.Writer), - color: bool, - - fn init(color: bool) MsgWriter { - std.debug.getStderrMutex().lock(); - return .{ - .w = std.io.bufferedWriter(std.io.getStdErr().writer()), - .color = color, - }; - } - - pub fn deinit(m: *MsgWriter) void { - m.w.flush() catch {}; - std.debug.getStderrMutex().unlock(); - } - - pub fn print(m: *MsgWriter, comptime fmt: []const u8, args: anytype) void { - m.w.writer().print(fmt, args) catch {}; - } - - fn write(m: *MsgWriter, msg: []const u8) void { - m.w.writer().writeAll(msg) catch {}; - } - - fn setColor(m: *MsgWriter, color: util.Color) void { - util.setColor(color, m.w.writer()); - } - - fn location(m: *MsgWriter, path: []const u8, line: u32, col: u32) void { - const prefix = if (std.fs.path.dirname(path) == null and path[0] != '<') "." ++ std.fs.path.sep_str else ""; - if (!m.color) { - m.print("{s}{s}:{d}:{d}: ", .{ prefix, path, line, col }); - } else { - m.setColor(.white); - m.print("{s}{s}:{d}:{d}: ", .{ prefix, path, line, col }); - } - } - - fn start(m: *MsgWriter, kind: Kind) void { - if (!m.color) { - m.print("{s}: ", .{@tagName(kind)}); - } else { - switch (kind) { - .@"fatal error", .@"error" => m.setColor(.red), - .note => m.setColor(.cyan), - .warning => m.setColor(.purple), - .off, .default => unreachable, - } - m.write(switch (kind) { - .@"fatal error" => "fatal error: ", - .@"error" => "error: ", - .note => "note: ", - .warning => "warning: ", - .off, .default => unreachable, - }); - m.setColor(.white); - } - } - - fn end(m: *MsgWriter, maybe_line: ?[]const u8, col: u32, end_with_splice: bool) void { - const line = maybe_line orelse { - m.write("\n"); - m.setColor(.reset); - return; - }; - const trailer = if (end_with_splice) "\\ " else ""; - if (!m.color) { - m.print("\n{s}{s}\n", .{ line, trailer }); - m.print("{s: >[1]}^\n", .{ "", col }); - } else { - m.setColor(.reset); - m.print("\n{s}{s}\n{s: >[3]}", .{ line, trailer, "", col }); - m.setColor(.green); - m.write("^\n"); - m.setColor(.reset); - } - } -}; diff --git a/deps/aro/Interner.zig b/deps/aro/Interner.zig deleted file mode 100644 index 023a3e79f0..0000000000 --- a/deps/aro/Interner.zig +++ /dev/null @@ -1,180 +0,0 @@ -const Interner = @This(); -const std = @import("std"); -const Allocator = std.mem.Allocator; -const assert = std.debug.assert; -const Value = @import("Value.zig"); - -map: std.ArrayHashMapUnmanaged(Key, void, KeyContext, false) = .{}, - -const KeyContext = struct { - pub fn eql(_: @This(), a: Key, b: Key, _: usize) bool { - return b.eql(a); - } - - pub fn hash(_: @This(), a: Key) u32 { - return a.hash(); - } -}; - -pub const Key = union(enum) { - int: u16, - float: u16, - ptr, - noreturn, - void, - func, - array: struct { - len: u64, - child: Ref, - }, - vector: struct { - len: u32, - child: Ref, - }, - value: Value, - record: struct { - /// Pointer to user data, value used for hash and equality check. - user_ptr: *anyopaque, - /// TODO make smaller if Value is made smaller - elements: []const Ref, - }, - - pub fn hash(key: Key) u32 { - var hasher = std.hash.Wyhash.init(0); - switch (key) { - .value => |val| { - std.hash.autoHash(&hasher, val.tag); - switch (val.tag) { - .unavailable => unreachable, - .nullptr_t => std.hash.autoHash(&hasher, @as(u64, 0)), - .int => std.hash.autoHash(&hasher, val.data.int), - .float => std.hash.autoHash(&hasher, @as(u64, @bitCast(val.data.float))), - .bytes => std.hash.autoHashStrat(&hasher, val.data.bytes, .Shallow), - } - }, - .record => |info| { - std.hash.autoHash(&hasher, @intFromPtr(info.user_ptr)); - }, - inline else => |info| { - std.hash.autoHash(&hasher, info); - }, - } - return @truncate(hasher.final()); - } - - pub fn eql(a: Key, b: Key) bool { - const KeyTag = std.meta.Tag(Key); - const a_tag: KeyTag = a; - const b_tag: KeyTag = b; - if (a_tag != b_tag) return false; - switch (a) { - .value => |a_info| { - const b_info = b.value; - if (a_info.tag != b_info.tag) return false; - switch (a_info.tag) { - .unavailable => unreachable, - .nullptr_t => return true, - .int => return a_info.data.int == b_info.data.int, - .float => return a_info.data.float == b_info.data.float, - .bytes => return a_info.data.bytes.start == b_info.data.bytes.start and a_info.data.bytes.end == b_info.data.bytes.end, - } - }, - .record => |a_info| { - return a_info.user_ptr == b.record.user_ptr; - }, - inline else => |a_info, tag| { - const b_info = @field(b, @tagName(tag)); - return std.meta.eql(a_info, b_info); - }, - } - } - - fn toRef(key: Key) ?Ref { - switch (key) { - .int => |bits| switch (bits) { - 1 => return .i1, - 8 => return .i8, - 16 => return .i16, - 32 => return .i32, - 64 => return .i64, - 128 => return .i128, - else => {}, - }, - .float => |bits| switch (bits) { - 16 => return .f16, - 32 => return .f32, - 64 => return .f64, - 80 => return .f80, - 128 => return .f128, - else => unreachable, - }, - .ptr => return .ptr, - .func => return .func, - .noreturn => return .noreturn, - .void => return .void, - else => {}, - } - return null; - } -}; - -pub const Ref = enum(u32) { - const max = std.math.maxInt(u32); - - ptr = max - 0, - noreturn = max - 1, - void = max - 2, - i1 = max - 3, - i8 = max - 4, - i16 = max - 5, - i32 = max - 6, - i64 = max - 7, - i128 = max - 8, - f16 = max - 9, - f32 = max - 10, - f64 = max - 11, - f80 = max - 12, - f128 = max - 13, - func = max - 14, - _, -}; - -pub fn deinit(ip: *Interner, gpa: Allocator) void { - ip.map.deinit(gpa); -} - -pub fn put(ip: *Interner, gpa: Allocator, key: Key) !Ref { - if (key.toRef()) |some| return some; - const gop = try ip.map.getOrPut(gpa, key); - return @enumFromInt(gop.index); -} - -pub fn has(ip: *Interner, key: Key) ?Ref { - if (key.toRef()) |some| return some; - if (ip.map.getIndex(key)) |index| { - return @enumFromInt(index); - } - return null; -} - -pub fn get(ip: Interner, ref: Ref) Key { - switch (ref) { - .ptr => return .ptr, - .func => return .func, - .noreturn => return .noreturn, - .void => return .void, - .i1 => return .{ .int = 1 }, - .i8 => return .{ .int = 8 }, - .i16 => return .{ .int = 16 }, - .i32 => return .{ .int = 32 }, - .i64 => return .{ .int = 64 }, - .i128 => return .{ .int = 128 }, - .f16 => return .{ .float = 16 }, - .f32 => return .{ .float = 32 }, - .f64 => return .{ .float = 64 }, - .f80 => return .{ .float = 80 }, - .f128 => return .{ .float = 128 }, - else => {}, - } - return ip.map.keys()[@intFromEnum(ref)]; -} diff --git a/deps/aro/README.md b/deps/aro/README.md index 41931245e0..8cb83b2f78 100644 --- a/deps/aro/README.md +++ b/deps/aro/README.md @@ -1,4 +1,7 @@ +Aro + # Aro + A C compiler with the goal of providing fast compilation and low memory usage with good diagnostics. Aro is included as an alternative C frontend in the [Zig compiler](https://github.com/ziglang/zig) diff --git a/deps/aro/Value.zig b/deps/aro/Value.zig deleted file mode 100644 index 1577db9353..0000000000 --- a/deps/aro/Value.zig +++ /dev/null @@ -1,633 +0,0 @@ -const std = @import("std"); -const assert = std.debug.assert; -const Compilation = @import("Compilation.zig"); -const Type = @import("Type.zig"); - -const Value = @This(); - -pub const ByteRange = struct { - start: u32, - end: u32, - - pub fn len(self: ByteRange) u32 { - return self.end - self.start; - } - - pub fn trim(self: ByteRange, amount: u32) ByteRange { - std.debug.assert(self.start <= self.end - amount); - return .{ .start = self.start, .end = self.end - amount }; - } - - pub fn slice(self: ByteRange, all_bytes: []const u8, comptime size: Compilation.CharUnitSize) []const size.Type() { - switch (size) { - inline else => |sz| { - const aligned: []align(@alignOf(sz.Type())) const u8 = @alignCast(all_bytes[self.start..self.end]); - return std.mem.bytesAsSlice(sz.Type(), aligned); - }, - } - } - - pub fn dumpString(range: ByteRange, ty: Type, comp: *const Compilation, strings: []const u8, w: anytype) !void { - const size: Compilation.CharUnitSize = @enumFromInt(ty.elemType().sizeof(comp).?); - const without_null = range.trim(@intFromEnum(size)); - switch (size) { - inline .@"1", .@"2" => |sz| { - const data_slice = without_null.slice(strings, sz); - const formatter = if (sz == .@"1") std.zig.fmtEscapes(data_slice) else std.unicode.fmtUtf16le(data_slice); - try w.print("\"{}\"", .{formatter}); - }, - .@"4" => { - try w.writeByte('"'); - const data_slice = without_null.slice(strings, .@"4"); - var buf: [4]u8 = undefined; - for (data_slice) |item| { - if (item <= std.math.maxInt(u21) and std.unicode.utf8ValidCodepoint(@intCast(item))) { - const codepoint: u21 = @intCast(item); - const written = std.unicode.utf8Encode(codepoint, &buf) catch unreachable; - try w.print("{s}", .{buf[0..written]}); - } else { - try w.print("\\x{x}", .{item}); - } - } - try w.writeByte('"'); - }, - } - } -}; - -tag: Tag = .unavailable, -data: union { - none: void, - int: u64, - float: f64, - bytes: ByteRange, -} = .{ .none = {} }, - -const Tag = enum { - unavailable, - nullptr_t, - /// int is used to store integer, boolean and pointer values - int, - float, - bytes, -}; - -pub fn zero(v: Value) Value { - return switch (v.tag) { - .int => int(0), - .float => float(0), - else => unreachable, - }; -} - -pub fn one(v: Value) Value { - return switch (v.tag) { - .int => int(1), - .float => float(1), - else => unreachable, - }; -} - -pub fn int(v: anytype) Value { - if (@TypeOf(v) == comptime_int or @typeInfo(@TypeOf(v)).Int.signedness == .unsigned) - return .{ .tag = .int, .data = .{ .int = v } } - else - return .{ .tag = .int, .data = .{ .int = @bitCast(@as(i64, v)) } }; -} - -pub fn float(v: anytype) Value { - return .{ .tag = .float, .data = .{ .float = v } }; -} - -pub fn bytes(start: u32, end: u32) Value { - return .{ .tag = .bytes, .data = .{ .bytes = .{ .start = start, .end = end } } }; -} - -pub fn signExtend(v: Value, old_ty: Type, comp: *Compilation) i64 { - const size = old_ty.sizeof(comp).?; - return switch (size) { - 1 => v.getInt(i8), - 2 => v.getInt(i16), - 4 => v.getInt(i32), - 8 => v.getInt(i64), - else => unreachable, - }; -} - -/// Number of bits needed to hold `v` which is of type `ty`. -/// Asserts that `v` is not negative -pub fn minUnsignedBits(v: Value, ty: Type, comp: *const Compilation) usize { - assert(v.compare(.gte, Value.int(0), ty, comp)); - return switch (ty.sizeof(comp).?) { - 1 => 8 - @clz(v.getInt(u8)), - 2 => 16 - @clz(v.getInt(u16)), - 4 => 32 - @clz(v.getInt(u32)), - 8 => 64 - @clz(v.getInt(u64)), - else => unreachable, - }; -} - -test "minUnsignedBits" { - const Test = struct { - fn checkIntBits(comp: *const Compilation, specifier: Type.Specifier, v: u64, expected: usize) !void { - const val = Value.int(v); - try std.testing.expectEqual(expected, val.minUnsignedBits(.{ .specifier = specifier }, comp)); - } - }; - - var comp = Compilation.init(std.testing.allocator); - defer comp.deinit(); - comp.target = (try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-linux-gnu" })).toTarget(); - - try Test.checkIntBits(&comp, .int, 0, 0); - try Test.checkIntBits(&comp, .int, 1, 1); - try Test.checkIntBits(&comp, .int, 2, 2); - try Test.checkIntBits(&comp, .int, std.math.maxInt(i8), 7); - try Test.checkIntBits(&comp, .int, std.math.maxInt(u8), 8); - try Test.checkIntBits(&comp, .int, std.math.maxInt(i16), 15); - try Test.checkIntBits(&comp, .int, std.math.maxInt(u16), 16); - try Test.checkIntBits(&comp, .int, std.math.maxInt(i32), 31); - try Test.checkIntBits(&comp, .uint, std.math.maxInt(u32), 32); - try Test.checkIntBits(&comp, .long, std.math.maxInt(i64), 63); - try Test.checkIntBits(&comp, .ulong, std.math.maxInt(u64), 64); - try Test.checkIntBits(&comp, .long_long, std.math.maxInt(i64), 63); - try Test.checkIntBits(&comp, .ulong_long, std.math.maxInt(u64), 64); -} - -/// Minimum number of bits needed to represent `v` in 2's complement notation -/// Asserts that `v` is negative. -pub fn minSignedBits(v: Value, ty: Type, comp: *const Compilation) usize { - assert(v.compare(.lt, Value.int(0), ty, comp)); - return switch (ty.sizeof(comp).?) { - 1 => 8 - @clz(~v.getInt(u8)) + 1, - 2 => 16 - @clz(~v.getInt(u16)) + 1, - 4 => 32 - @clz(~v.getInt(u32)) + 1, - 8 => 64 - @clz(~v.getInt(u64)) + 1, - else => unreachable, - }; -} - -test "minSignedBits" { - const Test = struct { - fn checkIntBits(comp: *const Compilation, specifier: Type.Specifier, v: i64, expected: usize) !void { - const val = Value.int(v); - try std.testing.expectEqual(expected, val.minSignedBits(.{ .specifier = specifier }, comp)); - } - }; - - var comp = Compilation.init(std.testing.allocator); - defer comp.deinit(); - comp.target = (try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-linux-gnu" })).toTarget(); - - for ([_]Type.Specifier{ .int, .long, .long_long }) |specifier| { - try Test.checkIntBits(&comp, specifier, -1, 1); - try Test.checkIntBits(&comp, specifier, -2, 2); - try Test.checkIntBits(&comp, specifier, -10, 5); - try Test.checkIntBits(&comp, specifier, -101, 8); - - try Test.checkIntBits(&comp, specifier, std.math.minInt(i8), 8); - try Test.checkIntBits(&comp, specifier, std.math.minInt(i16), 16); - try Test.checkIntBits(&comp, specifier, std.math.minInt(i32), 32); - } - - try Test.checkIntBits(&comp, .long, std.math.minInt(i64), 64); - try Test.checkIntBits(&comp, .long_long, std.math.minInt(i64), 64); -} - -pub const FloatToIntChangeKind = enum { - /// value did not change - none, - /// floating point number too small or large for destination integer type - out_of_range, - /// tried to convert a NaN or Infinity - overflow, - /// fractional value was converted to zero - nonzero_to_zero, - /// fractional part truncated - value_changed, -}; - -fn floatToIntExtra(comptime FloatTy: type, int_ty_signedness: std.builtin.Signedness, int_ty_size: u16, v: *Value) FloatToIntChangeKind { - const float_val = v.getFloat(FloatTy); - const was_zero = float_val == 0; - const had_fraction = std.math.modf(float_val).fpart != 0; - - switch (int_ty_signedness) { - inline else => |signedness| switch (int_ty_size) { - inline 1, 2, 4, 8 => |bytecount| { - const IntTy = std.meta.Int(signedness, bytecount * 8); - - const intVal = std.math.lossyCast(IntTy, float_val); - v.* = int(intVal); - if (!was_zero and v.isZero()) return .nonzero_to_zero; - if (float_val <= std.math.minInt(IntTy) or float_val >= std.math.maxInt(IntTy)) return .out_of_range; - if (had_fraction) return .value_changed; - return .none; - }, - else => unreachable, - }, - } -} - -/// Converts the stored value from a float to an integer. -/// `.unavailable` value remains unchanged. -pub fn floatToInt(v: *Value, old_ty: Type, new_ty: Type, comp: *Compilation) FloatToIntChangeKind { - assert(old_ty.isFloat()); - if (v.tag == .unavailable) return .none; - if (new_ty.is(.bool)) { - const was_zero = v.isZero(); - const was_one = v.getFloat(f64) == 1.0; - v.toBool(); - if (was_zero or was_one) return .none; - return .value_changed; - } else if (new_ty.isUnsignedInt(comp) and v.data.float < 0) { - v.* = int(0); - return .out_of_range; - } else if (!std.math.isFinite(v.data.float)) { - v.tag = .unavailable; - return .overflow; - } - const old_size = old_ty.sizeof(comp).?; - const new_size: u16 = @intCast(new_ty.sizeof(comp).?); - if (new_ty.isUnsignedInt(comp)) switch (old_size) { - 1 => unreachable, // promoted to int - 2 => unreachable, // promoted to int - 4 => return floatToIntExtra(f32, .unsigned, new_size, v), - 8 => return floatToIntExtra(f64, .unsigned, new_size, v), - else => unreachable, - } else switch (old_size) { - 1 => unreachable, // promoted to int - 2 => unreachable, // promoted to int - 4 => return floatToIntExtra(f32, .signed, new_size, v), - 8 => return floatToIntExtra(f64, .signed, new_size, v), - else => unreachable, - } -} - -/// Converts the stored value from an integer to a float. -/// `.unavailable` value remains unchanged. -pub fn intToFloat(v: *Value, old_ty: Type, new_ty: Type, comp: *Compilation) void { - assert(old_ty.isInt()); - if (v.tag == .unavailable) return; - if (!new_ty.isReal() or new_ty.sizeof(comp).? > 8) { - v.tag = .unavailable; - } else if (old_ty.isUnsignedInt(comp)) { - v.* = float(@as(f64, @floatFromInt(v.data.int))); - } else { - v.* = float(@as(f64, @floatFromInt(@as(i64, @bitCast(v.data.int))))); - } -} - -/// Truncates or extends bits based on type. -/// old_ty is only used for size. -pub fn intCast(v: *Value, old_ty: Type, new_ty: Type, comp: *Compilation) void { - // assert(old_ty.isInt() and new_ty.isInt()); - if (v.tag == .unavailable) return; - if (new_ty.is(.bool)) return v.toBool(); - if (!old_ty.isUnsignedInt(comp)) { - const size = new_ty.sizeof(comp).?; - switch (size) { - 1 => v.* = int(@as(u8, @truncate(@as(u64, @bitCast(v.signExtend(old_ty, comp)))))), - 2 => v.* = int(@as(u16, @truncate(@as(u64, @bitCast(v.signExtend(old_ty, comp)))))), - 4 => v.* = int(@as(u32, @truncate(@as(u64, @bitCast(v.signExtend(old_ty, comp)))))), - 8 => return, - else => unreachable, - } - } -} - -/// Converts the stored value from an integer to a float. -/// `.unavailable` value remains unchanged. -pub fn floatCast(v: *Value, old_ty: Type, new_ty: Type, comp: *Compilation) void { - assert(old_ty.isFloat() and new_ty.isFloat()); - if (v.tag == .unavailable) return; - const size = new_ty.sizeof(comp).?; - if (!new_ty.isReal() or size > 8) { - v.tag = .unavailable; - } else if (size == 32) { - v.* = float(@as(f32, @floatCast(v.data.float))); - } -} - -/// Truncates data.int to one bit -pub fn toBool(v: *Value) void { - if (v.tag == .unavailable) return; - const res = v.getBool(); - v.* = int(@intFromBool(res)); -} - -pub fn isZero(v: Value) bool { - return switch (v.tag) { - .unavailable => false, - .nullptr_t => false, - .int => v.data.int == 0, - .float => v.data.float == 0, - .bytes => false, - }; -} - -pub fn getBool(v: Value) bool { - return switch (v.tag) { - .unavailable => unreachable, - .nullptr_t => false, - .int => v.data.int != 0, - .float => v.data.float != 0, - .bytes => true, - }; -} - -pub fn getInt(v: Value, comptime T: type) T { - if (T == u64) return v.data.int; - return if (@typeInfo(T).Int.signedness == .unsigned) - @truncate(v.data.int) - else - @truncate(@as(i64, @bitCast(v.data.int))); -} - -pub fn getFloat(v: Value, comptime T: type) T { - if (T == f64) return v.data.float; - return @floatCast(v.data.float); -} - -const bin_overflow = struct { - inline fn addInt(comptime T: type, out: *Value, a: Value, b: Value) bool { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - const sum, const overflowed = @addWithOverflow(a_val, b_val); - out.* = int(sum); - return overflowed != 0; - } - inline fn addFloat(comptime T: type, aa: Value, bb: Value) Value { - const a_val = aa.getFloat(T); - const b_val = bb.getFloat(T); - return float(a_val + b_val); - } - - inline fn subInt(comptime T: type, out: *Value, a: Value, b: Value) bool { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - const difference, const overflowed = @subWithOverflow(a_val, b_val); - out.* = int(difference); - return overflowed != 0; - } - inline fn subFloat(comptime T: type, aa: Value, bb: Value) Value { - const a_val = aa.getFloat(T); - const b_val = bb.getFloat(T); - return float(a_val - b_val); - } - - inline fn mulInt(comptime T: type, out: *Value, a: Value, b: Value) bool { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - const product, const overflowed = @mulWithOverflow(a_val, b_val); - out.* = int(product); - return overflowed != 0; - } - inline fn mulFloat(comptime T: type, aa: Value, bb: Value) Value { - const a_val = aa.getFloat(T); - const b_val = bb.getFloat(T); - return float(a_val * b_val); - } - - const FT = fn (*Value, Value, Value, Type, *Compilation) bool; - fn getOp(comptime intFunc: anytype, comptime floatFunc: anytype) FT { - return struct { - fn op(res: *Value, a: Value, b: Value, ty: Type, comp: *Compilation) bool { - const size = ty.sizeof(comp).?; - if (@TypeOf(floatFunc) != @TypeOf(null) and ty.isFloat()) { - res.* = switch (size) { - 4 => floatFunc(f32, a, b), - 8 => floatFunc(f64, a, b), - else => unreachable, - }; - return false; - } - - if (ty.isUnsignedInt(comp)) switch (size) { - 1 => return intFunc(u8, res, a, b), - 2 => return intFunc(u16, res, a, b), - 4 => return intFunc(u32, res, a, b), - 8 => return intFunc(u64, res, a, b), - else => unreachable, - } else switch (size) { - 1 => return intFunc(u8, res, a, b), - 2 => return intFunc(u16, res, a, b), - 4 => return intFunc(i32, res, a, b), - 8 => return intFunc(i64, res, a, b), - else => unreachable, - } - } - }.op; - } -}; - -pub const add = bin_overflow.getOp(bin_overflow.addInt, bin_overflow.addFloat); -pub const sub = bin_overflow.getOp(bin_overflow.subInt, bin_overflow.subFloat); -pub const mul = bin_overflow.getOp(bin_overflow.mulInt, bin_overflow.mulFloat); - -const bin_ops = struct { - inline fn divInt(comptime T: type, aa: Value, bb: Value) Value { - const a_val = aa.getInt(T); - const b_val = bb.getInt(T); - return int(@divTrunc(a_val, b_val)); - } - inline fn divFloat(comptime T: type, aa: Value, bb: Value) Value { - const a_val = aa.getFloat(T); - const b_val = bb.getFloat(T); - return float(a_val / b_val); - } - - inline fn remInt(comptime T: type, a: Value, b: Value) Value { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - - if (@typeInfo(T).Int.signedness == .signed) { - if (a_val == std.math.minInt(T) and b_val == -1) { - return Value{ .tag = .unavailable, .data = .{ .none = {} } }; - } else { - if (b_val > 0) return int(@rem(a_val, b_val)); - return int(a_val - @divTrunc(a_val, b_val) * b_val); - } - } else { - return int(a_val % b_val); - } - } - - inline fn orInt(comptime T: type, a: Value, b: Value) Value { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - return int(a_val | b_val); - } - inline fn xorInt(comptime T: type, a: Value, b: Value) Value { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - return int(a_val ^ b_val); - } - inline fn andInt(comptime T: type, a: Value, b: Value) Value { - const a_val = a.getInt(T); - const b_val = b.getInt(T); - return int(a_val & b_val); - } - - inline fn shl(comptime T: type, a: Value, b: Value) Value { - const ShiftT = std.math.Log2Int(T); - const info = @typeInfo(T).Int; - const UT = std.meta.Int(.unsigned, info.bits); - const b_val = b.getInt(T); - - if (b_val > std.math.maxInt(ShiftT)) { - return if (info.signedness == .unsigned) - int(@as(UT, std.math.maxInt(UT))) - else - int(@as(T, std.math.minInt(T))); - } - const amt: ShiftT = @truncate(@as(UT, @bitCast(b_val))); - const a_val = a.getInt(T); - return int(a_val << amt); - } - inline fn shr(comptime T: type, a: Value, b: Value) Value { - const ShiftT = std.math.Log2Int(T); - const UT = std.meta.Int(.unsigned, @typeInfo(T).Int.bits); - - const b_val = b.getInt(T); - if (b_val > std.math.maxInt(ShiftT)) return Value.int(0); - - const amt: ShiftT = @truncate(@as(UT, @intCast(b_val))); - const a_val = a.getInt(T); - return int(a_val >> amt); - } - - const FT = fn (Value, Value, Type, *Compilation) Value; - fn getOp(comptime intFunc: anytype, comptime floatFunc: anytype) FT { - return struct { - fn op(a: Value, b: Value, ty: Type, comp: *Compilation) Value { - const size = ty.sizeof(comp).?; - if (@TypeOf(floatFunc) != @TypeOf(null) and ty.isFloat()) { - switch (size) { - 4 => return floatFunc(f32, a, b), - 8 => return floatFunc(f64, a, b), - else => unreachable, - } - } - - if (ty.isUnsignedInt(comp)) switch (size) { - 1 => unreachable, // promoted to int - 2 => unreachable, // promoted to int - 4 => return intFunc(u32, a, b), - 8 => return intFunc(u64, a, b), - else => unreachable, - } else switch (size) { - 1 => unreachable, // promoted to int - 2 => unreachable, // promoted to int - 4 => return intFunc(i32, a, b), - 8 => return intFunc(i64, a, b), - else => unreachable, - } - } - }.op; - } -}; - -/// caller guarantees rhs != 0 -pub const div = bin_ops.getOp(bin_ops.divInt, bin_ops.divFloat); -/// caller guarantees rhs != 0 -/// caller guarantees lhs != std.math.minInt(T) OR rhs != -1 -pub const rem = bin_ops.getOp(bin_ops.remInt, null); - -pub const bitOr = bin_ops.getOp(bin_ops.orInt, null); -pub const bitXor = bin_ops.getOp(bin_ops.xorInt, null); -pub const bitAnd = bin_ops.getOp(bin_ops.andInt, null); - -pub const shl = bin_ops.getOp(bin_ops.shl, null); -pub const shr = bin_ops.getOp(bin_ops.shr, null); - -pub fn bitNot(v: Value, ty: Type, comp: *Compilation) Value { - const size = ty.sizeof(comp).?; - var out: Value = undefined; - if (ty.isUnsignedInt(comp)) switch (size) { - 1 => unreachable, // promoted to int - 2 => unreachable, // promoted to int - 4 => out = int(~v.getInt(u32)), - 8 => out = int(~v.getInt(u64)), - else => unreachable, - } else switch (size) { - 1 => unreachable, // promoted to int - 2 => unreachable, // promoted to int - 4 => out = int(~v.getInt(i32)), - 8 => out = int(~v.getInt(i64)), - else => unreachable, - } - return out; -} - -pub fn compare(a: Value, op: std.math.CompareOperator, b: Value, ty: Type, comp: *const Compilation) bool { - assert(a.tag == b.tag); - if (a.tag == .nullptr_t) { - return switch (op) { - .eq => true, - .neq => false, - else => unreachable, - }; - } - const S = struct { - inline fn doICompare(comptime T: type, aa: Value, opp: std.math.CompareOperator, bb: Value) bool { - const a_val = aa.getInt(T); - const b_val = bb.getInt(T); - return std.math.compare(a_val, opp, b_val); - } - inline fn doFCompare(comptime T: type, aa: Value, opp: std.math.CompareOperator, bb: Value) bool { - const a_val = aa.getFloat(T); - const b_val = bb.getFloat(T); - return std.math.compare(a_val, opp, b_val); - } - }; - const size = ty.sizeof(comp).?; - switch (a.tag) { - .unavailable => return true, - .int => if (ty.isUnsignedInt(comp)) switch (size) { - 1 => return S.doICompare(u8, a, op, b), - 2 => return S.doICompare(u16, a, op, b), - 4 => return S.doICompare(u32, a, op, b), - 8 => return S.doICompare(u64, a, op, b), - else => unreachable, - } else switch (size) { - 1 => return S.doICompare(i8, a, op, b), - 2 => return S.doICompare(i16, a, op, b), - 4 => return S.doICompare(i32, a, op, b), - 8 => return S.doICompare(i64, a, op, b), - else => unreachable, - }, - .float => switch (size) { - 4 => return S.doFCompare(f32, a, op, b), - 8 => return S.doFCompare(f64, a, op, b), - else => unreachable, - }, - else => @panic("TODO"), - } - return false; -} - -pub fn hash(v: Value) u64 { - switch (v.tag) { - .unavailable => unreachable, - .int => return std.hash.Wyhash.hash(0, std.mem.asBytes(&v.data.int)), - else => @panic("TODO"), - } -} - -pub fn dump(v: Value, ty: Type, comp: *Compilation, strings: []const u8, w: anytype) !void { - switch (v.tag) { - .unavailable => try w.writeAll("unavailable"), - .int => if (ty.is(.bool) and comp.langopts.standard.atLeast(.c2x)) { - try w.print("{s}", .{if (v.isZero()) "false" else "true"}); - } else if (ty.isUnsignedInt(comp)) { - try w.print("{d}", .{v.data.int}); - } else { - try w.print("{d}", .{v.signExtend(ty, comp)}); - }, - .bytes => try v.data.bytes.dumpString(ty, comp, strings, w), - // std.fmt does @as instead of @floatCast - .float => try w.print("{d}", .{@as(f64, @floatCast(v.data.float))}), - else => try w.print("({s})", .{@tagName(v.tag)}), - } -} diff --git a/deps/aro/aro.zig b/deps/aro/aro.zig new file mode 100644 index 0000000000..aed7965007 --- /dev/null +++ b/deps/aro/aro.zig @@ -0,0 +1,38 @@ +pub const CodeGen = @import("aro/CodeGen.zig"); +pub const Compilation = @import("aro/Compilation.zig"); +pub const Diagnostics = @import("aro/Diagnostics.zig"); +pub const Driver = @import("aro/Driver.zig"); +pub const Parser = @import("aro/Parser.zig"); +pub const Preprocessor = @import("aro/Preprocessor.zig"); +pub const Source = @import("aro/Source.zig"); +pub const Tokenizer = @import("aro/Tokenizer.zig"); +pub const Toolchain = @import("aro/Toolchain.zig"); +pub const Tree = @import("aro/Tree.zig"); +pub const Type = @import("aro/Type.zig"); +pub const TypeMapper = @import("aro/StringInterner.zig").TypeMapper; +pub const target_util = @import("aro/target.zig"); +pub const Value = @import("aro/Value.zig"); + +const backend = @import("backend"); +pub const Interner = backend.Interner; +pub const Ir = backend.Ir; +pub const Object = backend.Object; +pub const CallingConvention = backend.CallingConvention; + +pub const version_str = backend.version_str; +pub const version = backend.version; + +test { + _ = @import("aro/Builtins.zig"); + _ = @import("aro/char_info.zig"); + _ = @import("aro/Compilation.zig"); + _ = @import("aro/Driver/Distro.zig"); + _ = @import("aro/Driver/Filesystem.zig"); + _ = @import("aro/Driver/GCCVersion.zig"); + _ = @import("aro/InitList.zig"); + _ = @import("aro/Preprocessor.zig"); + _ = @import("aro/target.zig"); + _ = @import("aro/Tokenizer.zig"); + _ = @import("aro/toolchains/Linux.zig"); + _ = @import("aro/Value.zig"); +} diff --git a/deps/aro/Attribute.zig b/deps/aro/aro/Attribute.zig similarity index 91% rename from deps/aro/Attribute.zig rename to deps/aro/aro/Attribute.zig index 23e038d421..349270fefc 100644 --- a/deps/aro/Attribute.zig +++ b/deps/aro/aro/Attribute.zig @@ -1,7 +1,7 @@ const std = @import("std"); const mem = std.mem; const ZigType = std.builtin.Type; -const CallingConvention = @import("lib.zig").CallingConvention; +const CallingConvention = @import("backend").CallingConvention; const Compilation = @import("Compilation.zig"); const Diagnostics = @import("Diagnostics.zig"); const Parser = @import("Parser.zig"); @@ -18,20 +18,20 @@ syntax: Syntax, args: Arguments, pub const Syntax = enum { - c2x, + c23, declspec, gnu, keyword, }; pub const Kind = enum { - c2x, + c23, declspec, gnu, pub fn toSyntax(kind: Kind) Syntax { return switch (kind) { - .c2x => .c2x, + .c23 => .c23, .declspec => .declspec, .gnu => .gnu, }; @@ -57,30 +57,6 @@ pub const ArgumentType = enum { .expression => "an expression", }; } - - fn fromType(comptime T: type) ArgumentType { - return switch (T) { - Value.ByteRange => .string, - Identifier => .identifier, - u32 => .int, - Alignment => .alignment, - CallingConvention => .identifier, - else => switch (@typeInfo(T)) { - .Enum => if (T.opts.enum_kind == .string) .string else .identifier, - else => unreachable, - }, - }; - } - - fn fromVal(value: Value) ArgumentType { - return switch (value.tag) { - .int => .int, - .bytes => .string, - .unavailable => .expression, - .float => .float, - .nullptr_t => .nullptr_t, - }; - } }; /// number of required arguments @@ -216,7 +192,7 @@ pub fn wantsAlignment(attr: Tag, idx: usize) bool { } } -pub fn diagnoseAlignment(attr: Tag, arguments: *Arguments, arg_idx: u32, val: Value, ty: Type, comp: *Compilation) ?Diagnostics.Message { +pub fn diagnoseAlignment(attr: Tag, arguments: *Arguments, arg_idx: u32, res: Parser.Result, p: *Parser) !?Diagnostics.Message { switch (attr) { inline else => |tag| { const arg_fields = std.meta.fields(@field(attributes, @tagName(tag))); @@ -226,12 +202,12 @@ pub fn diagnoseAlignment(attr: Tag, arguments: *Arguments, arg_idx: u32, val: Va inline 0...arg_fields.len - 1 => |arg_i| { if (UnwrapOptional(arg_fields[arg_i].type) != Alignment) unreachable; - if (val.tag != .int) return Diagnostics.Message{ .tag = .alignas_unavailable }; - if (val.compare(.lt, Value.int(0), ty, comp)) { - return Diagnostics.Message{ .tag = .negative_alignment, .extra = .{ .signed = val.signExtend(ty, comp) } }; + if (!res.val.is(.int, p.comp)) return Diagnostics.Message{ .tag = .alignas_unavailable }; + if (res.val.compare(.lt, Value.zero, p.comp)) { + return Diagnostics.Message{ .tag = .negative_alignment, .extra = .{ .str = try res.str(p) } }; } - const requested = std.math.cast(u29, val.data.int) orelse { - return Diagnostics.Message{ .tag = .maximum_alignment, .extra = .{ .unsigned = val.data.int } }; + const requested = res.val.toInt(u29, p.comp) orelse { + return Diagnostics.Message{ .tag = .maximum_alignment, .extra = .{ .str = try res.str(p) } }; }; if (!std.mem.isValidAlign(requested)) return Diagnostics.Message{ .tag = .non_pow2_align }; @@ -247,59 +223,84 @@ pub fn diagnoseAlignment(attr: Tag, arguments: *Arguments, arg_idx: u32, val: Va fn diagnoseField( comptime decl: ZigType.Declaration, comptime field: ZigType.StructField, - comptime wanted: type, + comptime Wanted: type, arguments: *Arguments, - val: Value, + res: Parser.Result, node: Tree.Node, - strings: []const u8, -) ?Diagnostics.Message { - switch (val.tag) { + p: *Parser, +) !?Diagnostics.Message { + if (res.val.opt_ref == .none) { + if (Wanted == Identifier and node.tag == .decl_ref_expr) { + @field(@field(arguments, decl.name), field.name) = Identifier{ .tok = node.data.decl_ref }; + return null; + } + return invalidArgMsg(Wanted, .expression); + } + const key = p.comp.interner.get(res.val.ref()); + switch (key) { .int => { - if (@typeInfo(wanted) == .Int) { - @field(@field(arguments, decl.name), field.name) = val.getInt(wanted); + if (@typeInfo(Wanted) == .Int) { + @field(@field(arguments, decl.name), field.name) = res.val.toInt(Wanted, p.comp) orelse return .{ + .tag = .attribute_int_out_of_range, + .extra = .{ .str = try res.str(p) }, + }; return null; } }, - .bytes => { - const bytes = val.data.bytes.trim(1); // remove null terminator - if (wanted == Value.ByteRange) { + .bytes => |bytes| { + if (Wanted == Value) { std.debug.assert(node.tag == .string_literal_expr); if (!node.ty.elemType().is(.char) and !node.ty.elemType().is(.uchar)) { - return Diagnostics.Message{ + return .{ .tag = .attribute_requires_string, .extra = .{ .str = decl.name }, }; } - @field(@field(arguments, decl.name), field.name) = bytes; + @field(@field(arguments, decl.name), field.name) = try p.removeNull(res.val); return null; - } else if (@typeInfo(wanted) == .Enum and @hasDecl(wanted, "opts") and wanted.opts.enum_kind == .string) { - const str = bytes.slice(strings, .@"1"); - if (std.meta.stringToEnum(wanted, str)) |enum_val| { + } else if (@typeInfo(Wanted) == .Enum and @hasDecl(Wanted, "opts") and Wanted.opts.enum_kind == .string) { + const str = bytes[0 .. bytes.len - 1]; + if (std.meta.stringToEnum(Wanted, str)) |enum_val| { @field(@field(arguments, decl.name), field.name) = enum_val; return null; } else { @setEvalBranchQuota(3000); - return Diagnostics.Message{ + return .{ .tag = .unknown_attr_enum, .extra = .{ .attr_enum = .{ .tag = std.meta.stringToEnum(Tag, decl.name).? } }, }; } } }, - else => { - if (wanted == Identifier and node.tag == .decl_ref_expr) { - @field(@field(arguments, decl.name), field.name) = Identifier{ .tok = node.data.decl_ref }; - return null; - } - }, + else => {}, } - return Diagnostics.Message{ + return invalidArgMsg(Wanted, switch (key) { + .int => .int, + .bytes => .string, + .float => .float, + .null => .nullptr_t, + else => unreachable, + }); +} + +fn invalidArgMsg(comptime Expected: type, actual: ArgumentType) Diagnostics.Message { + return .{ .tag = .attribute_arg_invalid, - .extra = .{ .attr_arg_type = .{ .expected = ArgumentType.fromType(wanted), .actual = ArgumentType.fromVal(val) } }, + .extra = .{ .attr_arg_type = .{ .expected = switch (Expected) { + Value => .string, + Identifier => .identifier, + u32 => .int, + Alignment => .alignment, + CallingConvention => .identifier, + else => switch (@typeInfo(Expected)) { + .Enum => if (Expected.opts.enum_kind == .string) .string else .identifier, + else => unreachable, + }, + }, .actual = actual } }, }; } -pub fn diagnose(attr: Tag, arguments: *Arguments, arg_idx: u32, val: Value, node: Tree.Node, strings: []const u8) ?Diagnostics.Message { +pub fn diagnose(attr: Tag, arguments: *Arguments, arg_idx: u32, res: Parser.Result, node: Tree.Node, p: *Parser) !?Diagnostics.Message { switch (attr) { inline else => |tag| { const decl = @typeInfo(attributes).Struct.decls[@intFromEnum(tag)]; @@ -311,7 +312,7 @@ pub fn diagnose(attr: Tag, arguments: *Arguments, arg_idx: u32, val: Value, node const arg_fields = std.meta.fields(@field(attributes, decl.name)); switch (arg_idx) { inline 0...arg_fields.len - 1 => |arg_i| { - return diagnoseField(decl, arg_fields[arg_i], UnwrapOptional(arg_fields[arg_i].type), arguments, val, node, strings); + return diagnoseField(decl, arg_fields[arg_i], UnwrapOptional(arg_fields[arg_i].type), arguments, res, node, p); }, else => unreachable, } @@ -347,7 +348,7 @@ const attributes = struct { size_index: ?u32 = null, }; pub const alias = struct { - alias: Value.ByteRange, + alias: Value, }; pub const aligned = struct { alignment: ?Alignment = null, @@ -361,7 +362,7 @@ const attributes = struct { position_2: ?u32 = null, }; pub const allocate = struct { - segname: Value.ByteRange, + segname: Value, }; pub const allocator = struct {}; pub const always_inline = struct {}; @@ -375,7 +376,7 @@ const attributes = struct { function: Identifier, }; pub const code_seg = struct { - segname: Value.ByteRange, + segname: Value, }; pub const cold = struct {}; pub const common = struct {}; @@ -387,7 +388,7 @@ const attributes = struct { function: Identifier, }; pub const deprecated = struct { - msg: ?Value.ByteRange = null, + msg: ?Value = null, __name_tok: TokenIndex, }; pub const designated_init = struct {}; @@ -397,7 +398,7 @@ const attributes = struct { pub const dllexport = struct {}; pub const dllimport = struct {}; pub const @"error" = struct { - msg: Value.ByteRange, + msg: Value, __name_tok: TokenIndex, }; pub const externally_visible = struct {}; @@ -423,7 +424,7 @@ const attributes = struct { pub const gnu_inline = struct {}; pub const hot = struct {}; pub const ifunc = struct { - resolver: Value.ByteRange, + resolver: Value, }; pub const interrupt = struct {}; pub const interrupt_handler = struct {}; @@ -469,8 +470,8 @@ const attributes = struct { pub const no_reorder = struct {}; pub const no_sanitize = struct { /// Todo: represent args as union? - alignment: Value.ByteRange, - object_size: ?Value.ByteRange = null, + alignment: Value, + object_size: ?Value = null, }; pub const no_sanitize_address = struct {}; pub const no_sanitize_coverage = struct {}; @@ -521,7 +522,7 @@ const attributes = struct { }, }; pub const section = struct { - name: Value.ByteRange, + name: Value, }; pub const selectany = struct {}; pub const sentinel = struct { @@ -548,15 +549,15 @@ const attributes = struct { }; pub const stack_protect = struct {}; pub const symver = struct { - version: Value.ByteRange, // TODO: validate format "name2@nodename" + version: Value, // TODO: validate format "name2@nodename" }; pub const target = struct { - options: Value.ByteRange, // TODO: multiple arguments + options: Value, // TODO: multiple arguments }; pub const target_clones = struct { - options: Value.ByteRange, // TODO: multiple arguments + options: Value, // TODO: multiple arguments }; pub const thread = struct {}; @@ -574,7 +575,7 @@ const attributes = struct { }; pub const transparent_union = struct {}; pub const unavailable = struct { - msg: ?Value.ByteRange = null, + msg: ?Value = null, __name_tok: TokenIndex, }; pub const uninitialized = struct {}; @@ -582,7 +583,7 @@ const attributes = struct { pub const unused = struct {}; pub const used = struct {}; pub const uuid = struct { - uuid: Value.ByteRange, + uuid: Value, }; pub const vector_size = struct { bytes: u32, // TODO: validate "The bytes argument must be a positive power-of-two multiple of the base type size" @@ -605,12 +606,12 @@ const attributes = struct { }; pub const warn_unused_result = struct {}; pub const warning = struct { - msg: Value.ByteRange, + msg: Value, __name_tok: TokenIndex, }; pub const weak = struct {}; pub const weakref = struct { - target: ?Value.ByteRange = null, + target: ?Value = null, }; pub const zero_call_used_regs = struct { choice: enum { @@ -630,7 +631,7 @@ const attributes = struct { }, }; pub const asm_label = struct { - name: Value.ByteRange, + name: Value, }; pub const calling_convention = struct { cc: CallingConvention, @@ -684,7 +685,7 @@ pub fn fromString(kind: Kind, namespace: ?[]const u8, name: []const u8) ?Tag { tag: Tag, gnu: bool = false, declspec: bool = false, - c2x: bool = false, + c23: bool = false, }; const attribute_names = @import("Attribute/names.def").with(Properties); @@ -707,7 +708,7 @@ pub fn fromString(kind: Kind, namespace: ?[]const u8, name: []const u8) ?Tag { return null; } -fn normalize(name: []const u8) []const u8 { +pub fn normalize(name: []const u8) []const u8 { if (name.len >= 4 and mem.startsWith(u8, name, "__") and mem.endsWith(u8, name, "__")) { return name[2 .. name.len - 2]; } @@ -719,7 +720,7 @@ fn ignoredAttrErr(p: *Parser, tok: TokenIndex, attr: Attribute.Tag, context: []c defer p.strings.items.len = strings_top; try p.strings.writer().print("attribute '{s}' ignored on {s}", .{ @tagName(attr), context }); - const str = try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + const str = try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); try p.errStr(.ignored_attribute, tok, str); } @@ -1029,7 +1030,11 @@ fn applyTransparentUnion(attr: Attribute, p: *Parser, tok: TokenIndex, ty: Type) const field_size = field.ty.bitSizeof(p.comp).?; if (field_size == first_field_size) continue; const mapper = p.comp.string_interner.getSlowTypeMapper(); - const str = try std.fmt.allocPrint(p.comp.diag.arena.allocator(), "'{s}' ({d}", .{ mapper.lookup(field.name), field_size }); + const str = try std.fmt.allocPrint( + p.comp.diagnostics.arena.allocator(), + "'{s}' ({d}", + .{ mapper.lookup(field.name), field_size }, + ); try p.errStr(.transparent_union_size, field.name_tok, str); return p.errExtra(.transparent_union_size_note, fields[0].name_tok, .{ .unsigned = first_field_size }); } diff --git a/deps/aro/Attribute/names.def b/deps/aro/aro/Attribute/names.def similarity index 97% rename from deps/aro/Attribute/names.def rename to deps/aro/aro/Attribute/names.def index bed39691a1..e99f249569 100644 --- a/deps/aro/Attribute/names.def +++ b/deps/aro/aro/Attribute/names.def @@ -1,18 +1,18 @@ # multiple deprecated .tag = .deprecated - .c2x = true + .c23 = true .gnu = true .declspec = true fallthrough .tag = .fallthrough - .c2x = true + .c23 = true .gnu = true noreturn .tag = .@"noreturn" - .c2x = true + .c23 = true .gnu = true .declspec = true @@ -26,22 +26,22 @@ noinline .gnu = true .declspec = true -# c2x only +# c23 only nodiscard .tag = .nodiscard - .c2x = true + .c23 = true reproducible .tag = .reproducible - .c2x = true + .c23 = true unsequenced .tag = .unsequenced - .c2x = true + .c23 = true maybe_unused .tag = .unused - .c2x = true + .c23 = true # gnu only access diff --git a/deps/aro/Builtins.zig b/deps/aro/aro/Builtins.zig similarity index 99% rename from deps/aro/Builtins.zig rename to deps/aro/aro/Builtins.zig index fe676e935e..b122b6e607 100644 --- a/deps/aro/Builtins.zig +++ b/deps/aro/aro/Builtins.zig @@ -10,8 +10,6 @@ const Parser = @import("Parser.zig"); const Properties = @import("Builtins/Properties.zig"); pub const Builtin = @import("Builtins/Builtin.def").with(Properties); -const Builtins = @This(); - const Expanded = struct { ty: Type, builtin: Builtin, @@ -19,6 +17,8 @@ const Expanded = struct { const NameToTypeMap = std.StringHashMapUnmanaged(Type); +const Builtins = @This(); + _name_to_type_map: NameToTypeMap = .{}, pub fn deinit(b: *Builtins, gpa: std.mem.Allocator) void { @@ -355,7 +355,7 @@ test Iterator { test "All builtins" { var comp = Compilation.init(std.testing.allocator); defer comp.deinit(); - _ = try comp.generateBuiltinMacros(); + _ = try comp.generateBuiltinMacros(.include_system_defines); var arena = std.heap.ArenaAllocator.init(std.testing.allocator); defer arena.deinit(); @@ -378,7 +378,7 @@ test "Allocation failures" { fn testOne(allocator: std.mem.Allocator) !void { var comp = Compilation.init(allocator); defer comp.deinit(); - _ = try comp.generateBuiltinMacros(); + _ = try comp.generateBuiltinMacros(.include_system_defines); var arena = std.heap.ArenaAllocator.init(comp.gpa); defer arena.deinit(); diff --git a/deps/aro/Builtins/Builtin.def b/deps/aro/aro/Builtins/Builtin.def similarity index 100% rename from deps/aro/Builtins/Builtin.def rename to deps/aro/aro/Builtins/Builtin.def diff --git a/deps/aro/Builtins/Properties.zig b/deps/aro/aro/Builtins/Properties.zig similarity index 100% rename from deps/aro/Builtins/Properties.zig rename to deps/aro/aro/Builtins/Properties.zig diff --git a/deps/aro/Builtins/TypeDescription.zig b/deps/aro/aro/Builtins/TypeDescription.zig similarity index 100% rename from deps/aro/Builtins/TypeDescription.zig rename to deps/aro/aro/Builtins/TypeDescription.zig diff --git a/deps/aro/CodeGen.zig b/deps/aro/aro/CodeGen.zig similarity index 89% rename from deps/aro/CodeGen.zig rename to deps/aro/aro/CodeGen.zig index 4e6f61f403..9dcc6980c8 100644 --- a/deps/aro/CodeGen.zig +++ b/deps/aro/aro/CodeGen.zig @@ -1,20 +1,20 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const assert = std.debug.assert; +const backend = @import("backend"); +const Interner = backend.Interner; +const Ir = backend.Ir; const Builtins = @import("Builtins.zig"); const Builtin = Builtins.Builtin; const Compilation = @import("Compilation.zig"); -const Interner = @import("Interner.zig"); -const Ir = @import("Ir.zig"); const Builder = Ir.Builder; -const StringId = @import("StringInterner.zig").StringId; +const StrInt = @import("StringInterner.zig"); +const StringId = StrInt.StringId; const Tree = @import("Tree.zig"); const NodeIndex = Tree.NodeIndex; const Type = @import("Type.zig"); const Value = @import("Value.zig"); -const CodeGen = @This(); - const WipSwitch = struct { cases: Cases = .{}, default: ?Ir.Ref = null, @@ -33,6 +33,8 @@ const Symbol = struct { const Error = Compilation.Error; +const CodeGen = @This(); + tree: Tree, comp: *Compilation, builder: Builder, @@ -44,6 +46,7 @@ symbols: std.ArrayListUnmanaged(Symbol) = .{}, ret_nodes: std.ArrayListUnmanaged(Ir.Inst.Phi.Input) = .{}, phi_nodes: std.ArrayListUnmanaged(Ir.Inst.Phi.Input) = .{}, record_elem_buf: std.ArrayListUnmanaged(Interner.Ref) = .{}, +record_cache: std.AutoHashMapUnmanaged(*Type.Record, Interner.Ref) = .{}, cond_dummy_ty: ?Interner.Ref = null, bool_invert: bool = false, bool_end_label: Ir.Ref = .none, @@ -52,28 +55,40 @@ continue_label: Ir.Ref = undefined, break_label: Ir.Ref = undefined, return_label: Ir.Ref = undefined, -pub fn generateTree(comp: *Compilation, tree: Tree) Compilation.Error!void { +fn fail(c: *CodeGen, comptime fmt: []const u8, args: anytype) error{ FatalError, OutOfMemory } { + try c.comp.diagnostics.list.append(c.comp.gpa, .{ + .tag = .cli_error, + .kind = .@"fatal error", + .extra = .{ .str = try std.fmt.allocPrint(c.comp.diagnostics.arena.allocator(), fmt, args) }, + }); + return error.FatalError; +} + +pub fn genIr(tree: Tree) Compilation.Error!Ir { + const gpa = tree.comp.gpa; var c = CodeGen{ .builder = .{ - .gpa = comp.gpa, - .arena = std.heap.ArenaAllocator.init(comp.gpa), + .gpa = tree.comp.gpa, + .interner = &tree.comp.interner, + .arena = std.heap.ArenaAllocator.init(gpa), }, .tree = tree, - .comp = comp, + .comp = tree.comp, .node_tag = tree.nodes.items(.tag), .node_data = tree.nodes.items(.data), .node_ty = tree.nodes.items(.ty), }; - defer c.symbols.deinit(c.comp.gpa); - defer c.ret_nodes.deinit(c.comp.gpa); - defer c.phi_nodes.deinit(c.comp.gpa); - defer c.record_elem_buf.deinit(c.comp.gpa); + defer c.symbols.deinit(gpa); + defer c.ret_nodes.deinit(gpa); + defer c.phi_nodes.deinit(gpa); + defer c.record_elem_buf.deinit(gpa); + defer c.record_cache.deinit(gpa); defer c.builder.deinit(); const node_tags = tree.nodes.items(.tag); for (tree.root_decls) |decl| { c.builder.arena.deinit(); - c.builder.arena = std.heap.ArenaAllocator.init(comp.gpa); + c.builder.arena = std.heap.ArenaAllocator.init(gpa); switch (node_tags[@intFromEnum(decl)]) { .static_assert, @@ -114,6 +129,7 @@ pub fn generateTree(comp: *Compilation, tree: Tree) Compilation.Error!void { else => unreachable, } } + return c.builder.finish(); } fn genType(c: *CodeGen, base_ty: Type) !Interner.Ref { @@ -123,52 +139,48 @@ fn genType(c: *CodeGen, base_ty: Type) !Interner.Ref { .void => return .void, .bool => return .i1, .@"struct" => { - key = .{ - .record = .{ - .user_ptr = ty.data.record, - .elements = undefined, // Not needed for hash lookup. - }, - }; - if (c.builder.pool.has(key)) |some| return some; + if (c.record_cache.get(ty.data.record)) |some| return some; + const elem_buf_top = c.record_elem_buf.items.len; defer c.record_elem_buf.items.len = elem_buf_top; for (ty.data.record.fields) |field| { if (!field.isRegularField()) { - return c.comp.diag.fatalNoSrc("TODO lower struct bitfields", .{}); + return c.fail("TODO lower struct bitfields", .{}); } // TODO handle padding bits const field_ref = try c.genType(field.ty); try c.record_elem_buf.append(c.builder.gpa, field_ref); } - key.record.elements = try c.builder.arena.allocator().dupe(Interner.Ref, c.record_elem_buf.items[elem_buf_top..]); - return c.builder.pool.put(c.builder.gpa, key); + return c.builder.interner.put(c.builder.gpa, .{ + .record_ty = c.record_elem_buf.items[elem_buf_top..], + }); }, .@"union" => { - return c.comp.diag.fatalNoSrc("TODO lower union types", .{}); + return c.fail("TODO lower union types", .{}); }, else => {}, } if (ty.isPtr()) return .ptr; if (ty.isFunc()) return .func; - if (!ty.isReal()) return c.comp.diag.fatalNoSrc("TODO lower complex types", .{}); + if (!ty.isReal()) return c.fail("TODO lower complex types", .{}); if (ty.isInt()) { const bits = ty.bitSizeof(c.comp).?; - key = .{ .int = @intCast(bits) }; + key = .{ .int_ty = @intCast(bits) }; } else if (ty.isFloat()) { const bits = ty.bitSizeof(c.comp).?; - key = .{ .float = @intCast(bits) }; + key = .{ .float_ty = @intCast(bits) }; } else if (ty.isArray()) { const elem = try c.genType(ty.elemType()); - key = .{ .array = .{ .child = elem, .len = ty.arrayLen().? } }; + key = .{ .array_ty = .{ .child = elem, .len = ty.arrayLen().? } }; } else if (ty.specifier == .vector) { const elem = try c.genType(ty.elemType()); - key = .{ .vector = .{ .child = elem, .len = @intCast(ty.data.array.len) } }; + key = .{ .vector_ty = .{ .child = elem, .len = @intCast(ty.data.array.len) } }; } else if (ty.is(.nullptr_t)) { - return c.comp.diag.fatalNoSrc("TODO lower nullptr_t", .{}); + return c.fail("TODO lower nullptr_t", .{}); } - return c.builder.pool.put(c.builder.gpa, key); + return c.builder.interner.put(c.builder.gpa, key); } fn genFn(c: *CodeGen, decl: NodeIndex) Error!void { @@ -205,14 +217,7 @@ fn genFn(c: *CodeGen, decl: NodeIndex) Error!void { _ = try c.builder.addInst(.ret, .{ .un = phi }, .noreturn); } - var res = Ir{ - .pool = c.builder.pool, - .instructions = c.builder.instructions, - .arena = c.builder.arena.state, - .body = c.builder.body, - .strings = c.tree.strings, - }; - res.dump(c.builder.gpa, name, c.comp.diag.color, std.io.getStdOut().writer()) catch {}; + try c.builder.finishFn(name); } fn addUn(c: *CodeGen, tag: Ir.Inst.Tag, operand: Ir.Ref, ty: Type) !Ir.Ref { @@ -238,7 +243,7 @@ fn addBranch(c: *CodeGen, cond: Ir.Ref, true_label: Ir.Ref, false_label: Ir.Ref) } fn addBoolPhi(c: *CodeGen, value: bool) !void { - const val = try c.builder.addConstant(Value.int(@intFromBool(value)), .i1); + const val = try c.builder.addConstant((try Value.int(@intFromBool(value), c.comp)).ref(), .i1); try c.phi_nodes.append(c.comp.gpa, .{ .label = c.builder.current_label, .value = val }); } @@ -250,7 +255,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { std.debug.assert(node != .none); const ty = c.node_ty[@intFromEnum(node)]; if (c.tree.value_map.get(node)) |val| { - return c.builder.addConstant(val, try c.genType(ty)); + return c.builder.addConstant(val.ref(), try c.genType(ty)); } const data = c.node_data[@intFromEnum(node)]; switch (c.node_tag[@intFromEnum(node)]) { @@ -259,7 +264,6 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .int_literal, .char_literal, .float_literal, - .double_literal, .imaginary_literal, .string_literal_expr, .alignof_expr, @@ -301,7 +305,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { const size: u32 = @intCast(ty.sizeof(c.comp).?); // TODO add error in parser const @"align" = ty.alignof(c.comp); const alloc = try c.builder.addAlloc(size, @"align"); - const name = try c.comp.intern(c.tree.tokSlice(data.decl.name)); + const name = try StrInt.intern(c.comp, c.tree.tokSlice(data.decl.name)); try c.symbols.append(c.comp.gpa, .{ .name = name, .val = alloc }); if (data.decl.node != .none) { try c.genInitializer(alloc, ty, data.decl.node); @@ -391,7 +395,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { const label = try c.builder.makeLabel("case"); try c.builder.startBlock(label); try c.wip_switch.cases.append(c.builder.gpa, .{ - .val = try c.builder.pool.put(c.builder.gpa, .{ .value = val }), + .val = val.ref(), .label = label, }); try c.genStmt(data.bin.rhs); @@ -453,7 +457,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { const old_continue_label = c.continue_label; defer c.continue_label = old_continue_label; - const for_decl = data.forDecl(c.tree); + const for_decl = data.forDecl(&c.tree); for (for_decl.decls) |decl| try c.genStmt(decl); const then_label = try c.builder.makeLabel("for.then"); @@ -501,7 +505,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { const old_continue_label = c.continue_label; defer c.continue_label = old_continue_label; - const for_stmt = data.forStmt(c.tree); + const for_stmt = data.forStmt(&c.tree); if (for_stmt.init != .none) _ = try c.genExpr(for_stmt.init); const then_label = try c.builder.makeLabel("for.then"); @@ -536,7 +540,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .implicit_return => { if (data.return_zero) { - const operand = try c.builder.addConstant(Value.int(0), try c.genType(ty)); + const operand = try c.builder.addConstant(.zero, try c.genType(ty)); try c.ret_nodes.append(c.comp.gpa, .{ .value = operand, .label = c.builder.current_label }); } // No need to emit a jump since implicit_return is always the last instruction. @@ -545,7 +549,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .goto_stmt, .computed_goto_stmt, .nullptr_literal, - => return c.comp.diag.fatalNoSrc("TODO CodeGen.genStmt {}\n", .{c.node_tag[@intFromEnum(node)]}), + => return c.fail("TODO CodeGen.genStmt {}\n", .{c.node_tag[@intFromEnum(node)]}), .comma_expr => { _ = try c.genExpr(data.bin.lhs); return c.genExpr(data.bin.rhs); @@ -635,7 +639,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .plus_expr => return c.genExpr(data.un), .negate_expr => { - const zero = try c.builder.addConstant(Value.int(0), try c.genType(ty)); + const zero = try c.builder.addConstant(.zero, try c.genType(ty)); const operand = try c.genExpr(data.un); return c.addBin(.sub, zero, operand, ty); }, @@ -644,14 +648,14 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { return c.addUn(.bit_not, operand, ty); }, .bool_not_expr => { - const zero = try c.builder.addConstant(Value.int(0), try c.genType(ty)); + const zero = try c.builder.addConstant(.zero, try c.genType(ty)); const operand = try c.genExpr(data.un); return c.addBin(.cmp_ne, zero, operand, ty); }, .pre_inc_expr => { const operand = try c.genLval(data.un); const val = try c.addUn(.load, operand, ty); - const one = try c.builder.addConstant(Value.int(1), try c.genType(ty)); + const one = try c.builder.addConstant(.one, try c.genType(ty)); const plus_one = try c.addBin(.add, val, one, ty); try c.builder.addStore(operand, plus_one); return plus_one; @@ -659,7 +663,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .pre_dec_expr => { const operand = try c.genLval(data.un); const val = try c.addUn(.load, operand, ty); - const one = try c.builder.addConstant(Value.int(1), try c.genType(ty)); + const one = try c.builder.addConstant(.one, try c.genType(ty)); const plus_one = try c.addBin(.sub, val, one, ty); try c.builder.addStore(operand, plus_one); return plus_one; @@ -667,7 +671,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .post_inc_expr => { const operand = try c.genLval(data.un); const val = try c.addUn(.load, operand, ty); - const one = try c.builder.addConstant(Value.int(1), try c.genType(ty)); + const one = try c.builder.addConstant(.one, try c.genType(ty)); const plus_one = try c.addBin(.add, val, one, ty); try c.builder.addStore(operand, plus_one); return val; @@ -675,7 +679,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .post_dec_expr => { const operand = try c.genLval(data.un); const val = try c.addUn(.load, operand, ty); - const one = try c.builder.addConstant(Value.int(1), try c.genType(ty)); + const one = try c.builder.addConstant(.one, try c.genType(ty)); const plus_one = try c.addBin(.sub, val, one, ty); try c.builder.addStore(operand, plus_one); return val; @@ -717,7 +721,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .pointer_to_bool, .int_to_bool, .float_to_bool => { const lhs = try c.genExpr(data.cast.operand); - const rhs = try c.builder.addConstant(Value.int(0), try c.genType(c.node_ty[@intFromEnum(node)])); + const rhs = try c.builder.addConstant(.zero, try c.genType(c.node_ty[@intFromEnum(node)])); return c.builder.addInst(.cmp_ne, .{ .bin = .{ .lhs = lhs, .rhs = rhs } }, .i1); }, .bitcast, @@ -739,11 +743,11 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .null_to_pointer, .union_cast, .vector_splat, - => return c.comp.diag.fatalNoSrc("TODO CodeGen gen CastKind {}\n", .{data.cast.kind}), + => return c.fail("TODO CodeGen gen CastKind {}\n", .{data.cast.kind}), }, .binary_cond_expr => { if (c.tree.value_map.get(data.if3.cond)) |cond| { - if (cond.getBool()) { + if (cond.toBool(c.comp)) { c.cond_dummy_ref = try c.genExpr(data.if3.cond); return c.genExpr(c.tree.data[data.if3.body]); // then } else { @@ -786,7 +790,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .cond_dummy_expr => return c.cond_dummy_ref, .cond_expr => { if (c.tree.value_map.get(data.if3.cond)) |cond| { - if (cond.getBool()) { + if (cond.toBool(c.comp)) { return c.genExpr(c.tree.data[data.if3.body]); // then } else { return c.genExpr(c.tree.data[data.if3.body + 1]); // else @@ -826,9 +830,8 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .bool_or_expr => { if (c.tree.value_map.get(data.bin.lhs)) |lhs| { - const cond = lhs.getBool(); - if (!cond) { - return c.builder.addConstant(Value.int(1), try c.genType(ty)); + if (!lhs.toBool(c.comp)) { + return c.builder.addConstant(.one, try c.genType(ty)); } return c.genExpr(data.bin.rhs); } @@ -855,9 +858,8 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .bool_and_expr => { if (c.tree.value_map.get(data.bin.lhs)) |lhs| { - const cond = lhs.getBool(); - if (!cond) { - return c.builder.addConstant(Value.int(0), try c.genType(ty)); + if (!lhs.toBool(c.comp)) { + return c.builder.addConstant(.zero, try c.genType(ty)); } return c.genExpr(data.bin.rhs); } @@ -884,7 +886,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .builtin_choose_expr => { const cond = c.tree.value_map.get(data.if3.cond).?; - if (cond.getBool()) { + if (cond.toBool(c.comp)) { return c.genExpr(c.tree.data[data.if3.body]); } else { return c.genExpr(c.tree.data[data.if3.body + 1]); @@ -949,7 +951,7 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .real_expr, .sizeof_expr, .special_builtin_call_one, - => return c.comp.diag.fatalNoSrc("TODO CodeGen.genExpr {}\n", .{c.node_tag[@intFromEnum(node)]}), + => return c.fail("TODO CodeGen.genExpr {}\n", .{c.node_tag[@intFromEnum(node)]}), else => unreachable, // Not an expression. } return .none; @@ -957,17 +959,17 @@ fn genExpr(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { fn genLval(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { std.debug.assert(node != .none); - assert(Tree.isLval(c.tree.nodes, c.tree.data, c.tree.value_map, node)); + assert(c.tree.isLval(node)); const data = c.node_data[@intFromEnum(node)]; switch (c.node_tag[@intFromEnum(node)]) { .string_literal_expr => { const val = c.tree.value_map.get(node).?; - return c.builder.addConstant(val, .ptr); + return c.builder.addConstant(val.ref(), .ptr); }, .paren_expr => return c.genLval(data.un), .decl_ref_expr => { const slice = c.tree.tokSlice(data.decl_ref); - const name = try c.comp.intern(slice); + const name = try StrInt.intern(c.comp, slice); var i = c.symbols.items.len; while (i > 0) { i -= 1; @@ -992,7 +994,7 @@ fn genLval(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { }, .builtin_choose_expr => { const cond = c.tree.value_map.get(data.if3.cond).?; - if (cond.getBool()) { + if (cond.toBool(c.comp)) { return c.genLval(c.tree.data[data.if3.body]); } else { return c.genLval(c.tree.data[data.if3.body + 1]); @@ -1001,7 +1003,10 @@ fn genLval(c: *CodeGen, node: NodeIndex) Error!Ir.Ref { .member_access_expr, .member_access_ptr_expr, .array_access_expr, - => return c.comp.diag.fatalNoSrc("TODO CodeGen.genLval {}\n", .{c.node_tag[@intFromEnum(node)]}), + .static_compound_literal_expr, + .thread_local_compound_literal_expr, + .static_thread_local_compound_literal_expr, + => return c.fail("TODO CodeGen.genLval {}\n", .{c.node_tag[@intFromEnum(node)]}), else => unreachable, // Not an lval expression. } } @@ -1019,8 +1024,7 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir switch (c.node_tag[@intFromEnum(node)]) { .bool_or_expr => { if (c.tree.value_map.get(data.bin.lhs)) |lhs| { - const cond = lhs.getBool(); - if (cond) { + if (lhs.toBool(c.comp)) { if (true_label == c.bool_end_label) { return c.addBoolPhi(!c.bool_invert); } @@ -1033,13 +1037,12 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir try c.genBoolExpr(data.bin.lhs, true_label, new_false_label); try c.builder.startBlock(new_false_label); - if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(Value.int(1), ty); + if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(.one, ty); return c.genBoolExpr(data.bin.rhs, true_label, false_label); }, .bool_and_expr => { if (c.tree.value_map.get(data.bin.lhs)) |lhs| { - const cond = lhs.getBool(); - if (!cond) { + if (!lhs.toBool(c.comp)) { if (false_label == c.bool_end_label) { return c.addBoolPhi(c.bool_invert); } @@ -1052,14 +1055,14 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir try c.genBoolExpr(data.bin.lhs, new_true_label, false_label); try c.builder.startBlock(new_true_label); - if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(Value.int(1), ty); + if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(.one, ty); return c.genBoolExpr(data.bin.rhs, true_label, false_label); }, .bool_not_expr => { c.bool_invert = !c.bool_invert; defer c.bool_invert = !c.bool_invert; - if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(Value.int(0), ty); + if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(.zero, ty); return c.genBoolExpr(data.un, false_label, true_label); }, .equal_expr => { @@ -1102,7 +1105,7 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir }, .binary_cond_expr => { if (c.tree.value_map.get(data.if3.cond)) |cond| { - if (cond.getBool()) { + if (cond.toBool(c.comp)) { return c.genBoolExpr(c.tree.data[data.if3.body], true_label, false_label); // then } else { return c.genBoolExpr(c.tree.data[data.if3.body + 1], true_label, false_label); // else @@ -1113,12 +1116,12 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir try c.genBoolExpr(data.if3.cond, true_label, new_false_label); try c.builder.startBlock(new_false_label); - if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(Value.int(1), ty); + if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(.one, ty); return c.genBoolExpr(c.tree.data[data.if3.body + 1], true_label, false_label); // else }, .cond_expr => { if (c.tree.value_map.get(data.if3.cond)) |cond| { - if (cond.getBool()) { + if (cond.toBool(c.comp)) { return c.genBoolExpr(c.tree.data[data.if3.body], true_label, false_label); // then } else { return c.genBoolExpr(c.tree.data[data.if3.body + 1], true_label, false_label); // else @@ -1132,14 +1135,14 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir try c.builder.startBlock(new_true_label); try c.genBoolExpr(c.tree.data[data.if3.body], true_label, false_label); // then try c.builder.startBlock(new_false_label); - if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(Value.int(1), ty); + if (c.cond_dummy_ty) |ty| c.cond_dummy_ref = try c.builder.addConstant(.one, ty); return c.genBoolExpr(c.tree.data[data.if3.body + 1], true_label, false_label); // else }, else => {}, } if (c.tree.value_map.get(node)) |value| { - if (value.getBool()) { + if (value.toBool(c.comp)) { if (true_label == c.bool_end_label) { return c.addBoolPhi(!c.bool_invert); } @@ -1154,7 +1157,7 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir // Assume int operand. const lhs = try c.genExpr(node); - const rhs = try c.builder.addConstant(Value.int(0), try c.genType(c.node_ty[@intFromEnum(node)])); + const rhs = try c.builder.addConstant(.zero, try c.genType(c.node_ty[@intFromEnum(node)])); const cmp = try c.builder.addInst(.cmp_ne, .{ .bin = .{ .lhs = lhs, .rhs = rhs } }, .i1); if (c.cond_dummy_ty != null) c.cond_dummy_ref = cmp; try c.addBranch(cmp, true_label, false_label); @@ -1163,7 +1166,7 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir fn genBuiltinCall(c: *CodeGen, builtin: Builtin, arg_nodes: []const NodeIndex, ty: Type) Error!Ir.Ref { _ = arg_nodes; _ = ty; - return c.comp.diag.fatalNoSrc("TODO CodeGen.genBuiltinCall {s}\n", .{Builtin.nameFromTag(builtin.tag).span()}); + return c.fail("TODO CodeGen.genBuiltinCall {s}\n", .{Builtin.nameFromTag(builtin.tag).span()}); } fn genCall(c: *CodeGen, fn_node: NodeIndex, arg_nodes: []const NodeIndex, ty: Type) Error!Ir.Ref { @@ -1188,7 +1191,7 @@ fn genCall(c: *CodeGen, fn_node: NodeIndex, arg_nodes: []const NodeIndex, ty: Ty }, .decl_ref_expr => { const slice = c.tree.tokSlice(c.node_data[cur].decl_ref); - const name = try c.comp.intern(slice); + const name = try StrInt.intern(c.comp, slice); var i = c.symbols.items.len; while (i > 0) { i -= 1; @@ -1254,7 +1257,7 @@ fn genPtrArithmetic(c: *CodeGen, ptr: Ir.Ref, offset: Ir.Ref, offset_ty: Type, t return c.builder.addInst(.add, .{ .bin = .{ .lhs = ptr, .rhs = offset } }, try c.genType(ty)); } - const size_inst = try c.builder.addConstant(Value.int(size), try c.genType(offset_ty)); + const size_inst = try c.builder.addConstant((try Value.int(size, c.comp)).ref(), try c.genType(offset_ty)); const offset_inst = try c.addBin(.mul, offset, size_inst, offset_ty); return c.addBin(.add, ptr, offset_inst, offset_ty); } @@ -1269,12 +1272,12 @@ fn genInitializer(c: *CodeGen, ptr: Ir.Ref, dest_ty: Type, initializer: NodeInde .union_init_expr, .array_filler_expr, .default_init_expr, - => return c.comp.diag.fatalNoSrc("TODO CodeGen.genInitializer {}\n", .{c.node_tag[@intFromEnum(initializer)]}), + => return c.fail("TODO CodeGen.genInitializer {}\n", .{c.node_tag[@intFromEnum(initializer)]}), .string_literal_expr => { const val = c.tree.value_map.get(initializer).?; - const str_ptr = try c.builder.addConstant(val, .ptr); + const str_ptr = try c.builder.addConstant(val.ref(), .ptr); if (dest_ty.isArray()) { - return c.comp.diag.fatalNoSrc("TODO memcpy\n", .{}); + return c.fail("TODO memcpy\n", .{}); } else { try c.builder.addStore(ptr, str_ptr); } @@ -1288,5 +1291,5 @@ fn genInitializer(c: *CodeGen, ptr: Ir.Ref, dest_ty: Type, initializer: NodeInde fn genVar(c: *CodeGen, decl: NodeIndex) Error!void { _ = decl; - return c.comp.diag.fatalNoSrc("TODO CodeGen.genVar\n", .{}); + return c.fail("TODO CodeGen.genVar\n", .{}); } diff --git a/deps/aro/Compilation.zig b/deps/aro/aro/Compilation.zig similarity index 90% rename from deps/aro/Compilation.zig rename to deps/aro/aro/Compilation.zig index f026cbc2ea..00d9599501 100644 --- a/deps/aro/Compilation.zig +++ b/deps/aro/aro/Compilation.zig @@ -1,8 +1,9 @@ const std = @import("std"); -const assert = std.debug.assert; -const mem = std.mem; const Allocator = mem.Allocator; +const assert = std.debug.assert; const EpochSeconds = std.time.epoch.EpochSeconds; +const mem = std.mem; +const Interner = @import("backend").Interner; const Builtins = @import("Builtins.zig"); const Builtin = Builtins.Builtin; const Diagnostics = @import("Diagnostics.zig"); @@ -12,18 +13,16 @@ const Tokenizer = @import("Tokenizer.zig"); const Token = Tokenizer.Token; const Type = @import("Type.zig"); const Pragma = @import("Pragma.zig"); -const StringInterner = @import("StringInterner.zig"); +const StrInt = @import("StringInterner.zig"); const record_layout = @import("record_layout.zig"); const target_util = @import("target.zig"); -const Compilation = @This(); - pub const Error = error{ /// A fatal error has ocurred and compilation has stopped. FatalError, } || Allocator.Error; -pub const bit_int_max_bits = 128; +pub const bit_int_max_bits = std.math.maxInt(u16); const path_buf_stack_limit = 1024; /// Environment variables used during compilation / linking. @@ -58,12 +57,12 @@ pub const Environment = struct { /// Load all of the environment variables using the std.process API. Do not use if using Aro as a shared library on Linux without libc /// See https://github.com/ziglang/zig/issues/4524 - /// Assumes that `self` has been default-initialized - pub fn loadAll(self: *Environment, allocator: std.mem.Allocator) !void { - errdefer self.deinit(allocator); + pub fn loadAll(allocator: std.mem.Allocator) !Environment { + var env: Environment = .{}; + errdefer env.deinit(allocator); - inline for (@typeInfo(@TypeOf(self.*)).Struct.fields) |field| { - std.debug.assert(@field(self, field.name) == null); + inline for (@typeInfo(@TypeOf(env)).Struct.fields) |field| { + std.debug.assert(@field(env, field.name) == null); var env_var_buf: [field.name.len]u8 = undefined; const env_var_name = std.ascii.upperString(&env_var_buf, field.name); @@ -72,8 +71,9 @@ pub const Environment = struct { error.EnvironmentVariableNotFound => null, error.InvalidUtf8 => null, }; - @field(self, field.name) = val; + @field(env, field.name) = val; } + return env; } /// Use this only if environment slices were allocated with `allocator` (such as via `loadAll`) @@ -87,16 +87,19 @@ pub const Environment = struct { } }; +const Compilation = @This(); + gpa: Allocator, +diagnostics: Diagnostics, + environment: Environment = .{}, -sources: std.StringArrayHashMap(Source), -diag: Diagnostics, -include_dirs: std.ArrayList([]const u8), -system_include_dirs: std.ArrayList([]const u8), +sources: std.StringArrayHashMapUnmanaged(Source) = .{}, +include_dirs: std.ArrayListUnmanaged([]const u8) = .{}, +system_include_dirs: std.ArrayListUnmanaged([]const u8) = .{}, target: std.Target = @import("builtin").target, -pragma_handlers: std.StringArrayHashMap(*Pragma), +pragma_handlers: std.StringArrayHashMapUnmanaged(*Pragma) = .{}, langopts: LangOpts = .{}, -generated_buf: std.ArrayList(u8), +generated_buf: std.ArrayListUnmanaged(u8) = .{}, builtins: Builtins = .{}, types: struct { wchar: Type = undefined, @@ -122,21 +125,31 @@ types: struct { int16: Type = .{ .specifier = .invalid }, int64: Type = .{ .specifier = .invalid }, } = .{}, -string_interner: StringInterner = .{}, +string_interner: StrInt = .{}, +interner: Interner = .{}, ms_cwd_source_id: ?Source.Id = null, pub fn init(gpa: Allocator) Compilation { return .{ .gpa = gpa, - .sources = std.StringArrayHashMap(Source).init(gpa), - .diag = Diagnostics.init(gpa), - .include_dirs = std.ArrayList([]const u8).init(gpa), - .system_include_dirs = std.ArrayList([]const u8).init(gpa), - .pragma_handlers = std.StringArrayHashMap(*Pragma).init(gpa), - .generated_buf = std.ArrayList(u8).init(gpa), + .diagnostics = Diagnostics.init(gpa), }; } +/// Initialize Compilation with default environment, +/// pragma handlers and emulation mode set to target. +pub fn initDefault(gpa: Allocator) !Compilation { + var comp: Compilation = .{ + .gpa = gpa, + .environment = try Environment.loadAll(gpa), + .diagnostics = Diagnostics.init(gpa), + }; + errdefer comp.deinit(); + try comp.addDefaultPragmaHandlers(); + comp.langopts.setEmulatedCompiler(target_util.systemCompiler(comp.target)); + return comp; +} + pub fn deinit(comp: *Compilation) void { for (comp.pragma_handlers.values()) |pragma| { pragma.deinit(pragma, comp); @@ -146,19 +159,17 @@ pub fn deinit(comp: *Compilation) void { comp.gpa.free(source.buf); comp.gpa.free(source.splice_locs); } - comp.sources.deinit(); - comp.diag.deinit(); - comp.include_dirs.deinit(); + comp.sources.deinit(comp.gpa); + comp.diagnostics.deinit(); + comp.include_dirs.deinit(comp.gpa); for (comp.system_include_dirs.items) |path| comp.gpa.free(path); - comp.system_include_dirs.deinit(); - comp.pragma_handlers.deinit(); - comp.generated_buf.deinit(); + comp.system_include_dirs.deinit(comp.gpa); + comp.pragma_handlers.deinit(comp.gpa); + comp.generated_buf.deinit(comp.gpa); comp.builtins.deinit(comp.gpa); comp.string_interner.deinit(comp.gpa); -} - -pub fn intern(comp: *Compilation, str: []const u8) !StringInterner.StringId { - return comp.string_interner.intern(comp.gpa, str); + comp.interner.deinit(comp.gpa); + comp.environment.deinit(comp.gpa); } pub fn getSourceEpoch(self: *const Compilation, max: i64) !?i64 { @@ -173,7 +184,7 @@ const max_timestamp = 253402300799; fn getTimestamp(comp: *Compilation) !u47 { const provided: ?i64 = comp.getSourceEpoch(max_timestamp) catch blk: { - try comp.diag.add(.{ + try comp.addDiagnostic(.{ .tag = .invalid_source_epoch, .loc = .{ .id = .unused, .byte_offset = 0, .line = 0 }, }, &.{}); @@ -219,32 +230,15 @@ fn generateDateAndTime(w: anytype, timestamp: u47) !void { }); } -/// Generate builtin macros that will be available to each source file. -pub fn generateBuiltinMacros(comp: *Compilation) !Source { - try comp.generateBuiltinTypes(); +/// Which set of system defines to generate via generateBuiltinMacros +pub const SystemDefinesMode = enum { + /// Only define macros required by the C standard (date/time macros and those beginning with `__STDC`) + no_system_defines, + /// Define the standard set of system macros + include_system_defines, +}; - var buf = std.ArrayList(u8).init(comp.gpa); - defer buf.deinit(); - const w = buf.writer(); - - // standard macros - try w.writeAll( - \\#define __VERSION__ "Aro - ++ @import("lib.zig").version_str ++ "\"\n" ++ - \\#define __Aro__ - \\#define __STDC__ 1 - \\#define __STDC_HOSTED__ 1 - \\#define __STDC_NO_ATOMICS__ 1 - \\#define __STDC_NO_COMPLEX__ 1 - \\#define __STDC_NO_THREADS__ 1 - \\#define __STDC_NO_VLA__ 1 - \\#define __STDC_UTF_16__ 1 - \\#define __STDC_UTF_32__ 1 - \\ - ); - if (comp.langopts.standard.StdCVersionMacro()) |stdc_version| { - try w.print("#define __STDC_VERSION__ {s}\n", .{stdc_version}); - } +fn generateSystemDefines(comp: *Compilation, w: anytype) !void { const ptr_width = comp.target.ptrBitWidth(); // os macros @@ -414,10 +408,6 @@ pub fn generateBuiltinMacros(comp: *Compilation) !Source { \\ ); - // timestamps - const timestamp = try comp.getTimestamp(); - try generateDateAndTime(w, timestamp); - // types if (comp.getCharSignedness() == .unsigned) try w.writeAll("#define __CHAR_UNSIGNED__ 1\n"); try w.writeAll("#define __CHAR_BIT__ 8\n"); @@ -489,6 +479,49 @@ pub fn generateBuiltinMacros(comp: *Compilation) !Source { \\#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ \\ ); +} + +/// Generate builtin macros that will be available to each source file. +pub fn generateBuiltinMacros(comp: *Compilation, system_defines_mode: SystemDefinesMode) !Source { + try comp.generateBuiltinTypes(); + + var buf = std.ArrayList(u8).init(comp.gpa); + defer buf.deinit(); + + if (system_defines_mode == .include_system_defines) { + try buf.appendSlice( + \\#define __VERSION__ "Aro + ++ @import("backend").version_str ++ "\"\n" ++ + \\#define __Aro__ + \\ + ); + } + + // standard macros + try buf.appendSlice( + \\#define __STDC__ 1 + \\#define __STDC_HOSTED__ 1 + \\#define __STDC_NO_ATOMICS__ 1 + \\#define __STDC_NO_COMPLEX__ 1 + \\#define __STDC_NO_THREADS__ 1 + \\#define __STDC_NO_VLA__ 1 + \\#define __STDC_UTF_16__ 1 + \\#define __STDC_UTF_32__ 1 + \\ + ); + if (comp.langopts.standard.StdCVersionMacro()) |stdc_version| { + try buf.appendSlice("#define __STDC_VERSION__ "); + try buf.appendSlice(stdc_version); + try buf.append('\n'); + } + + // timestamps + const timestamp = try comp.getTimestamp(); + try generateDateAndTime(buf.writer(), timestamp); + + if (system_defines_mode == .include_system_defines) { + try comp.generateSystemDefines(buf.writer()); + } return comp.addSourceFromBuffer("", buf.items); } @@ -573,7 +606,7 @@ fn generateFloatMacros(w: anytype, prefix: []const u8, semantics: target_util.FP try w.print("#define {s}MIN__ {s}{s}\n", .{ prefix_slice, min, ext }); } -fn generateTypeMacro(w: anytype, mapper: StringInterner.TypeMapper, name: []const u8, ty: Type, langopts: LangOpts) !void { +fn generateTypeMacro(w: anytype, mapper: StrInt.TypeMapper, name: []const u8, ty: Type, langopts: LangOpts) !void { try w.print("#define {s} ", .{name}); try ty.print(mapper, langopts, w); try w.writeByte('\n'); @@ -661,7 +694,7 @@ fn intSize(comp: *const Compilation, specifier: Type.Specifier) u64 { return ty.sizeof(comp).?; } -fn generateExactWidthTypes(comp: *const Compilation, w: anytype, mapper: StringInterner.TypeMapper) !void { +fn generateExactWidthTypes(comp: *const Compilation, w: anytype, mapper: StrInt.TypeMapper) !void { try comp.generateExactWidthType(w, mapper, .schar); if (comp.intSize(.short) > comp.intSize(.char)) { @@ -726,7 +759,7 @@ fn generateSuffixMacro(comp: *const Compilation, prefix: []const u8, w: anytype, /// Name macro (e.g. #define __UINT32_TYPE__ unsigned int) /// Format strings (e.g. #define __UINT32_FMTu__ "u") /// Suffix macro (e.g. #define __UINT32_C_SUFFIX__ U) -fn generateExactWidthType(comp: *const Compilation, w: anytype, mapper: StringInterner.TypeMapper, specifier: Type.Specifier) !void { +fn generateExactWidthType(comp: *const Compilation, w: anytype, mapper: StrInt.TypeMapper, specifier: Type.Specifier) !void { var ty = Type{ .specifier = specifier }; const width = 8 * ty.sizeof(comp).?; const unsigned = ty.isUnsignedInt(comp); @@ -751,13 +784,17 @@ fn generateExactWidthType(comp: *const Compilation, w: anytype, mapper: StringIn try comp.generateSuffixMacro(prefix.constSlice(), w, ty); } +pub fn hasFloat128(comp: *const Compilation) bool { + return target_util.hasFloat128(comp.target); +} + pub fn hasHalfPrecisionFloatABI(comp: *const Compilation) bool { return comp.langopts.allow_half_args_and_returns or target_util.hasHalfPrecisionFloatABI(comp.target); } fn generateNsConstantStringType(comp: *Compilation) !void { comp.types.ns_constant_string.record = .{ - .name = try comp.intern("__NSConstantString_tag"), + .name = try StrInt.intern(comp, "__NSConstantString_tag"), .fields = &comp.types.ns_constant_string.fields, .field_attributes = null, .type_layout = undefined, @@ -765,10 +802,10 @@ fn generateNsConstantStringType(comp: *Compilation) !void { const const_int_ptr = Type{ .specifier = .pointer, .data = .{ .sub_type = &comp.types.ns_constant_string.int_ty } }; const const_char_ptr = Type{ .specifier = .pointer, .data = .{ .sub_type = &comp.types.ns_constant_string.char_ty } }; - comp.types.ns_constant_string.fields[0] = .{ .name = try comp.intern("isa"), .ty = const_int_ptr }; - comp.types.ns_constant_string.fields[1] = .{ .name = try comp.intern("flags"), .ty = .{ .specifier = .int } }; - comp.types.ns_constant_string.fields[2] = .{ .name = try comp.intern("str"), .ty = const_char_ptr }; - comp.types.ns_constant_string.fields[3] = .{ .name = try comp.intern("length"), .ty = .{ .specifier = .long } }; + comp.types.ns_constant_string.fields[0] = .{ .name = try StrInt.intern(comp, "isa"), .ty = const_int_ptr }; + comp.types.ns_constant_string.fields[1] = .{ .name = try StrInt.intern(comp, "flags"), .ty = .{ .specifier = .int } }; + comp.types.ns_constant_string.fields[2] = .{ .name = try StrInt.intern(comp, "str"), .ty = const_char_ptr }; + comp.types.ns_constant_string.fields[3] = .{ .name = try StrInt.intern(comp, "length"), .ty = .{ .specifier = .long } }; comp.types.ns_constant_string.ty = .{ .specifier = .@"struct", .data = .{ .record = &comp.types.ns_constant_string.record } }; record_layout.compute(&comp.types.ns_constant_string.record, comp.types.ns_constant_string.ty, comp, null); } @@ -795,7 +832,7 @@ fn generateVaListType(comp: *Compilation) !Type { }; // TODO this might be bad? - const arena = comp.diag.arena.allocator(); + const arena = comp.diagnostics.arena.allocator(); var ty: Type = undefined; switch (kind) { @@ -804,7 +841,7 @@ fn generateVaListType(comp: *Compilation) !Type { .aarch64_va_list => { const record_ty = try arena.create(Type.Record); record_ty.* = .{ - .name = try comp.intern("__va_list_tag"), + .name = try StrInt.intern(comp, "__va_list_tag"), .fields = try arena.alloc(Type.Record.Field, 5), .field_attributes = null, .type_layout = undefined, // computed below @@ -812,18 +849,18 @@ fn generateVaListType(comp: *Compilation) !Type { const void_ty = try arena.create(Type); void_ty.* = .{ .specifier = .void }; const void_ptr = Type{ .specifier = .pointer, .data = .{ .sub_type = void_ty } }; - record_ty.fields[0] = .{ .name = try comp.intern("__stack"), .ty = void_ptr }; - record_ty.fields[1] = .{ .name = try comp.intern("__gr_top"), .ty = void_ptr }; - record_ty.fields[2] = .{ .name = try comp.intern("__vr_top"), .ty = void_ptr }; - record_ty.fields[3] = .{ .name = try comp.intern("__gr_offs"), .ty = .{ .specifier = .int } }; - record_ty.fields[4] = .{ .name = try comp.intern("__vr_offs"), .ty = .{ .specifier = .int } }; + record_ty.fields[0] = .{ .name = try StrInt.intern(comp, "__stack"), .ty = void_ptr }; + record_ty.fields[1] = .{ .name = try StrInt.intern(comp, "__gr_top"), .ty = void_ptr }; + record_ty.fields[2] = .{ .name = try StrInt.intern(comp, "__vr_top"), .ty = void_ptr }; + record_ty.fields[3] = .{ .name = try StrInt.intern(comp, "__gr_offs"), .ty = .{ .specifier = .int } }; + record_ty.fields[4] = .{ .name = try StrInt.intern(comp, "__vr_offs"), .ty = .{ .specifier = .int } }; ty = .{ .specifier = .@"struct", .data = .{ .record = record_ty } }; record_layout.compute(record_ty, ty, comp, null); }, .x86_64_va_list => { const record_ty = try arena.create(Type.Record); record_ty.* = .{ - .name = try comp.intern("__va_list_tag"), + .name = try StrInt.intern(comp, "__va_list_tag"), .fields = try arena.alloc(Type.Record.Field, 4), .field_attributes = null, .type_layout = undefined, // computed below @@ -831,10 +868,10 @@ fn generateVaListType(comp: *Compilation) !Type { const void_ty = try arena.create(Type); void_ty.* = .{ .specifier = .void }; const void_ptr = Type{ .specifier = .pointer, .data = .{ .sub_type = void_ty } }; - record_ty.fields[0] = .{ .name = try comp.intern("gp_offset"), .ty = .{ .specifier = .uint } }; - record_ty.fields[1] = .{ .name = try comp.intern("fp_offset"), .ty = .{ .specifier = .uint } }; - record_ty.fields[2] = .{ .name = try comp.intern("overflow_arg_area"), .ty = void_ptr }; - record_ty.fields[3] = .{ .name = try comp.intern("reg_save_area"), .ty = void_ptr }; + record_ty.fields[0] = .{ .name = try StrInt.intern(comp, "gp_offset"), .ty = .{ .specifier = .uint } }; + record_ty.fields[1] = .{ .name = try StrInt.intern(comp, "fp_offset"), .ty = .{ .specifier = .uint } }; + record_ty.fields[2] = .{ .name = try StrInt.intern(comp, "overflow_arg_area"), .ty = void_ptr }; + record_ty.fields[3] = .{ .name = try StrInt.intern(comp, "reg_save_area"), .ty = void_ptr }; ty = .{ .specifier = .@"struct", .data = .{ .record = record_ty } }; record_layout.compute(record_ty, ty, comp, null); }, @@ -932,7 +969,7 @@ pub fn defineSystemIncludes(comp: *Compilation, aro_dir: []const u8) !void { base_dir.access("include/stddef.h", .{}) catch continue; const path = try std.fs.path.join(comp.gpa, &.{ dirname, "include" }); errdefer comp.gpa.free(path); - try comp.system_include_dirs.append(path); + try comp.system_include_dirs.append(comp.gpa, path); break; } else return error.AroIncludeNotFound; @@ -946,12 +983,12 @@ pub fn defineSystemIncludes(comp: *Compilation, aro_dir: []const u8) !void { if (!std.meta.isError(std.fs.accessAbsolute(multiarch_path, .{}))) { const duped = try comp.gpa.dupe(u8, multiarch_path); errdefer comp.gpa.free(duped); - try comp.system_include_dirs.append(duped); + try comp.system_include_dirs.append(comp.gpa, duped); } } const usr_include = try comp.gpa.dupe(u8, "/usr/include"); errdefer comp.gpa.free(usr_include); - try comp.system_include_dirs.append(usr_include); + try comp.system_include_dirs.append(comp.gpa, usr_include); } pub fn getSource(comp: *const Compilation, id: Source.Id) Source { @@ -980,7 +1017,7 @@ pub fn addSourceFromReader(comp: *Compilation, reader: anytype, path: []const u8 /// To add the contents of an arbitrary reader as a Source, see addSourceFromReader /// To add a file's contents given its path, see addSourceFromPath pub fn addSourceFromOwnedBuffer(comp: *Compilation, buf: []u8, path: []const u8, kind: Source.Kind) !Source { - try comp.sources.ensureUnusedCapacity(1); + try comp.sources.ensureUnusedCapacity(comp.gpa, 1); var contents = buf; const duped_path = try comp.gpa.dupe(u8, path); @@ -1022,7 +1059,7 @@ pub fn addSourceFromOwnedBuffer(comp: *Compilation, buf: []u8, path: []const u8, i = backslash_loc; try splice_list.append(i); if (state == .trailing_ws) { - try comp.diag.add(.{ + try comp.addDiagnostic(.{ .tag = .backslash_newline_escape, .loc = .{ .id = source_id, .byte_offset = i, .line = line }, }, &.{}); @@ -1046,7 +1083,7 @@ pub fn addSourceFromOwnedBuffer(comp: *Compilation, buf: []u8, path: []const u8, try splice_list.append(i); } if (state == .trailing_ws) { - try comp.diag.add(.{ + try comp.addDiagnostic(.{ .tag = .backslash_newline_escape, .loc = .{ .id = source_id, .byte_offset = i, .line = line }, }, &.{}); @@ -1105,7 +1142,7 @@ pub fn addSourceFromOwnedBuffer(comp: *Compilation, buf: []u8, path: []const u8, if (i != contents.len) contents = try comp.gpa.realloc(contents, i); errdefer @compileError("errdefers in callers would possibly free the realloced slice using the original len"); - var source = Source{ + const source = Source{ .id = source_id, .path = duped_path, .buf = contents, @@ -1259,7 +1296,7 @@ pub const IncludeType = enum { angle_brackets, }; -fn getFileContents(comp: *Compilation, path: []const u8) ![]const u8 { +fn getFileContents(comp: *Compilation, path: []const u8, limit: ?u32) ![]const u8 { if (mem.indexOfScalar(u8, path, 0) != null) { return error.FileNotFound; } @@ -1267,7 +1304,16 @@ fn getFileContents(comp: *Compilation, path: []const u8) ![]const u8 { const file = try std.fs.cwd().openFile(path, .{}); defer file.close(); - return file.readToEndAlloc(comp.gpa, std.math.maxInt(u32)); + var buf = std.ArrayList(u8).init(comp.gpa); + defer buf.deinit(); + + const max = limit orelse std.math.maxInt(u32); + file.reader().readAllArrayList(&buf, max) catch |e| switch (e) { + error.StreamTooLong => if (limit == null) return e, + else => return e, + }; + + return buf.toOwnedSlice(); } pub fn findEmbed( @@ -1276,9 +1322,10 @@ pub fn findEmbed( includer_token_source: Source.Id, /// angle bracket vs quotes include_type: IncludeType, + limit: ?u32, ) !?[]const u8 { if (std.fs.path.isAbsolute(filename)) { - return if (comp.getFileContents(filename)) |some| + return if (comp.getFileContents(filename, limit)) |some| some else |err| switch (err) { error.OutOfMemory => |e| return e, @@ -1295,7 +1342,7 @@ pub fn findEmbed( while (try it.nextWithFile(filename, stack_fallback.get())) |found| { defer stack_fallback.get().free(found.path); - if (comp.getFileContents(found.path)) |some| + if (comp.getFileContents(found.path, limit)) |some| return some else |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, @@ -1342,7 +1389,7 @@ pub fn findInclude( defer stack_fallback.get().free(found.path); if (comp.addSourceFromPathExtra(found.path, found.kind)) |some| { if (it.tried_ms_cwd) { - try comp.diag.add(.{ + try comp.addDiagnostic(.{ .tag = .ms_search_rule, .extra = .{ .str = some.path }, .loc = .{ @@ -1362,7 +1409,7 @@ pub fn findInclude( } pub fn addPragmaHandler(comp: *Compilation, name: []const u8, handler: *Pragma) Allocator.Error!void { - try comp.pragma_handlers.putNoClobber(name, handler); + try comp.pragma_handlers.putNoClobber(comp.gpa, name, handler); } pub fn addDefaultPragmaHandlers(comp: *Compilation) Allocator.Error!void { @@ -1444,7 +1491,7 @@ pub const CharUnitSize = enum(u32) { } }; -pub const renderErrors = Diagnostics.render; +pub const addDiagnostic = Diagnostics.add; test "addSourceFromReader" { const Test = struct { @@ -1456,7 +1503,7 @@ test "addSourceFromReader" { const source = try comp.addSourceFromReader(buf_reader.reader(), "path", .user); try std.testing.expectEqualStrings(expected, source.buf); - try std.testing.expectEqual(warning_count, @as(u32, @intCast(comp.diag.list.items.len))); + try std.testing.expectEqual(warning_count, @as(u32, @intCast(comp.diagnostics.list.items.len))); try std.testing.expectEqualSlices(u32, splices, source.splice_locs); } diff --git a/deps/aro/aro/Diagnostics.zig b/deps/aro/aro/Diagnostics.zig new file mode 100644 index 0000000000..0e7bc30864 --- /dev/null +++ b/deps/aro/aro/Diagnostics.zig @@ -0,0 +1,588 @@ +const std = @import("std"); +const Allocator = mem.Allocator; +const mem = std.mem; +const Source = @import("Source.zig"); +const Compilation = @import("Compilation.zig"); +const Attribute = @import("Attribute.zig"); +const Builtins = @import("Builtins.zig"); +const Builtin = Builtins.Builtin; +const Header = @import("Builtins/Properties.zig").Header; +const Tree = @import("Tree.zig"); +const is_windows = @import("builtin").os.tag == .windows; +const LangOpts = @import("LangOpts.zig"); + +pub const Message = struct { + tag: Tag, + kind: Kind = undefined, + loc: Source.Location = .{}, + extra: Extra = .{ .none = {} }, + + pub const Extra = union { + str: []const u8, + tok_id: struct { + expected: Tree.Token.Id, + actual: Tree.Token.Id, + }, + tok_id_expected: Tree.Token.Id, + arguments: struct { + expected: u32, + actual: u32, + }, + codepoints: struct { + actual: u21, + resembles: u21, + }, + attr_arg_count: struct { + attribute: Attribute.Tag, + expected: u32, + }, + attr_arg_type: struct { + expected: Attribute.ArgumentType, + actual: Attribute.ArgumentType, + }, + attr_enum: struct { + tag: Attribute.Tag, + }, + ignored_record_attr: struct { + tag: Attribute.Tag, + specifier: enum { @"struct", @"union", @"enum" }, + }, + builtin_with_header: struct { + builtin: Builtin.Tag, + header: Header, + }, + invalid_escape: struct { + offset: u32, + char: u8, + }, + actual_codepoint: u21, + ascii: u7, + unsigned: u64, + offset: u64, + pow_2_as_string: u8, + signed: i64, + normalized: []const u8, + none: void, + }; +}; + +const Properties = struct { + msg: []const u8, + kind: Kind, + extra: std.meta.FieldEnum(Message.Extra) = .none, + opt: ?u8 = null, + all: bool = false, + w_extra: bool = false, + pedantic: bool = false, + suppress_version: ?LangOpts.Standard = null, + suppress_unless_version: ?LangOpts.Standard = null, + suppress_gnu: bool = false, + suppress_gcc: bool = false, + suppress_clang: bool = false, + suppress_msvc: bool = false, + + pub fn makeOpt(comptime str: []const u8) u16 { + return @offsetOf(Options, str); + } + pub fn getKind(prop: Properties, options: *Options) Kind { + const opt = @as([*]Kind, @ptrCast(options))[prop.opt orelse return prop.kind]; + if (opt == .default) return prop.kind; + return opt; + } + pub const max_bits = Compilation.bit_int_max_bits; +}; + +pub const Tag = @import("Diagnostics/messages.def").with(Properties).Tag; + +pub const Kind = enum { @"fatal error", @"error", note, warning, off, default }; + +pub const Options = struct { + // do not directly use these, instead add `const NAME = true;` + all: Kind = .default, + extra: Kind = .default, + pedantic: Kind = .default, + + @"unsupported-pragma": Kind = .default, + @"c99-extensions": Kind = .default, + @"implicit-int": Kind = .default, + @"duplicate-decl-specifier": Kind = .default, + @"missing-declaration": Kind = .default, + @"extern-initializer": Kind = .default, + @"implicit-function-declaration": Kind = .default, + @"unused-value": Kind = .default, + @"unreachable-code": Kind = .default, + @"unknown-warning-option": Kind = .default, + @"gnu-empty-struct": Kind = .default, + @"gnu-alignof-expression": Kind = .default, + @"macro-redefined": Kind = .default, + @"generic-qual-type": Kind = .default, + multichar: Kind = .default, + @"pointer-integer-compare": Kind = .default, + @"compare-distinct-pointer-types": Kind = .default, + @"literal-conversion": Kind = .default, + @"cast-qualifiers": Kind = .default, + @"array-bounds": Kind = .default, + @"int-conversion": Kind = .default, + @"pointer-type-mismatch": Kind = .default, + @"c23-extensions": Kind = .default, + @"incompatible-pointer-types": Kind = .default, + @"excess-initializers": Kind = .default, + @"division-by-zero": Kind = .default, + @"initializer-overrides": Kind = .default, + @"incompatible-pointer-types-discards-qualifiers": Kind = .default, + @"unknown-attributes": Kind = .default, + @"ignored-attributes": Kind = .default, + @"builtin-macro-redefined": Kind = .default, + @"gnu-label-as-value": Kind = .default, + @"malformed-warning-check": Kind = .default, + @"#pragma-messages": Kind = .default, + @"newline-eof": Kind = .default, + @"empty-translation-unit": Kind = .default, + @"implicitly-unsigned-literal": Kind = .default, + @"c99-compat": Kind = .default, + @"unicode-zero-width": Kind = .default, + @"unicode-homoglyph": Kind = .default, + unicode: Kind = .default, + @"return-type": Kind = .default, + @"dollar-in-identifier-extension": Kind = .default, + @"unknown-pragmas": Kind = .default, + @"predefined-identifier-outside-function": Kind = .default, + @"many-braces-around-scalar-init": Kind = .default, + uninitialized: Kind = .default, + @"gnu-statement-expression": Kind = .default, + @"gnu-imaginary-constant": Kind = .default, + @"gnu-complex-integer": Kind = .default, + @"ignored-qualifiers": Kind = .default, + @"integer-overflow": Kind = .default, + @"extra-semi": Kind = .default, + @"gnu-binary-literal": Kind = .default, + @"variadic-macros": Kind = .default, + varargs: Kind = .default, + @"#warnings": Kind = .default, + @"deprecated-declarations": Kind = .default, + @"backslash-newline-escape": Kind = .default, + @"pointer-to-int-cast": Kind = .default, + @"gnu-case-range": Kind = .default, + @"c++-compat": Kind = .default, + vla: Kind = .default, + @"float-overflow-conversion": Kind = .default, + @"float-zero-conversion": Kind = .default, + @"float-conversion": Kind = .default, + @"gnu-folding-constant": Kind = .default, + undef: Kind = .default, + @"ignored-pragmas": Kind = .default, + @"gnu-include-next": Kind = .default, + @"include-next-outside-header": Kind = .default, + @"include-next-absolute-path": Kind = .default, + @"enum-too-large": Kind = .default, + @"fixed-enum-extension": Kind = .default, + @"designated-init": Kind = .default, + @"attribute-warning": Kind = .default, + @"invalid-noreturn": Kind = .default, + @"zero-length-array": Kind = .default, + @"old-style-flexible-struct": Kind = .default, + @"gnu-zero-variadic-macro-arguments": Kind = .default, + @"main-return-type": Kind = .default, + @"expansion-to-defined": Kind = .default, + @"bit-int-extension": Kind = .default, + @"keyword-macro": Kind = .default, + @"pointer-arith": Kind = .default, + @"sizeof-array-argument": Kind = .default, + @"pre-c23-compat": Kind = .default, + @"pointer-bool-conversion": Kind = .default, + @"string-conversion": Kind = .default, + @"gnu-auto-type": Kind = .default, + @"gnu-union-cast": Kind = .default, + @"pointer-sign": Kind = .default, + @"fuse-ld-path": Kind = .default, + @"language-extension-token": Kind = .default, + @"complex-component-init": Kind = .default, + @"microsoft-include": Kind = .default, + @"microsoft-end-of-file": Kind = .default, + @"invalid-source-encoding": Kind = .default, + @"four-char-constants": Kind = .default, + @"unknown-escape-sequence": Kind = .default, + @"invalid-pp-token": Kind = .default, + @"deprecated-non-prototype": Kind = .default, + @"duplicate-embed-param": Kind = .default, + @"unsupported-embed-param": Kind = .default, + @"unused-result": Kind = .default, + normalized: Kind = .default, +}; + +const Diagnostics = @This(); + +list: std.ArrayListUnmanaged(Message) = .{}, +arena: std.heap.ArenaAllocator, +fatal_errors: bool = false, +options: Options = .{}, +errors: u32 = 0, +macro_backtrace_limit: u32 = 6, + +pub fn warningExists(name: []const u8) bool { + inline for (std.meta.fields(Options)) |f| { + if (mem.eql(u8, f.name, name)) return true; + } + return false; +} + +pub fn set(d: *Diagnostics, name: []const u8, to: Kind) !void { + inline for (std.meta.fields(Options)) |f| { + if (mem.eql(u8, f.name, name)) { + @field(d.options, f.name) = to; + return; + } + } + try d.addExtra(.{}, .{ + .tag = .unknown_warning, + .extra = .{ .str = name }, + }, &.{}); +} + +pub fn init(gpa: Allocator) Diagnostics { + return .{ + .arena = std.heap.ArenaAllocator.init(gpa), + }; +} + +pub fn deinit(d: *Diagnostics) void { + d.list.deinit(d.arena.child_allocator); + d.arena.deinit(); +} + +pub fn add(comp: *Compilation, msg: Message, expansion_locs: []const Source.Location) Compilation.Error!void { + return comp.diagnostics.addExtra(comp.langopts, msg, expansion_locs); +} + +pub fn addExtra( + d: *Diagnostics, + langopts: LangOpts, + msg: Message, + expansion_locs: []const Source.Location, +) Compilation.Error!void { + const kind = d.tagKind(msg.tag, langopts); + if (kind == .off) return; + var copy = msg; + copy.kind = kind; + + if (expansion_locs.len != 0) copy.loc = expansion_locs[expansion_locs.len - 1]; + try d.list.append(d.arena.child_allocator, copy); + if (expansion_locs.len != 0) { + // Add macro backtrace notes in reverse order omitting from the middle if needed. + var i = expansion_locs.len - 1; + const half = d.macro_backtrace_limit / 2; + const limit = if (i < d.macro_backtrace_limit) 0 else i - half; + try d.list.ensureUnusedCapacity( + d.arena.child_allocator, + if (limit == 0) expansion_locs.len else d.macro_backtrace_limit + 1, + ); + while (i > limit) { + i -= 1; + d.list.appendAssumeCapacity(.{ + .tag = .expanded_from_here, + .kind = .note, + .loc = expansion_locs[i], + }); + } + if (limit != 0) { + d.list.appendAssumeCapacity(.{ + .tag = .skipping_macro_backtrace, + .kind = .note, + .extra = .{ .unsigned = expansion_locs.len - d.macro_backtrace_limit }, + }); + i = half - 1; + while (i > 0) { + i -= 1; + d.list.appendAssumeCapacity(.{ + .tag = .expanded_from_here, + .kind = .note, + .loc = expansion_locs[i], + }); + } + } + + d.list.appendAssumeCapacity(.{ + .tag = .expanded_from_here, + .kind = .note, + .loc = msg.loc, + }); + } + if (kind == .@"fatal error" or (kind == .@"error" and d.fatal_errors)) + return error.FatalError; +} + +pub fn render(comp: *Compilation, config: std.io.tty.Config) void { + if (comp.diagnostics.list.items.len == 0) return; + var m = defaultMsgWriter(config); + defer m.deinit(); + renderMessages(comp, &m); +} +pub fn defaultMsgWriter(config: std.io.tty.Config) MsgWriter { + return MsgWriter.init(config); +} + +pub fn renderMessages(comp: *Compilation, m: anytype) void { + var errors: u32 = 0; + var warnings: u32 = 0; + for (comp.diagnostics.list.items) |msg| { + switch (msg.kind) { + .@"fatal error", .@"error" => errors += 1, + .warning => warnings += 1, + .note => {}, + .off => continue, // happens if an error is added before it is disabled + .default => unreachable, + } + renderMessage(comp, m, msg); + } + const w_s: []const u8 = if (warnings == 1) "" else "s"; + const e_s: []const u8 = if (errors == 1) "" else "s"; + if (errors != 0 and warnings != 0) { + m.print("{d} warning{s} and {d} error{s} generated.\n", .{ warnings, w_s, errors, e_s }); + } else if (warnings != 0) { + m.print("{d} warning{s} generated.\n", .{ warnings, w_s }); + } else if (errors != 0) { + m.print("{d} error{s} generated.\n", .{ errors, e_s }); + } + + comp.diagnostics.list.items.len = 0; + comp.diagnostics.errors += errors; +} + +pub fn renderMessage(comp: *Compilation, m: anytype, msg: Message) void { + var line: ?[]const u8 = null; + var end_with_splice = false; + const width = if (msg.loc.id != .unused) blk: { + var loc = msg.loc; + switch (msg.tag) { + .escape_sequence_overflow, + .invalid_universal_character, + => loc.byte_offset += @truncate(msg.extra.offset), + .non_standard_escape_char, + .unknown_escape_sequence, + => loc.byte_offset += msg.extra.invalid_escape.offset, + else => {}, + } + const source = comp.getSource(loc.id); + var line_col = source.lineCol(loc); + line = line_col.line; + end_with_splice = line_col.end_with_splice; + if (msg.tag == .backslash_newline_escape) { + line = line_col.line[0 .. line_col.col - 1]; + line_col.col += 1; + line_col.width += 1; + } + m.location(source.path, line_col.line_no, line_col.col); + break :blk line_col.width; + } else 0; + + m.start(msg.kind); + const prop = msg.tag.property(); + switch (prop.extra) { + .str => printRt(m, prop.msg, .{"{s}"}, .{msg.extra.str}), + .tok_id => printRt(m, prop.msg, .{ "{s}", "{s}" }, .{ + msg.extra.tok_id.expected.symbol(), + msg.extra.tok_id.actual.symbol(), + }), + .tok_id_expected => printRt(m, prop.msg, .{"{s}"}, .{msg.extra.tok_id_expected.symbol()}), + .arguments => printRt(m, prop.msg, .{ "{d}", "{d}" }, .{ + msg.extra.arguments.expected, + msg.extra.arguments.actual, + }), + .codepoints => printRt(m, prop.msg, .{ "{X:0>4}", "{u}" }, .{ + msg.extra.codepoints.actual, + msg.extra.codepoints.resembles, + }), + .attr_arg_count => printRt(m, prop.msg, .{ "{s}", "{d}" }, .{ + @tagName(msg.extra.attr_arg_count.attribute), + msg.extra.attr_arg_count.expected, + }), + .attr_arg_type => printRt(m, prop.msg, .{ "{s}", "{s}" }, .{ + msg.extra.attr_arg_type.expected.toString(), + msg.extra.attr_arg_type.actual.toString(), + }), + .actual_codepoint => printRt(m, prop.msg, .{"{X:0>4}"}, .{msg.extra.actual_codepoint}), + .ascii => printRt(m, prop.msg, .{"{c}"}, .{msg.extra.ascii}), + .unsigned => printRt(m, prop.msg, .{"{d}"}, .{msg.extra.unsigned}), + .pow_2_as_string => printRt(m, prop.msg, .{"{s}"}, .{switch (msg.extra.pow_2_as_string) { + 63 => "9223372036854775808", + 64 => "18446744073709551616", + 127 => "170141183460469231731687303715884105728", + 128 => "340282366920938463463374607431768211456", + else => unreachable, + }}), + .signed => printRt(m, prop.msg, .{"{d}"}, .{msg.extra.signed}), + .attr_enum => printRt(m, prop.msg, .{ "{s}", "{s}" }, .{ + @tagName(msg.extra.attr_enum.tag), + Attribute.Formatting.choices(msg.extra.attr_enum.tag), + }), + .ignored_record_attr => printRt(m, prop.msg, .{ "{s}", "{s}" }, .{ + @tagName(msg.extra.ignored_record_attr.tag), + @tagName(msg.extra.ignored_record_attr.specifier), + }), + .builtin_with_header => printRt(m, prop.msg, .{ "{s}", "{s}" }, .{ + @tagName(msg.extra.builtin_with_header.header), + Builtin.nameFromTag(msg.extra.builtin_with_header.builtin).span(), + }), + .invalid_escape => { + if (std.ascii.isPrint(msg.extra.invalid_escape.char)) { + const str: [1]u8 = .{msg.extra.invalid_escape.char}; + printRt(m, prop.msg, .{"{s}"}, .{&str}); + } else { + var buf: [3]u8 = undefined; + const str = std.fmt.bufPrint(&buf, "x{x}", .{std.fmt.fmtSliceHexLower(&.{msg.extra.invalid_escape.char})}) catch unreachable; + printRt(m, prop.msg, .{"{s}"}, .{str}); + } + }, + .normalized => { + const f = struct { + pub fn f( + bytes: []const u8, + comptime _: []const u8, + _: std.fmt.FormatOptions, + writer: anytype, + ) !void { + var it: std.unicode.Utf8Iterator = .{ + .bytes = bytes, + .i = 0, + }; + while (it.nextCodepoint()) |codepoint| { + if (codepoint < 0x7F) { + try writer.writeByte(@intCast(codepoint)); + } else if (codepoint < 0xFFFF) { + try writer.writeAll("\\u"); + try std.fmt.formatInt(codepoint, 16, .upper, .{ + .fill = '0', + .width = 4, + }, writer); + } else { + try writer.writeAll("\\U"); + try std.fmt.formatInt(codepoint, 16, .upper, .{ + .fill = '0', + .width = 8, + }, writer); + } + } + } + }.f; + printRt(m, prop.msg, .{"{s}"}, .{ + std.fmt.Formatter(f){ .data = msg.extra.normalized }, + }); + }, + .none, .offset => m.write(prop.msg), + } + + if (prop.opt) |some| { + if (msg.kind == .@"error" and prop.kind != .@"error") { + m.print(" [-Werror,-W{s}]", .{optName(some)}); + } else if (msg.kind != .note) { + m.print(" [-W{s}]", .{optName(some)}); + } + } + + m.end(line, width, end_with_splice); +} + +fn printRt(m: anytype, str: []const u8, comptime fmts: anytype, args: anytype) void { + var i: usize = 0; + inline for (fmts, args) |fmt, arg| { + const new = std.mem.indexOfPos(u8, str, i, fmt).?; + m.write(str[i..new]); + i = new + fmt.len; + m.print(fmt, .{arg}); + } + m.write(str[i..]); +} + +fn optName(offset: u16) []const u8 { + return std.meta.fieldNames(Options)[offset / @sizeOf(Kind)]; +} + +fn tagKind(d: *Diagnostics, tag: Tag, langopts: LangOpts) Kind { + const prop = tag.property(); + var kind = prop.getKind(&d.options); + + if (prop.all) { + if (d.options.all != .default) kind = d.options.all; + } + if (prop.w_extra) { + if (d.options.extra != .default) kind = d.options.extra; + } + if (prop.pedantic) { + if (d.options.pedantic != .default) kind = d.options.pedantic; + } + if (prop.suppress_version) |some| if (langopts.standard.atLeast(some)) return .off; + if (prop.suppress_unless_version) |some| if (!langopts.standard.atLeast(some)) return .off; + if (prop.suppress_gnu and langopts.standard.isExplicitGNU()) return .off; + if (prop.suppress_gcc and langopts.emulate == .gcc) return .off; + if (prop.suppress_clang and langopts.emulate == .clang) return .off; + if (prop.suppress_msvc and langopts.emulate == .msvc) return .off; + if (kind == .@"error" and d.fatal_errors) kind = .@"fatal error"; + return kind; +} + +const MsgWriter = struct { + w: std.io.BufferedWriter(4096, std.fs.File.Writer), + config: std.io.tty.Config, + + fn init(config: std.io.tty.Config) MsgWriter { + std.debug.getStderrMutex().lock(); + return .{ + .w = std.io.bufferedWriter(std.io.getStdErr().writer()), + .config = config, + }; + } + + pub fn deinit(m: *MsgWriter) void { + m.w.flush() catch {}; + std.debug.getStderrMutex().unlock(); + } + + pub fn print(m: *MsgWriter, comptime fmt: []const u8, args: anytype) void { + m.w.writer().print(fmt, args) catch {}; + } + + fn write(m: *MsgWriter, msg: []const u8) void { + m.w.writer().writeAll(msg) catch {}; + } + + fn setColor(m: *MsgWriter, color: std.io.tty.Color) void { + m.config.setColor(m.w.writer(), color) catch {}; + } + + fn location(m: *MsgWriter, path: []const u8, line: u32, col: u32) void { + m.setColor(.bold); + m.print("{s}:{d}:{d}: ", .{ path, line, col }); + } + + fn start(m: *MsgWriter, kind: Kind) void { + switch (kind) { + .@"fatal error", .@"error" => m.setColor(.bright_red), + .note => m.setColor(.bright_cyan), + .warning => m.setColor(.bright_magenta), + .off, .default => unreachable, + } + m.write(switch (kind) { + .@"fatal error" => "fatal error: ", + .@"error" => "error: ", + .note => "note: ", + .warning => "warning: ", + .off, .default => unreachable, + }); + m.setColor(.white); + } + + fn end(m: *MsgWriter, maybe_line: ?[]const u8, col: u32, end_with_splice: bool) void { + const line = maybe_line orelse { + m.write("\n"); + m.setColor(.reset); + return; + }; + const trailer = if (end_with_splice) "\\ " else ""; + m.setColor(.reset); + m.print("\n{s}{s}\n{s: >[3]}", .{ line, trailer, "", col }); + m.setColor(.bold); + m.setColor(.bright_green); + m.write("^\n"); + m.setColor(.reset); + } +}; diff --git a/deps/aro/aro/Diagnostics/messages.def b/deps/aro/aro/Diagnostics/messages.def new file mode 100644 index 0000000000..460f80ce45 --- /dev/null +++ b/deps/aro/aro/Diagnostics/messages.def @@ -0,0 +1,2446 @@ +const W = Properties.makeOpt; + +const pointer_sign_message = " converts between pointers to integer types with different sign"; + +# Maybe someday this will no longer be needed. +todo + .msg = "TODO: {s}" + .extra = .str + .kind = .@"error" + +error_directive + .msg = "{s}" + .extra = .str + .kind = .@"error" + +warning_directive + .msg = "{s}" + .opt = W("#warnings") + .extra = .str + .kind = .warning + +elif_without_if + .msg = "#elif without #if" + .kind = .@"error" + +elif_after_else + .msg = "#elif after #else" + .kind = .@"error" + +elifdef_without_if + .msg = "#elifdef without #if" + .kind = .@"error" + +elifdef_after_else + .msg = "#elifdef after #else" + .kind = .@"error" + +elifndef_without_if + .msg = "#elifndef without #if" + .kind = .@"error" + +elifndef_after_else + .msg = "#elifndef after #else" + .kind = .@"error" + +else_without_if + .msg = "#else without #if" + .kind = .@"error" + +else_after_else + .msg = "#else after #else" + .kind = .@"error" + +endif_without_if + .msg = "#endif without #if" + .kind = .@"error" + +unknown_pragma + .msg = "unknown pragma ignored" + .opt = W("unknown-pragmas") + .kind = .off + .all = true + +line_simple_digit + .msg = "#line directive requires a simple digit sequence" + .kind = .@"error" + +line_invalid_filename + .msg = "invalid filename for #line directive" + .kind = .@"error" + +unterminated_conditional_directive + .msg = "unterminated conditional directive" + .kind = .@"error" + +invalid_preprocessing_directive + .msg = "invalid preprocessing directive" + .kind = .@"error" + +macro_name_missing + .msg = "macro name missing" + .kind = .@"error" + +extra_tokens_directive_end + .msg = "extra tokens at end of macro directive" + .kind = .@"error" + +expected_value_in_expr + .msg = "expected value in expression" + .kind = .@"error" + +closing_paren + .msg = "expected closing ')'" + .kind = .@"error" + +to_match_paren + .msg = "to match this '('" + .kind = .note + +to_match_brace + .msg = "to match this '{'" + .kind = .note + +to_match_bracket + .msg = "to match this '['" + .kind = .note + +header_str_closing + .msg = "expected closing '>'" + .kind = .@"error" + +header_str_match + .msg = "to match this '<'" + .kind = .note + +string_literal_in_pp_expr + .msg = "string literal in preprocessor expression" + .kind = .@"error" + +float_literal_in_pp_expr + .msg = "floating point literal in preprocessor expression" + .kind = .@"error" + +defined_as_macro_name + .msg = "'defined' cannot be used as a macro name" + .kind = .@"error" + +macro_name_must_be_identifier + .msg = "macro name must be an identifier" + .kind = .@"error" + +whitespace_after_macro_name + .msg = "ISO C99 requires whitespace after the macro name" + .opt = W("c99-extensions") + .kind = .warning + +hash_hash_at_start + .msg = "'##' cannot appear at the start of a macro expansion" + .kind = .@"error" + +hash_hash_at_end + .msg = "'##' cannot appear at the end of a macro expansion" + .kind = .@"error" + +pasting_formed_invalid + .msg = "pasting formed '{s}', an invalid preprocessing token" + .extra = .str + .kind = .@"error" + +missing_paren_param_list + .msg = "missing ')' in macro parameter list" + .kind = .@"error" + +unterminated_macro_param_list + .msg = "unterminated macro param list" + .kind = .@"error" + +invalid_token_param_list + .msg = "invalid token in macro parameter list" + .kind = .@"error" + +expected_comma_param_list + .msg = "expected comma in macro parameter list" + .kind = .@"error" + +hash_not_followed_param + .msg = "'#' is not followed by a macro parameter" + .kind = .@"error" + +expected_filename + .msg = "expected \"FILENAME\" or " + .kind = .@"error" + +empty_filename + .msg = "empty filename" + .kind = .@"error" + +expected_invalid + .msg = "expected '{s}', found invalid bytes" + .extra = .tok_id_expected + .kind = .@"error" + +expected_eof + .msg = "expected '{s}' before end of file" + .extra = .tok_id_expected + .kind = .@"error" + +expected_token + .msg = "expected '{s}', found '{s}'" + .extra = .tok_id + .kind = .@"error" + +expected_expr + .msg = "expected expression" + .kind = .@"error" + +expected_integer_constant_expr + .msg = "expression is not an integer constant expression" + .kind = .@"error" + +missing_type_specifier + .msg = "type specifier missing, defaults to 'int'" + .opt = W("implicit-int") + .kind = .warning + .all = true + +missing_type_specifier_c23 + .msg = "a type specifier is required for all declarations" + .kind = .@"error" + +multiple_storage_class + .msg = "cannot combine with previous '{s}' declaration specifier" + .extra = .str + .kind = .@"error" + +static_assert_failure + .msg = "static assertion failed" + .kind = .@"error" + +static_assert_failure_message + .msg = "static assertion failed {s}" + .extra = .str + .kind = .@"error" + +expected_type + .msg = "expected a type" + .kind = .@"error" + +cannot_combine_spec + .msg = "cannot combine with previous '{s}' specifier" + .extra = .str + .kind = .@"error" + +duplicate_decl_spec + .msg = "duplicate '{s}' declaration specifier" + .extra = .str + .opt = W("duplicate-decl-specifier") + .kind = .warning + .all = true + +restrict_non_pointer + .msg = "restrict requires a pointer or reference ('{s}' is invalid)" + .extra = .str + .kind = .@"error" + +expected_external_decl + .msg = "expected external declaration" + .kind = .@"error" + +expected_ident_or_l_paren + .msg = "expected identifier or '('" + .kind = .@"error" + +missing_declaration + .msg = "declaration does not declare anything" + .opt = W("missing-declaration") + .kind = .warning + +func_not_in_root + .msg = "function definition is not allowed here" + .kind = .@"error" + +illegal_initializer + .msg = "illegal initializer (only variables can be initialized)" + .kind = .@"error" + +extern_initializer + .msg = "extern variable has initializer" + .opt = W("extern-initializer") + .kind = .warning + +spec_from_typedef + .msg = "'{s}' came from typedef" + .extra = .str + .kind = .note + +param_before_var_args + .msg = "ISO C requires a named parameter before '...'" + .kind = .@"error" + .suppress_version = .c23 + +void_only_param + .msg = "'void' must be the only parameter if specified" + .kind = .@"error" + +void_param_qualified + .msg = "'void' parameter cannot be qualified" + .kind = .@"error" + +void_must_be_first_param + .msg = "'void' must be the first parameter if specified" + .kind = .@"error" + +invalid_storage_on_param + .msg = "invalid storage class on function parameter" + .kind = .@"error" + +threadlocal_non_var + .msg = "_Thread_local only allowed on variables" + .kind = .@"error" + +func_spec_non_func + .msg = "'{s}' can only appear on functions" + .extra = .str + .kind = .@"error" + +illegal_storage_on_func + .msg = "illegal storage class on function" + .kind = .@"error" + +illegal_storage_on_global + .msg = "illegal storage class on global variable" + .kind = .@"error" + +expected_stmt + .msg = "expected statement" + .kind = .@"error" + +func_cannot_return_func + .msg = "function cannot return a function" + .kind = .@"error" + +func_cannot_return_array + .msg = "function cannot return an array" + .kind = .@"error" + +undeclared_identifier + .msg = "use of undeclared identifier '{s}'" + .extra = .str + .kind = .@"error" + +not_callable + .msg = "cannot call non function type '{s}'" + .extra = .str + .kind = .@"error" + +unsupported_str_cat + .msg = "unsupported string literal concatenation" + .kind = .@"error" + +static_func_not_global + .msg = "static functions must be global" + .kind = .@"error" + +implicit_func_decl + .msg = "call to undeclared function '{s}'; ISO C99 and later do not support implicit function declarations" + .extra = .str + .opt = W("implicit-function-declaration") + .kind = .@"error" + .all = true + +unknown_builtin + .msg = "use of unknown builtin '{s}'" + .extra = .str + .opt = W("implicit-function-declaration") + .kind = .@"error" + .all = true + +implicit_builtin + .msg = "implicitly declaring library function '{s}'" + .extra = .str + .opt = W("implicit-function-declaration") + .kind = .@"error" + .all = true + +implicit_builtin_header_note + .msg = "include the header <{s}.h> or explicitly provide a declaration for '{s}'" + .extra = .builtin_with_header + .opt = W("implicit-function-declaration") + .kind = .note + .all = true + +expected_param_decl + .msg = "expected parameter declaration" + .kind = .@"error" + +invalid_old_style_params + .msg = "identifier parameter lists are only allowed in function definitions" + .kind = .@"error" + +expected_fn_body + .msg = "expected function body after function declaration" + .kind = .@"error" + +invalid_void_param + .msg = "parameter cannot have void type" + .kind = .@"error" + +unused_value + .msg = "expression result unused" + .opt = W("unused-value") + .kind = .warning + .all = true + +continue_not_in_loop + .msg = "'continue' statement not in a loop" + .kind = .@"error" + +break_not_in_loop_or_switch + .msg = "'break' statement not in a loop or a switch" + .kind = .@"error" + +unreachable_code + .msg = "unreachable code" + .opt = W("unreachable-code") + .kind = .warning + .all = true + +duplicate_label + .msg = "duplicate label '{s}'" + .extra = .str + .kind = .@"error" + +previous_label + .msg = "previous definition of label '{s}' was here" + .extra = .str + .kind = .note + +undeclared_label + .msg = "use of undeclared label '{s}'" + .extra = .str + .kind = .@"error" + +case_not_in_switch + .msg = "'{s}' statement not in a switch statement" + .extra = .str + .kind = .@"error" + +duplicate_switch_case + .msg = "duplicate case value '{s}'" + .extra = .str + .kind = .@"error" + +multiple_default + .msg = "multiple default cases in the same switch" + .kind = .@"error" + +previous_case + .msg = "previous case defined here" + .kind = .note + +const expected_arguments = "expected {d} argument(s) got {d}"; + +expected_arguments + .msg = expected_arguments + .extra = .arguments + .kind = .@"error" + +expected_arguments_old + .msg = expected_arguments + .extra = .arguments + .kind = .warning + +expected_at_least_arguments + .msg = "expected at least {d} argument(s) got {d}" + .extra = .arguments + .kind = .warning + +invalid_static_star + .msg = "'static' may not be used with an unspecified variable length array size" + .kind = .@"error" + +static_non_param + .msg = "'static' used outside of function parameters" + .kind = .@"error" + +array_qualifiers + .msg = "type qualifier in non parameter array type" + .kind = .@"error" + +star_non_param + .msg = "star modifier used outside of function parameters" + .kind = .@"error" + +variable_len_array_file_scope + .msg = "variable length arrays not allowed at file scope" + .kind = .@"error" + +useless_static + .msg = "'static' useless without a constant size" + .kind = .warning + .w_extra = true + +negative_array_size + .msg = "array size must be 0 or greater" + .kind = .@"error" + +array_incomplete_elem + .msg = "array has incomplete element type '{s}'" + .extra = .str + .kind = .@"error" + +array_func_elem + .msg = "arrays cannot have functions as their element type" + .kind = .@"error" + +static_non_outermost_array + .msg = "'static' used in non-outermost array type" + .kind = .@"error" + +qualifier_non_outermost_array + .msg = "type qualifier used in non-outermost array type" + .kind = .@"error" + +unterminated_macro_arg_list + .msg = "unterminated function macro argument list" + .kind = .@"error" + +unknown_warning + .msg = "unknown warning '{s}'" + .extra = .str + .opt = W("unknown-warning-option") + .kind = .warning + +overflow + .msg = "overflow in expression; result is '{s}'" + .extra = .str + .opt = W("integer-overflow") + .kind = .warning + +int_literal_too_big + .msg = "integer literal is too large to be represented in any integer type" + .kind = .@"error" + +indirection_ptr + .msg = "indirection requires pointer operand" + .kind = .@"error" + +addr_of_rvalue + .msg = "cannot take the address of an rvalue" + .kind = .@"error" + +addr_of_bitfield + .msg = "address of bit-field requested" + .kind = .@"error" + +not_assignable + .msg = "expression is not assignable" + .kind = .@"error" + +ident_or_l_brace + .msg = "expected identifier or '{'" + .kind = .@"error" + +empty_enum + .msg = "empty enum is invalid" + .kind = .@"error" + +redefinition + .msg = "redefinition of '{s}'" + .extra = .str + .kind = .@"error" + +previous_definition + .msg = "previous definition is here" + .kind = .note + +expected_identifier + .msg = "expected identifier" + .kind = .@"error" + +expected_str_literal + .msg = "expected string literal for diagnostic message in static_assert" + .kind = .@"error" + +expected_str_literal_in + .msg = "expected string literal in '{s}'" + .extra = .str + .kind = .@"error" + +parameter_missing + .msg = "parameter named '{s}' is missing" + .extra = .str + .kind = .@"error" + +empty_record + .msg = "empty {s} is a GNU extension" + .extra = .str + .opt = W("gnu-empty-struct") + .kind = .off + .pedantic = true + +empty_record_size + .msg = "empty {s} has size 0 in C, size 1 in C++" + .extra = .str + .opt = W("c++-compat") + .kind = .off + +wrong_tag + .msg = "use of '{s}' with tag type that does not match previous definition" + .extra = .str + .kind = .@"error" + +expected_parens_around_typename + .msg = "expected parentheses around type name" + .kind = .@"error" + +alignof_expr + .msg = "'_Alignof' applied to an expression is a GNU extension" + .opt = W("gnu-alignof-expression") + .kind = .warning + .suppress_gnu = true + +invalid_alignof + .msg = "invalid application of 'alignof' to an incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +invalid_sizeof + .msg = "invalid application of 'sizeof' to an incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +macro_redefined + .msg = "'{s}' macro redefined" + .extra = .str + .opt = W("macro-redefined") + .kind = .warning + +generic_qual_type + .msg = "generic association with qualifiers cannot be matched with" + .opt = W("generic-qual-type") + .kind = .warning + +generic_array_type + .msg = "generic association array type cannot be matched with" + .opt = W("generic-qual-type") + .kind = .warning + +generic_func_type + .msg = "generic association function type cannot be matched with" + .opt = W("generic-qual-type") + .kind = .warning + +generic_duplicate + .msg = "type '{s}' in generic association compatible with previously specified type" + .extra = .str + .kind = .@"error" + +generic_duplicate_here + .msg = "compatible type '{s}' specified here" + .extra = .str + .kind = .note + +generic_duplicate_default + .msg = "duplicate default generic association" + .kind = .@"error" + +generic_no_match + .msg = "controlling expression type '{s}' not compatible with any generic association type" + .extra = .str + .kind = .@"error" + +escape_sequence_overflow + .msg = "escape sequence out of range" + .kind = .@"error" + +invalid_universal_character + .msg = "invalid universal character" + .kind = .@"error" + +incomplete_universal_character + .msg = "incomplete universal character name" + .kind = .@"error" + +multichar_literal_warning + .msg = "multi-character character constant" + .opt = W("multichar") + .kind = .warning + .all = true + +invalid_multichar_literal + .msg = "{s} character literals may not contain multiple characters" + .kind = .@"error" + .extra = .str + +wide_multichar_literal + .msg = "extraneous characters in character constant ignored" + .kind = .warning + +char_lit_too_wide + .msg = "character constant too long for its type" + .kind = .warning + .all = true + +char_too_large + .msg = "character too large for enclosing character literal type" + .kind = .@"error" + +must_use_struct + .msg = "must use 'struct' tag to refer to type '{s}'" + .extra = .str + .kind = .@"error" + +must_use_union + .msg = "must use 'union' tag to refer to type '{s}'" + .extra = .str + .kind = .@"error" + +must_use_enum + .msg = "must use 'enum' tag to refer to type '{s}'" + .extra = .str + .kind = .@"error" + +redefinition_different_sym + .msg = "redefinition of '{s}' as different kind of symbol" + .extra = .str + .kind = .@"error" + +redefinition_incompatible + .msg = "redefinition of '{s}' with a different type" + .extra = .str + .kind = .@"error" + +redefinition_of_parameter + .msg = "redefinition of parameter '{s}'" + .extra = .str + .kind = .@"error" + +invalid_bin_types + .msg = "invalid operands to binary expression ({s})" + .extra = .str + .kind = .@"error" + +comparison_ptr_int + .msg = "comparison between pointer and integer ({s})" + .extra = .str + .opt = W("pointer-integer-compare") + .kind = .warning + +comparison_distinct_ptr + .msg = "comparison of distinct pointer types ({s})" + .extra = .str + .opt = W("compare-distinct-pointer-types") + .kind = .warning + +incompatible_pointers + .msg = "incompatible pointer types ({s})" + .extra = .str + .kind = .@"error" + +invalid_argument_un + .msg = "invalid argument type '{s}' to unary expression" + .extra = .str + .kind = .@"error" + +incompatible_assign + .msg = "assignment to {s}" + .extra = .str + .kind = .@"error" + +implicit_ptr_to_int + .msg = "implicit pointer to integer conversion from {s}" + .extra = .str + .opt = W("int-conversion") + .kind = .warning + +invalid_cast_to_float + .msg = "pointer cannot be cast to type '{s}'" + .extra = .str + .kind = .@"error" + +invalid_cast_to_pointer + .msg = "operand of type '{s}' cannot be cast to a pointer type" + .extra = .str + .kind = .@"error" + +invalid_cast_type + .msg = "cannot cast to non arithmetic or pointer type '{s}'" + .extra = .str + .kind = .@"error" + +qual_cast + .msg = "cast to type '{s}' will not preserve qualifiers" + .extra = .str + .opt = W("cast-qualifiers") + .kind = .warning + +invalid_index + .msg = "array subscript is not an integer" + .kind = .@"error" + +invalid_subscript + .msg = "subscripted value is not an array or pointer" + .kind = .@"error" + +array_after + .msg = "array index {s} is past the end of the array" + .extra = .str + .opt = W("array-bounds") + .kind = .warning + +array_before + .msg = "array index {s} is before the beginning of the array" + .extra = .str + .opt = W("array-bounds") + .kind = .warning + +statement_int + .msg = "statement requires expression with integer type ('{s}' invalid)" + .extra = .str + .kind = .@"error" + +statement_scalar + .msg = "statement requires expression with scalar type ('{s}' invalid)" + .extra = .str + .kind = .@"error" + +func_should_return + .msg = "non-void function '{s}' should return a value" + .extra = .str + .opt = W("return-type") + .kind = .@"error" + .all = true + +incompatible_return + .msg = "returning {s}" + .extra = .str + .kind = .@"error" + +incompatible_return_sign + .msg = "returning {s}" ++ pointer_sign_message + .extra = .str + .kind = .warning + .opt = W("pointer-sign") + +implicit_int_to_ptr + .msg = "implicit integer to pointer conversion from {s}" + .extra = .str + .opt = W("int-conversion") + .kind = .warning + +func_does_not_return + .msg = "non-void function '{s}' does not return a value" + .extra = .str + .opt = W("return-type") + .kind = .warning + .all = true + +void_func_returns_value + .msg = "void function '{s}' should not return a value" + .extra = .str + .opt = W("return-type") + .kind = .@"error" + .all = true + +incompatible_arg + .msg = "passing {s}" + .extra = .str + .kind = .@"error" + +incompatible_ptr_arg + .msg = "passing {s}" + .extra = .str + .kind = .warning + .opt = W("incompatible-pointer-types") + +incompatible_ptr_arg_sign + .msg = "passing {s}" ++ pointer_sign_message + .extra = .str + .kind = .warning + .opt = W("pointer-sign") + +parameter_here + .msg = "passing argument to parameter here" + .kind = .note + +atomic_array + .msg = "atomic cannot be applied to array type '{s}'" + .extra = .str + .kind = .@"error" + +atomic_func + .msg = "atomic cannot be applied to function type '{s}'" + .extra = .str + .kind = .@"error" + +atomic_incomplete + .msg = "atomic cannot be applied to incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +addr_of_register + .msg = "address of register variable requested" + .kind = .@"error" + +variable_incomplete_ty + .msg = "variable has incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +parameter_incomplete_ty + .msg = "parameter has incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +tentative_array + .msg = "tentative array definition assumed to have one element" + .kind = .warning + +deref_incomplete_ty_ptr + .msg = "dereferencing pointer to incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +alignas_on_func + .msg = "'_Alignas' attribute only applies to variables and fields" + .kind = .@"error" + +alignas_on_param + .msg = "'_Alignas' attribute cannot be applied to a function parameter" + .kind = .@"error" + +minimum_alignment + .msg = "requested alignment is less than minimum alignment of {d}" + .extra = .unsigned + .kind = .@"error" + +maximum_alignment + .msg = "requested alignment of {s} is too large" + .extra = .str + .kind = .@"error" + +negative_alignment + .msg = "requested negative alignment of {s} is invalid" + .extra = .str + .kind = .@"error" + +align_ignored + .msg = "'_Alignas' attribute is ignored here" + .kind = .warning + +zero_align_ignored + .msg = "requested alignment of zero is ignored" + .kind = .warning + +non_pow2_align + .msg = "requested alignment is not a power of 2" + .kind = .@"error" + +pointer_mismatch + .msg = "pointer type mismatch ({s})" + .extra = .str + .opt = W("pointer-type-mismatch") + .kind = .warning + +static_assert_not_constant + .msg = "static_assert expression is not an integral constant expression" + .kind = .@"error" + +static_assert_missing_message + .msg = "static_assert with no message is a C23 extension" + .opt = W("c23-extensions") + .kind = .warning + .suppress_version = .c23 + +pre_c23_compat + .msg = "{s} is incompatible with C standards before C23" + .extra = .str + .kind = .off + .suppress_unless_version = .c23 + .opt = W("pre-c23-compat") + +unbound_vla + .msg = "variable length array must be bound in function definition" + .kind = .@"error" + +array_too_large + .msg = "array is too large" + .kind = .@"error" + +incompatible_ptr_init + .msg = "incompatible pointer types initializing {s}" + .extra = .str + .opt = W("incompatible-pointer-types") + .kind = .warning + +incompatible_ptr_init_sign + .msg = "incompatible pointer types initializing {s}" ++ pointer_sign_message + .extra = .str + .opt = W("pointer-sign") + .kind = .warning + +incompatible_ptr_assign + .msg = "incompatible pointer types assigning to {s}" + .extra = .str + .opt = W("incompatible-pointer-types") + .kind = .warning + +incompatible_ptr_assign_sign + .msg = "incompatible pointer types assigning to {s} " ++ pointer_sign_message + .extra = .str + .opt = W("pointer-sign") + .kind = .warning + +vla_init + .msg = "variable-sized object may not be initialized" + .kind = .@"error" + +func_init + .msg = "illegal initializer type" + .kind = .@"error" + +incompatible_init + .msg = "initializing {s}" + .extra = .str + .kind = .@"error" + +empty_scalar_init + .msg = "scalar initializer cannot be empty" + .kind = .@"error" + +excess_scalar_init + .msg = "excess elements in scalar initializer" + .opt = W("excess-initializers") + .kind = .warning + +excess_str_init + .msg = "excess elements in string initializer" + .opt = W("excess-initializers") + .kind = .warning + +excess_struct_init + .msg = "excess elements in struct initializer" + .opt = W("excess-initializers") + .kind = .warning + +excess_array_init + .msg = "excess elements in array initializer" + .opt = W("excess-initializers") + .kind = .warning + +str_init_too_long + .msg = "initializer-string for char array is too long" + .opt = W("excess-initializers") + .kind = .warning + +arr_init_too_long + .msg = "cannot initialize type ({s})" + .extra = .str + .kind = .@"error" + +invalid_typeof + .msg = "'{s} typeof' is invalid" + .extra = .str + .kind = .@"error" + +division_by_zero + .msg = "{s} by zero is undefined" + .extra = .str + .opt = W("division-by-zero") + .kind = .warning + +division_by_zero_macro + .msg = "{s} by zero in preprocessor expression" + .extra = .str + .kind = .@"error" + +builtin_choose_cond + .msg = "'__builtin_choose_expr' requires a constant expression" + .kind = .@"error" + +alignas_unavailable + .msg = "'_Alignas' attribute requires integer constant expression" + .kind = .@"error" + +case_val_unavailable + .msg = "case value must be an integer constant expression" + .kind = .@"error" + +enum_val_unavailable + .msg = "enum value must be an integer constant expression" + .kind = .@"error" + +incompatible_array_init + .msg = "cannot initialize array of type {s}" + .extra = .str + .kind = .@"error" + +array_init_str + .msg = "array initializer must be an initializer list or wide string literal" + .kind = .@"error" + +initializer_overrides + .msg = "initializer overrides previous initialization" + .opt = W("initializer-overrides") + .kind = .warning + .w_extra = true + +previous_initializer + .msg = "previous initialization" + .kind = .note + +invalid_array_designator + .msg = "array designator used for non-array type '{s}'" + .extra = .str + .kind = .@"error" + +negative_array_designator + .msg = "array designator value {s} is negative" + .extra = .str + .kind = .@"error" + +oob_array_designator + .msg = "array designator index {s} exceeds array bounds" + .extra = .str + .kind = .@"error" + +invalid_field_designator + .msg = "field designator used for non-record type '{s}'" + .extra = .str + .kind = .@"error" + +no_such_field_designator + .msg = "record type has no field named '{s}'" + .extra = .str + .kind = .@"error" + +empty_aggregate_init_braces + .msg = "initializer for aggregate with no elements requires explicit braces" + .kind = .@"error" + +ptr_init_discards_quals + .msg = "initializing {s} discards qualifiers" + .extra = .str + .opt = W("incompatible-pointer-types-discards-qualifiers") + .kind = .warning + +ptr_assign_discards_quals + .msg = "assigning to {s} discards qualifiers" + .extra = .str + .opt = W("incompatible-pointer-types-discards-qualifiers") + .kind = .warning + +ptr_ret_discards_quals + .msg = "returning {s} discards qualifiers" + .extra = .str + .opt = W("incompatible-pointer-types-discards-qualifiers") + .kind = .warning + +ptr_arg_discards_quals + .msg = "passing {s} discards qualifiers" + .extra = .str + .opt = W("incompatible-pointer-types-discards-qualifiers") + .kind = .warning + +unknown_attribute + .msg = "unknown attribute '{s}' ignored" + .extra = .str + .opt = W("unknown-attributes") + .kind = .warning + +ignored_attribute + .msg = "{s}" + .extra = .str + .opt = W("ignored-attributes") + .kind = .warning + +invalid_fallthrough + .msg = "fallthrough annotation does not directly precede switch label" + .kind = .@"error" + +cannot_apply_attribute_to_statement + .msg = "'{s}' attribute cannot be applied to a statement" + .extra = .str + .kind = .@"error" + +builtin_macro_redefined + .msg = "redefining builtin macro" + .opt = W("builtin-macro-redefined") + .kind = .warning + +feature_check_requires_identifier + .msg = "builtin feature check macro requires a parenthesized identifier" + .kind = .@"error" + +missing_tok_builtin + .msg = "missing '{s}', after builtin feature-check macro" + .extra = .tok_id_expected + .kind = .@"error" + +gnu_label_as_value + .msg = "use of GNU address-of-label extension" + .opt = W("gnu-label-as-value") + .kind = .off + .pedantic = true + +expected_record_ty + .msg = "member reference base type '{s}' is not a structure or union" + .extra = .str + .kind = .@"error" + +member_expr_not_ptr + .msg = "member reference type '{s}' is not a pointer; did you mean to use '.'?" + .extra = .str + .kind = .@"error" + +member_expr_ptr + .msg = "member reference type '{s}' is a pointer; did you mean to use '->'?" + .extra = .str + .kind = .@"error" + +no_such_member + .msg = "no member named {s}" + .extra = .str + .kind = .@"error" + +malformed_warning_check + .msg = "{s} expected option name (e.g. \"-Wundef\")" + .extra = .str + .opt = W("malformed-warning-check") + .kind = .warning + .all = true + +invalid_computed_goto + .msg = "computed goto in function with no address-of-label expressions" + .kind = .@"error" + +pragma_warning_message + .msg = "{s}" + .extra = .str + .opt = W("#pragma-messages") + .kind = .warning + +pragma_error_message + .msg = "{s}" + .extra = .str + .kind = .@"error" + +pragma_message + .msg = "#pragma message: {s}" + .extra = .str + .kind = .note + +pragma_requires_string_literal + .msg = "pragma {s} requires string literal" + .extra = .str + .kind = .@"error" + +poisoned_identifier + .msg = "attempt to use a poisoned identifier" + .kind = .@"error" + +pragma_poison_identifier + .msg = "can only poison identifier tokens" + .kind = .@"error" + +pragma_poison_macro + .msg = "poisoning existing macro" + .kind = .warning + +newline_eof + .msg = "no newline at end of file" + .opt = W("newline-eof") + .kind = .off + .pedantic = true + +empty_translation_unit + .msg = "ISO C requires a translation unit to contain at least one declaration" + .opt = W("empty-translation-unit") + .kind = .off + .pedantic = true + +omitting_parameter_name + .msg = "omitting the parameter name in a function definition is a C23 extension" + .opt = W("c23-extensions") + .kind = .warning + .suppress_version = .c23 + +non_int_bitfield + .msg = "bit-field has non-integer type '{s}'" + .extra = .str + .kind = .@"error" + +negative_bitwidth + .msg = "bit-field has negative width ({s})" + .extra = .str + .kind = .@"error" + +zero_width_named_field + .msg = "named bit-field has zero width" + .kind = .@"error" + +bitfield_too_big + .msg = "width of bit-field exceeds width of its type" + .kind = .@"error" + +invalid_utf8 + .msg = "source file is not valid UTF-8" + .kind = .@"error" + +implicitly_unsigned_literal + .msg = "integer literal is too large to be represented in a signed integer type, interpreting as unsigned" + .opt = W("implicitly-unsigned-literal") + .kind = .warning + +invalid_preproc_operator + .msg = "token is not a valid binary operator in a preprocessor subexpression" + .kind = .@"error" + +invalid_preproc_expr_start + .msg = "invalid token at start of a preprocessor expression" + .kind = .@"error" + +c99_compat + .msg = "using this character in an identifier is incompatible with C99" + .opt = W("c99-compat") + .kind = .off + +unexpected_character + .msg = "unexpected character 4}>" + .extra = .actual_codepoint + .kind = .@"error" + +invalid_identifier_start_char + .msg = "character 4}> not allowed at the start of an identifier" + .extra = .actual_codepoint + .kind = .@"error" + +unicode_zero_width + .msg = "identifier contains Unicode character 4}> that is invisible in some environments" + .opt = W("unicode-homoglyph") + .extra = .actual_codepoint + .kind = .warning + +unicode_homoglyph + .msg = "treating Unicode character 4}> as identifier character rather than as '{u}' symbol" + .extra = .codepoints + .opt = W("unicode-homoglyph") + .kind = .warning + +meaningless_asm_qual + .msg = "meaningless '{s}' on assembly outside function" + .extra = .str + .kind = .@"error" + +duplicate_asm_qual + .msg = "duplicate asm qualifier '{s}'" + .extra = .str + .kind = .@"error" + +invalid_asm_str + .msg = "cannot use {s} string literal in assembly" + .extra = .str + .kind = .@"error" + +dollar_in_identifier_extension + .msg = "'$' in identifier" + .opt = W("dollar-in-identifier-extension") + .kind = .off + .pedantic = true + +dollars_in_identifiers + .msg = "illegal character '$' in identifier" + .kind = .@"error" + +expanded_from_here + .msg = "expanded from here" + .kind = .note + +skipping_macro_backtrace + .msg = "(skipping {d} expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)" + .extra = .unsigned + .kind = .note + +pragma_operator_string_literal + .msg = "_Pragma requires exactly one string literal token" + .kind = .@"error" + +unknown_gcc_pragma + .msg = "pragma GCC expected 'error', 'warning', 'diagnostic', 'poison'" + .opt = W("unknown-pragmas") + .kind = .off + .all = true + +unknown_gcc_pragma_directive + .msg = "pragma GCC diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'" + .opt = W("unknown-pragmas") + .kind = .warning + .all = true + +predefined_top_level + .msg = "predefined identifier is only valid inside function" + .opt = W("predefined-identifier-outside-function") + .kind = .warning + +incompatible_va_arg + .msg = "first argument to va_arg, is of type '{s}' and not 'va_list'" + .extra = .str + .kind = .@"error" + +too_many_scalar_init_braces + .msg = "too many braces around scalar initializer" + .opt = W("many-braces-around-scalar-init") + .kind = .warning + +uninitialized_in_own_init + .msg = "variable '{s}' is uninitialized when used within its own initialization" + .extra = .str + .opt = W("uninitialized") + .kind = .off + .all = true + +gnu_statement_expression + .msg = "use of GNU statement expression extension" + .opt = W("gnu-statement-expression") + .kind = .off + .suppress_gnu = true + .pedantic = true + +stmt_expr_not_allowed_file_scope + .msg = "statement expression not allowed at file scope" + .kind = .@"error" + +gnu_imaginary_constant + .msg = "imaginary constants are a GNU extension" + .opt = W("gnu-imaginary-constant") + .kind = .off + .suppress_gnu = true + .pedantic = true + +plain_complex + .msg = "plain '_Complex' requires a type specifier; assuming '_Complex double'" + .kind = .warning + +complex_int + .msg = "complex integer types are a GNU extension" + .opt = W("gnu-complex-integer") + .suppress_gnu = true + .kind = .off + +qual_on_ret_type + .msg = "'{s}' type qualifier on return type has no effect" + .opt = W("ignored-qualifiers") + .extra = .str + .kind = .off + .all = true + +cli_invalid_standard + .msg = "invalid standard '{s}'" + .extra = .str + .kind = .@"error" + +cli_invalid_target + .msg = "invalid target '{s}'" + .extra = .str + .kind = .@"error" + +cli_invalid_emulate + .msg = "invalid compiler '{s}'" + .extra = .str + .kind = .@"error" + +cli_unknown_arg + .msg = "unknown argument '{s}'" + .extra = .str + .kind = .@"error" + +cli_error + .msg = "{s}" + .extra = .str + .kind = .@"error" + +cli_unused_link_object + .msg = "{s}: linker input file unused because linking not done" + .extra = .str + .kind = .warning + +cli_unknown_linker + .msg = "unrecognized linker '{s}'" + .extra = .str + .kind = .@"error" + +extra_semi + .msg = "extra ';' outside of a function" + .opt = W("extra-semi") + .kind = .off + .pedantic = true + +func_field + .msg = "field declared as a function" + .kind = .@"error" + +vla_field + .msg = "variable length array fields extension is not supported" + .kind = .@"error" + +field_incomplete_ty + .msg = "field has incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +flexible_in_union + .msg = "flexible array member in union is not allowed" + .kind = .@"error" + .suppress_msvc = true + +flexible_non_final + .msg = "flexible array member is not at the end of struct" + .kind = .@"error" + +flexible_in_empty + .msg = "flexible array member in otherwise empty struct" + .kind = .@"error" + .suppress_msvc = true + +duplicate_member + .msg = "duplicate member '{s}'" + .extra = .str + .kind = .@"error" + +binary_integer_literal + .msg = "binary integer literals are a GNU extension" + .kind = .off + .opt = W("gnu-binary-literal") + .pedantic = true + +gnu_va_macro + .msg = "named variadic macros are a GNU extension" + .opt = W("variadic-macros") + .kind = .off + .pedantic = true + +builtin_must_be_called + .msg = "builtin function must be directly called" + .kind = .@"error" + +va_start_not_in_func + .msg = "'va_start' cannot be used outside a function" + .kind = .@"error" + +va_start_fixed_args + .msg = "'va_start' used in a function with fixed args" + .kind = .@"error" + +va_start_not_last_param + .msg = "second argument to 'va_start' is not the last named parameter" + .opt = W("varargs") + .kind = .warning + +attribute_not_enough_args + .msg = "'{s}' attribute takes at least {d} argument(s)" + .kind = .@"error" + .extra = .attr_arg_count + +attribute_too_many_args + .msg = "'{s}' attribute takes at most {d} argument(s)" + .kind = .@"error" + .extra = .attr_arg_count + +attribute_arg_invalid + .msg = "Attribute argument is invalid, expected {s} but got {s}" + .kind = .@"error" + .extra = .attr_arg_type + +unknown_attr_enum + .msg = "Unknown `{s}` argument. Possible values are: {s}" + .kind = .@"error" + .extra = .attr_enum + +attribute_requires_identifier + .msg = "'{s}' attribute requires an identifier" + .kind = .@"error" + .extra = .str + +declspec_not_enabled + .msg = "'__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes" + .kind = .@"error" + +declspec_attr_not_supported + .msg = "__declspec attribute '{s}' is not supported" + .extra = .str + .opt = W("ignored-attributes") + .kind = .warning + +deprecated_declarations + .msg = "{s}" + .extra = .str + .opt = W("deprecated-declarations") + .kind = .warning + +deprecated_note + .msg = "'{s}' has been explicitly marked deprecated here" + .extra = .str + .opt = W("deprecated-declarations") + .kind = .note + +unavailable + .msg = "{s}" + .extra = .str + .kind = .@"error" + +unavailable_note + .msg = "'{s}' has been explicitly marked unavailable here" + .extra = .str + .kind = .note + +warning_attribute + .msg = "{s}" + .extra = .str + .kind = .warning + .opt = W("attribute-warning") + +error_attribute + .msg = "{s}" + .extra = .str + .kind = .@"error" + +ignored_record_attr + .msg = "attribute '{s}' is ignored, place it after \"{s}\" to apply attribute to type declaration" + .extra = .ignored_record_attr + .kind = .warning + .opt = W("ignored-attributes") + +backslash_newline_escape + .msg = "backslash and newline separated by space" + .kind = .warning + .opt = W("backslash-newline-escape") + +array_size_non_int + .msg = "size of array has non-integer type '{s}'" + .extra = .str + .kind = .@"error" + +cast_to_smaller_int + .msg = "cast to smaller integer type {s}" + .extra = .str + .kind = .warning + .opt = W("pointer-to-int-cast") + +gnu_switch_range + .msg = "use of GNU case range extension" + .opt = W("gnu-case-range") + .kind = .off + .pedantic = true + +empty_case_range + .msg = "empty case range specified" + .kind = .warning + +non_standard_escape_char + .msg = "use of non-standard escape character '\\{s}'" + .kind = .off + .opt = W("pedantic") + .extra = .invalid_escape + +invalid_pp_stringify_escape + .msg = "invalid string literal, ignoring final '\\'" + .kind = .warning + +vla + .msg = "variable length array used" + .kind = .off + .opt = W("vla") + +float_overflow_conversion + .msg = "implicit conversion of non-finite value from {s} is undefined" + .extra = .str + .kind = .off + .opt = W("float-overflow-conversion") + +float_out_of_range + .msg = "implicit conversion of out of range value from {s} is undefined" + .extra = .str + .kind = .warning + .opt = W("literal-conversion") + +float_zero_conversion + .msg = "implicit conversion from {s}" + .extra = .str + .kind = .off + .opt = W("float-zero-conversion") + +float_value_changed + .msg = "implicit conversion from {s}" + .extra = .str + .kind = .warning + .opt = W("float-conversion") + +float_to_int + .msg = "implicit conversion turns floating-point number into integer: {s}" + .extra = .str + .kind = .off + .opt = W("literal-conversion") + +const_decl_folded + .msg = "expression is not an integer constant expression; folding it to a constant is a GNU extension" + .kind = .off + .opt = W("gnu-folding-constant") + .pedantic = true + +const_decl_folded_vla + .msg = "variable length array folded to constant array as an extension" + .kind = .off + .opt = W("gnu-folding-constant") + .pedantic = true + +redefinition_of_typedef + .msg = "typedef redefinition with different types ({s})" + .extra = .str + .kind = .@"error" + +undefined_macro + .msg = "'{s}' is not defined, evaluates to 0" + .extra = .str + .kind = .off + .opt = W("undef") + +fn_macro_undefined + .msg = "function-like macro '{s}' is not defined" + .extra = .str + .kind = .@"error" + +preprocessing_directive_only + .msg = "'{s}' must be used within a preprocessing directive" + .extra = .tok_id_expected + .kind = .@"error" + +missing_lparen_after_builtin + .msg = "Missing '(' after built-in macro '{s}'" + .extra = .str + .kind = .@"error" + +offsetof_ty + .msg = "offsetof requires struct or union type, '{s}' invalid" + .extra = .str + .kind = .@"error" + +offsetof_incomplete + .msg = "offsetof of incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +offsetof_array + .msg = "offsetof requires array type, '{s}' invalid" + .extra = .str + .kind = .@"error" + +pragma_pack_lparen + .msg = "missing '(' after '#pragma pack' - ignoring" + .kind = .warning + .opt = W("ignored-pragmas") + +pragma_pack_rparen + .msg = "missing ')' after '#pragma pack' - ignoring" + .kind = .warning + .opt = W("ignored-pragmas") + +pragma_pack_unknown_action + .msg = "unknown action for '#pragma pack' - ignoring" + .opt = W("ignored-pragmas") + .kind = .warning + +pragma_pack_show + .msg = "value of #pragma pack(show) == {d}" + .extra = .unsigned + .kind = .warning + +pragma_pack_int + .msg = "expected #pragma pack parameter to be '1', '2', '4', '8', or '16'" + .opt = W("ignored-pragmas") + .kind = .warning + +pragma_pack_int_ident + .msg = "expected integer or identifier in '#pragma pack' - ignored" + .opt = W("ignored-pragmas") + .kind = .warning + +pragma_pack_undefined_pop + .msg = "specifying both a name and alignment to 'pop' is undefined" + .kind = .warning + +pragma_pack_empty_stack + .msg = "#pragma pack(pop, ...) failed: stack empty" + .opt = W("ignored-pragmas") + .kind = .warning + +cond_expr_type + .msg = "used type '{s}' where arithmetic or pointer type is required" + .extra = .str + .kind = .@"error" + +too_many_includes + .msg = "#include nested too deeply" + .kind = .@"error" + +enumerator_too_small + .msg = "ISO C restricts enumerator values to range of 'int' ({s} is too small)" + .extra = .str + .kind = .off + .opt = W("pedantic") + +enumerator_too_large + .msg = "ISO C restricts enumerator values to range of 'int' ({s} is too large)" + .extra = .str + .kind = .off + .opt = W("pedantic") + +include_next + .msg = "#include_next is a language extension" + .kind = .off + .pedantic = true + .opt = W("gnu-include-next") + +include_next_outside_header + .msg = "#include_next in primary source file; will search from start of include path" + .kind = .warning + .opt = W("include-next-outside-header") + +enumerator_overflow + .msg = "overflow in enumeration value" + .kind = .warning + +enum_not_representable + .msg = "incremented enumerator value {s} is not representable in the largest integer type" + .kind = .warning + .opt = W("enum-too-large") + .extra = .pow_2_as_string + +enum_too_large + .msg = "enumeration values exceed range of largest integer" + .kind = .warning + .opt = W("enum-too-large") + +enum_fixed + .msg = "enumeration types with a fixed underlying type are a Clang extension" + .kind = .off + .pedantic = true + .opt = W("fixed-enum-extension") + +enum_prev_nonfixed + .msg = "enumeration previously declared with nonfixed underlying type" + .kind = .@"error" + +enum_prev_fixed + .msg = "enumeration previously declared with fixed underlying type" + .kind = .@"error" + +enum_different_explicit_ty + # str will be like 'new' (was 'old' + .msg = "enumeration redeclared with different underlying type {s})" + .extra = .str + .kind = .@"error" + +enum_not_representable_fixed + .msg = "enumerator value is not representable in the underlying type '{s}'" + .extra = .str + .kind = .@"error" + +transparent_union_wrong_type + .msg = "'transparent_union' attribute only applies to unions" + .opt = W("ignored-attributes") + .kind = .warning + +transparent_union_one_field + .msg = "transparent union definition must contain at least one field; transparent_union attribute ignored" + .opt = W("ignored-attributes") + .kind = .warning + +transparent_union_size + .msg = "size of field {s} bits) does not match the size of the first field in transparent union; transparent_union attribute ignored" + .extra = .str + .opt = W("ignored-attributes") + .kind = .warning + +transparent_union_size_note + .msg = "size of first field is {d}" + .extra = .unsigned + .kind = .note + +designated_init_invalid + .msg = "'designated_init' attribute is only valid on 'struct' type'" + .kind = .@"error" + +designated_init_needed + .msg = "positional initialization of field in 'struct' declared with 'designated_init' attribute" + .opt = W("designated-init") + .kind = .warning + +ignore_common + .msg = "ignoring attribute 'common' because it conflicts with attribute 'nocommon'" + .opt = W("ignored-attributes") + .kind = .warning + +ignore_nocommon + .msg = "ignoring attribute 'nocommon' because it conflicts with attribute 'common'" + .opt = W("ignored-attributes") + .kind = .warning + +non_string_ignored + .msg = "'nonstring' attribute ignored on objects of type '{s}'" + .opt = W("ignored-attributes") + .kind = .warning + +local_variable_attribute + .msg = "'{s}' attribute only applies to local variables" + .extra = .str + .opt = W("ignored-attributes") + .kind = .warning + +ignore_cold + .msg = "ignoring attribute 'cold' because it conflicts with attribute 'hot'" + .opt = W("ignored-attributes") + .kind = .warning + +ignore_hot + .msg = "ignoring attribute 'hot' because it conflicts with attribute 'cold'" + .opt = W("ignored-attributes") + .kind = .warning + +ignore_noinline + .msg = "ignoring attribute 'noinline' because it conflicts with attribute 'always_inline'" + .opt = W("ignored-attributes") + .kind = .warning + +ignore_always_inline + .msg = "ignoring attribute 'always_inline' because it conflicts with attribute 'noinline'" + .opt = W("ignored-attributes") + .kind = .warning + +invalid_noreturn + .msg = "function '{s}' declared 'noreturn' should not return" + .extra = .str + .kind = .warning + .opt = W("invalid-noreturn") + +nodiscard_unused + .msg = "ignoring return value of '{s}', declared with 'nodiscard' attribute" + .extra = .str + .kind = .warning + .opt = W("unused-result") + +warn_unused_result + .msg = "ignoring return value of '{s}', declared with 'warn_unused_result' attribute" + .extra = .str + .kind = .warning + .opt = W("unused-result") + +invalid_vec_elem_ty + .msg = "invalid vector element type '{s}'" + .extra = .str + .kind = .@"error" + +vec_size_not_multiple + .msg = "vector size not an integral multiple of component size" + .kind = .@"error" + +invalid_imag + .msg = "invalid type '{s}' to __imag operator" + .extra = .str + .kind = .@"error" + +invalid_real + .msg = "invalid type '{s}' to __real operator" + .extra = .str + .kind = .@"error" + +zero_length_array + .msg = "zero size arrays are an extension" + .kind = .off + .pedantic = true + .opt = W("zero-length-array") + +old_style_flexible_struct + .msg = "array index {s} is past the end of the array" + .extra = .str + .kind = .off + .pedantic = true + .opt = W("old-style-flexible-struct") + +comma_deletion_va_args + .msg = "token pasting of ',' and __VA_ARGS__ is a GNU extension" + .kind = .off + .pedantic = true + .opt = W("gnu-zero-variadic-macro-arguments") + .suppress_gcc = true + +main_return_type + .msg = "return type of 'main' is not 'int'" + .kind = .warning + .opt = W("main-return-type") + +expansion_to_defined + .msg = "macro expansion producing 'defined' has undefined behavior" + .kind = .off + .pedantic = true + .opt = W("expansion-to-defined") + +invalid_int_suffix + .msg = "invalid suffix '{s}' on integer constant" + .extra = .str + .kind = .@"error" + +invalid_float_suffix + .msg = "invalid suffix '{s}' on floating constant" + .extra = .str + .kind = .@"error" + +invalid_octal_digit + .msg = "invalid digit '{c}' in octal constant" + .extra = .ascii + .kind = .@"error" + +invalid_binary_digit + .msg = "invalid digit '{c}' in binary constant" + .extra = .ascii + .kind = .@"error" + +exponent_has_no_digits + .msg = "exponent has no digits" + .kind = .@"error" + +hex_floating_constant_requires_exponent + .msg = "hexadecimal floating constant requires an exponent" + .kind = .@"error" + +sizeof_returns_zero + .msg = "sizeof returns 0" + .kind = .warning + .suppress_gcc = true + .suppress_clang = true + +declspec_not_allowed_after_declarator + .msg = "'declspec' attribute not allowed after declarator" + .kind = .@"error" + +declarator_name_tok + .msg = "this declarator" + .kind = .note + +type_not_supported_on_target + .msg = "{s} is not supported on this target" + .extra = .str + .kind = .@"error" + +bit_int + .msg = "'_BitInt' in C17 and earlier is a Clang extension'" + .kind = .off + .pedantic = true + .opt = W("bit-int-extension") + .suppress_version = .c23 + +unsigned_bit_int_too_small + .msg = "{s} must have a bit size of at least 1" + .extra = .str + .kind = .@"error" + +signed_bit_int_too_small + .msg = "{s} must have a bit size of at least 2" + .extra = .str + .kind = .@"error" + +bit_int_too_big + .msg = "{s} of bit sizes greater than " ++ std.fmt.comptimePrint("{d}", .{Properties.max_bits}) ++ " not supported" + .extra = .str + .kind = .@"error" + +keyword_macro + .msg = "keyword is hidden by macro definition" + .kind = .off + .pedantic = true + .opt = W("keyword-macro") + +ptr_arithmetic_incomplete + .msg = "arithmetic on a pointer to an incomplete type '{s}'" + .extra = .str + .kind = .@"error" + +callconv_not_supported + .msg = "'{s}' calling convention is not supported for this target" + .extra = .str + .opt = W("ignored-attributes") + .kind = .warning + +pointer_arith_void + .msg = "invalid application of '{s}' to a void type" + .extra = .str + .kind = .off + .pedantic = true + .opt = W("pointer-arith") + +sizeof_array_arg + .msg = "sizeof on array function parameter will return size of {s}" + .extra = .str + .kind = .warning + .opt = W("sizeof-array-argument") + +array_address_to_bool + .msg = "address of array '{s}' will always evaluate to 'true'" + .extra = .str + .kind = .warning + .opt = W("pointer-bool-conversion") + +string_literal_to_bool + .msg = "implicit conversion turns string literal into bool: {s}" + .extra = .str + .kind = .off + .opt = W("string-conversion") + +constant_expression_conversion_not_allowed + .msg = "this conversion is not allowed in a constant expression" + .kind = .note + +invalid_object_cast + .msg = "cannot cast an object of type {s}" + .extra = .str + .kind = .@"error" + +cli_invalid_fp_eval_method + .msg = "unsupported argument '{s}' to option '-ffp-eval-method='; expected 'source', 'double', or 'extended'" + .extra = .str + .kind = .@"error" + +suggest_pointer_for_invalid_fp16 + .msg = "{s} cannot have __fp16 type; did you forget * ?" + .extra = .str + .kind = .@"error" + +bitint_suffix + .msg = "'_BitInt' suffix for literals is a C23 extension" + .opt = W("c23-extensions") + .kind = .warning + .suppress_version = .c23 + +auto_type_extension + .msg = "'__auto_type' is a GNU extension" + .opt = W("gnu-auto-type") + .kind = .off + .pedantic = true + +auto_type_not_allowed + .msg = "'__auto_type' not allowed in {s}" + .kind = .@"error" + .extra = .str + +auto_type_requires_initializer + .msg = "declaration of variable '{s}' with deduced type requires an initializer" + .kind = .@"error" + .extra = .str + +auto_type_requires_single_declarator + .msg = "'__auto_type' may only be used with a single declarator" + .kind = .@"error" + +auto_type_requires_plain_declarator + .msg = "'__auto_type' requires a plain identifier as declarator" + .kind = .@"error" + +invalid_cast_to_auto_type + .msg = "invalid cast to '__auto_type'" + .kind = .@"error" + +auto_type_from_bitfield + .msg = "cannot use bit-field as '__auto_type' initializer" + .kind = .@"error" + +array_of_auto_type + .msg = "'{s}' declared as array of '__auto_type'" + .kind = .@"error" + .extra = .str + +auto_type_with_init_list + .msg = "cannot use '__auto_type' with initializer list" + .kind = .@"error" + +missing_semicolon + .msg = "expected ';' at end of declaration list" + .kind = .warning + +tentative_definition_incomplete + .msg = "tentative definition has type '{s}' that is never completed" + .kind = .@"error" + .extra = .str + +forward_declaration_here + .msg = "forward declaration of '{s}'" + .kind = .note + .extra = .str + +gnu_union_cast + .msg = "cast to union type is a GNU extension" + .opt = W("gnu-union-cast") + .kind = .off + .pedantic = true + +invalid_union_cast + .msg = "cast to union type from type '{s}' not present in union" + .kind = .@"error" + .extra = .str + +cast_to_incomplete_type + .msg = "cast to incomplete type '{s}'" + .kind = .@"error" + .extra = .str + +invalid_source_epoch + .msg = "environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer less than or equal to 253402300799" + .kind = .@"error" + +fuse_ld_path + .msg = "'-fuse-ld=' taking a path is deprecated; use '--ld-path=' instead" + .kind = .off + .opt = W("fuse-ld-path") + +invalid_rtlib + .msg = "invalid runtime library name '{s}'" + .kind = .@"error" + .extra = .str + +unsupported_rtlib_gcc + .msg = "unsupported runtime library 'libgcc' for platform '{s}'" + .kind = .@"error" + .extra = .str + +invalid_unwindlib + .msg = "invalid unwind library name '{s}'" + .kind = .@"error" + .extra = .str + +incompatible_unwindlib + .msg = "--rtlib=libgcc requires --unwindlib=libgcc" + .kind = .@"error" + +gnu_asm_disabled + .msg = "GNU-style inline assembly is disabled" + .kind = .@"error" + +extension_token_used + .msg = "extension used" + .kind = .off + .pedantic = true + .opt = W("language-extension-token") + +complex_component_init + .msg = "complex initialization specifying real and imaginary components is an extension" + .opt = W("complex-component-init") + .kind = .off + .pedantic = true + +complex_prefix_postfix_op + .msg = "ISO C does not support '++'/'--' on complex type '{s}'" + .opt = W("pedantic") + .extra = .str + .kind = .off + +not_floating_type + .msg = "argument type '{s}' is not a real floating point type" + .extra = .str + .kind = .@"error" + +argument_types_differ + .msg = "arguments are of different types ({s})" + .extra = .str + .kind = .@"error" + +ms_search_rule + .msg = "#include resolved using non-portable Microsoft search rules as: {s}" + .extra = .str + .opt = W("microsoft-include") + .kind = .warning + +ctrl_z_eof + .msg = "treating Ctrl-Z as end-of-file is a Microsoft extension" + .opt = W("microsoft-end-of-file") + .kind = .off + .pedantic = true + +illegal_char_encoding_warning + .msg = "illegal character encoding in character literal" + .opt = W("invalid-source-encoding") + .kind = .warning + +illegal_char_encoding_error + .msg = "illegal character encoding in character literal" + .kind = .@"error" + +ucn_basic_char_error + .msg = "character '{c}' cannot be specified by a universal character name" + .kind = .@"error" + .extra = .ascii + +ucn_basic_char_warning + .msg = "specifying character '{c}' with a universal character name is incompatible with C standards before C23" + .kind = .off + .extra = .ascii + .suppress_unless_version = .c23 + .opt = W("pre-c23-compat") + +ucn_control_char_error + .msg = "universal character name refers to a control character" + .kind = .@"error" + +ucn_control_char_warning + .msg = "universal character name referring to a control character is incompatible with C standards before C23" + .kind = .off + .suppress_unless_version = .c23 + .opt = W("pre-c23-compat") + +c89_ucn_in_literal + .msg = "universal character names are only valid in C99 or later" + .suppress_version = .c99 + .kind = .warning + .opt = W("unicode") + +four_char_char_literal + .msg = "multi-character character constant" + .opt = W("four-char-constants") + .kind = .off + +multi_char_char_literal + .msg = "multi-character character constant" + .kind = .off + +missing_hex_escape + .msg = "\\{c} used with no following hex digits" + .kind = .@"error" + .extra = .ascii + +unknown_escape_sequence + .msg = "unknown escape sequence '\\{s}'" + .kind = .warning + .opt = W("unknown-escape-sequence") + .extra = .invalid_escape + +attribute_requires_string + .msg = "attribute '{s}' requires an ordinary string" + .kind = .@"error" + .extra = .str + +unterminated_string_literal_warning + .msg = "missing terminating '\"' character" + .kind = .warning + .opt = W("invalid-pp-token") + +unterminated_string_literal_error + .msg = "missing terminating '\"' character" + .kind = .@"error" + +empty_char_literal_warning + .msg = "empty character constant" + .kind = .warning + .opt = W("invalid-pp-token") + +empty_char_literal_error + .msg = "empty character constant" + .kind = .@"error" + +unterminated_char_literal_warning + .msg = "missing terminating ' character" + .kind = .warning + .opt = W("invalid-pp-token") + +unterminated_char_literal_error + .msg = "missing terminating ' character" + .kind = .@"error" + +unterminated_comment + .msg = "unterminated comment" + .kind = .@"error" + +def_no_proto_deprecated + .msg = "a function definition without a prototype is deprecated in all versions of C and is not supported in C23" + .kind = .warning + .opt = W("deprecated-non-prototype") + +passing_args_to_kr + .msg = "passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C23" + .kind = .warning + .opt = W("deprecated-non-prototype") + +unknown_type_name + .msg = "unknown type name '{s}'" + .kind = .@"error" + .extra = .str + +label_compound_end + .msg = "label at end of compound statement is a C23 extension" + .opt = W("c23-extensions") + .kind = .warning + .suppress_version = .c23 + +u8_char_lit + .msg = "UTF-8 character literal is a C23 extension" + .opt = W("c23-extensions") + .kind = .warning + .suppress_version = .c23 + +malformed_embed_param + .msg = "unexpected token in embed parameter" + .kind = .@"error" + +malformed_embed_limit + .msg = "the limit parameter expects one non-negative integer as a parameter" + .kind = .@"error" + +duplicate_embed_param + .msg = "duplicate embed parameter '{s}'" + .kind = .warning + .extra = .str + .opt = W("duplicate-embed-param") + +unsupported_embed_param + .msg = "unsupported embed parameter '{s}' embed parameter" + .kind = .warning + .extra = .str + .opt = W("unsupported-embed-param") + +invalid_compound_literal_storage_class + .msg = "compound literal cannot have {s} storage class" + .kind = .@"error" + .extra = .str + +va_opt_lparen + .msg = "missing '(' following __VA_OPT__" + .kind = .@"error" + +va_opt_rparen + .msg = "unterminated __VA_OPT__ argument list" + .kind = .@"error" + +attribute_int_out_of_range + .msg = "attribute value '{s}' out of range" + .kind = .@"error" + .extra = .str + +identifier_not_normalized + .msg = "'{s}' is not in NFC" + .kind = .warning + .extra = .normalized + .opt = W("normalized") + +c23_auto_plain_declarator + .msg = "'auto' requires a plain identifier declarator" + .kind = .@"error" + +c23_auto_single_declarator + .msg = "'auto' can only be used with a single declarator" + .kind = .@"error" + +c32_auto_requires_initializer + .msg = "'auto' requires an initializer" + .kind = .@"error" + +c23_auto_scalar_init + .msg = "'auto' requires a scalar initializer" + .kind = .@"error" diff --git a/deps/aro/Driver.zig b/deps/aro/aro/Driver.zig similarity index 80% rename from deps/aro/Driver.zig rename to deps/aro/aro/Driver.zig index 6b661fc172..d1b32b9c15 100644 --- a/deps/aro/Driver.zig +++ b/deps/aro/aro/Driver.zig @@ -2,18 +2,17 @@ const std = @import("std"); const mem = std.mem; const Allocator = mem.Allocator; const process = std.process; -const Codegen = @import("Codegen_legacy.zig"); +const backend = @import("backend"); +const Ir = backend.Ir; +const Object = backend.Object; const Compilation = @import("Compilation.zig"); +const Diagnostics = @import("Diagnostics.zig"); const LangOpts = @import("LangOpts.zig"); const Preprocessor = @import("Preprocessor.zig"); -const Parser = @import("Parser.zig"); const Source = @import("Source.zig"); const Toolchain = @import("Toolchain.zig"); -const util = @import("util.zig"); const target_util = @import("target.zig"); -const Driver = @This(); - pub const Linker = enum { ld, bfd, @@ -22,11 +21,14 @@ pub const Linker = enum { mold, }; +const Driver = @This(); + comp: *Compilation, inputs: std.ArrayListUnmanaged(Source) = .{}, link_objects: std.ArrayListUnmanaged([]const u8) = .{}, output_name: ?[]const u8 = null, sysroot: ?[]const u8 = null, +system_defines: Compilation.SystemDefinesMode = .include_system_defines, temp_file_count: u32 = 0, /// If false, do not emit line directives in -E mode line_commands: bool = true, @@ -40,6 +42,7 @@ verbose_ast: bool = false, verbose_pp: bool = false, verbose_ir: bool = false, verbose_linker_args: bool = false, +color: ?bool = null, /// Full path to the aro executable aro_name: []const u8 = "", @@ -87,8 +90,8 @@ pub const usage = \\ -c, --compile Only run preprocess, compile, and assemble steps \\ -D = Define to (defaults to 1) \\ -E Only run the preprocessor - \\ -fchar8_t Enable char8_t (enabled by default in C2X and later) - \\ -fno-char8_t Disable char8_t (disabled by default for pre-C2X) + \\ -fchar8_t Enable char8_t (enabled by default in C23 and later) + \\ -fno-char8_t Disable char8_t (disabled by default for pre-C23) \\ -fcolor-diagnostics Enable colors in diagnostics \\ -fno-color-diagnostics Disable colors in diagnostics \\ -fdeclspec Enable support for __declspec attributes @@ -131,6 +134,7 @@ pub const usage = \\ --sysroot= Use dir as the logical root directory for headers and libraries (not fully implemented) \\ --target= Generate code for the given target \\ -U Undefine + \\ -undef Do not predefine any system-specific macros. Standard predefined macros remain defined. \\ -Werror Treat all warnings as errors \\ -Werror= Treat warning as error \\ -W Enable the specified warning @@ -172,23 +176,18 @@ pub fn parseArgs( args: []const []const u8, ) !bool { var i: usize = 1; - var color_setting: enum { - on, - off, - unset, - } = .unset; var comment_arg: []const u8 = ""; while (i < args.len) : (i += 1) { const arg = args[i]; if (mem.startsWith(u8, arg, "-") and arg.len > 1) { if (mem.eql(u8, arg, "-h") or mem.eql(u8, arg, "--help")) { std_out.print(usage, .{args[0]}) catch |er| { - return d.fatal("unable to print usage: {s}", .{util.errorDescription(er)}); + return d.fatal("unable to print usage: {s}", .{errorDescription(er)}); }; return true; } else if (mem.eql(u8, arg, "-v") or mem.eql(u8, arg, "--version")) { - std_out.writeAll(@import("lib.zig").version_str ++ "\n") catch |er| { - return d.fatal("unable to print version: {s}", .{util.errorDescription(er)}); + std_out.writeAll(@import("backend").version_str ++ "\n") catch |er| { + return d.fatal("unable to print version: {s}", .{errorDescription(er)}); }; return true; } else if (mem.startsWith(u8, arg, "-D")) { @@ -218,6 +217,8 @@ pub fn parseArgs( macro = args[i]; } try macro_buf.print("#undef {s}\n", .{macro}); + } else if (mem.eql(u8, arg, "-undef")) { + d.system_defines = .no_system_defines; } else if (mem.eql(u8, arg, "-c") or mem.eql(u8, arg, "--compile")) { d.only_compile = true; } else if (mem.eql(u8, arg, "-E")) { @@ -233,9 +234,9 @@ pub fn parseArgs( } else if (mem.eql(u8, arg, "-fno-char8_t")) { d.comp.langopts.has_char8_t_override = false; } else if (mem.eql(u8, arg, "-fcolor-diagnostics")) { - color_setting = .on; + d.color = true; } else if (mem.eql(u8, arg, "-fno-color-diagnostics")) { - color_setting = .off; + d.color = false; } else if (mem.eql(u8, arg, "-fdollars-in-identifiers")) { d.comp.langopts.dollars_in_identifiers = true; } else if (mem.eql(u8, arg, "-fno-dollars-in-identifiers")) { @@ -255,7 +256,7 @@ pub fn parseArgs( }; if (limit == 0) limit = std.math.maxInt(u32); - d.comp.diag.macro_backtrace_limit = limit; + d.comp.diagnostics.macro_backtrace_limit = limit; } else if (mem.eql(u8, arg, "-fnative-half-type")) { d.comp.langopts.use_native_half_type = true; } else if (mem.eql(u8, arg, "-fnative-half-arguments-and-returns")) { @@ -290,7 +291,7 @@ pub fn parseArgs( } path = args[i]; } - try d.comp.include_dirs.append(path); + try d.comp.include_dirs.append(d.comp.gpa, path); } else if (mem.startsWith(u8, arg, "-fsyntax-only")) { d.only_syntax = true; } else if (mem.startsWith(u8, arg, "-fno-syntax-only")) { @@ -307,17 +308,17 @@ pub fn parseArgs( } const duped = try d.comp.gpa.dupe(u8, path); errdefer d.comp.gpa.free(duped); - try d.comp.system_include_dirs.append(duped); + try d.comp.system_include_dirs.append(d.comp.gpa, duped); } else if (option(arg, "--emulate=")) |compiler_str| { const compiler = std.meta.stringToEnum(LangOpts.Compiler, compiler_str) orelse { - try d.comp.diag.add(.{ .tag = .cli_invalid_emulate, .extra = .{ .str = arg } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_invalid_emulate, .extra = .{ .str = arg } }, &.{}); continue; }; d.comp.langopts.setEmulatedCompiler(compiler); } else if (option(arg, "-ffp-eval-method=")) |fp_method_str| { const fp_eval_method = std.meta.stringToEnum(LangOpts.FPEvalMethod, fp_method_str) orelse .indeterminate; if (fp_eval_method == .indeterminate) { - try d.comp.diag.add(.{ .tag = .cli_invalid_fp_eval_method, .extra = .{ .str = fp_method_str } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_invalid_fp_eval_method, .extra = .{ .str = fp_method_str } }, &.{}); continue; } d.comp.langopts.setFpEvalMethod(fp_eval_method); @@ -335,31 +336,31 @@ pub fn parseArgs( } else if (option(arg, "--sysroot=")) |sysroot| { d.sysroot = sysroot; } else if (mem.eql(u8, arg, "-pedantic")) { - d.comp.diag.options.pedantic = .warning; + d.comp.diagnostics.options.pedantic = .warning; } else if (option(arg, "--rtlib=")) |rtlib| { if (mem.eql(u8, rtlib, "compiler-rt") or mem.eql(u8, rtlib, "libgcc") or mem.eql(u8, rtlib, "platform")) { d.rtlib = rtlib; } else { - try d.comp.diag.add(.{ .tag = .invalid_rtlib, .extra = .{ .str = rtlib } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .invalid_rtlib, .extra = .{ .str = rtlib } }, &.{}); } } else if (option(arg, "-Werror=")) |err_name| { - try d.comp.diag.set(err_name, .@"error"); + try d.comp.diagnostics.set(err_name, .@"error"); } else if (mem.eql(u8, arg, "-Wno-fatal-errors")) { - d.comp.diag.fatal_errors = false; + d.comp.diagnostics.fatal_errors = false; } else if (option(arg, "-Wno-")) |err_name| { - try d.comp.diag.set(err_name, .off); + try d.comp.diagnostics.set(err_name, .off); } else if (mem.eql(u8, arg, "-Wfatal-errors")) { - d.comp.diag.fatal_errors = true; + d.comp.diagnostics.fatal_errors = true; } else if (option(arg, "-W")) |err_name| { - try d.comp.diag.set(err_name, .warning); + try d.comp.diagnostics.set(err_name, .warning); } else if (option(arg, "-std=")) |standard| { d.comp.langopts.setStandard(standard) catch - try d.comp.diag.add(.{ .tag = .cli_invalid_standard, .extra = .{ .str = arg } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_invalid_standard, .extra = .{ .str = arg } }, &.{}); } else if (mem.eql(u8, arg, "-S") or mem.eql(u8, arg, "--assemble")) { d.only_preprocess_and_compile = true; } else if (option(arg, "--target=")) |triple| { const cross = std.zig.CrossTarget.parse(.{ .arch_os_abi = triple }) catch { - try d.comp.diag.add(.{ .tag = .cli_invalid_target, .extra = .{ .str = arg } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_invalid_target, .extra = .{ .str = arg } }, &.{}); continue; }; d.comp.target = cross.toTarget(); // TODO deprecated @@ -422,25 +423,20 @@ pub fn parseArgs( break; } } else { - try d.comp.diag.add(.{ .tag = .invalid_unwindlib, .extra = .{ .str = unwindlib } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .invalid_unwindlib, .extra = .{ .str = unwindlib } }, &.{}); } } else { - try d.comp.diag.add(.{ .tag = .cli_unknown_arg, .extra = .{ .str = arg } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_unknown_arg, .extra = .{ .str = arg } }, &.{}); } } else if (std.mem.endsWith(u8, arg, ".o") or std.mem.endsWith(u8, arg, ".obj")) { try d.link_objects.append(d.comp.gpa, arg); } else { const source = d.addSource(arg) catch |er| { - return d.fatal("unable to add source file '{s}': {s}", .{ arg, util.errorDescription(er) }); + return d.fatal("unable to add source file '{s}': {s}", .{ arg, errorDescription(er) }); }; try d.inputs.append(d.comp.gpa, source); } } - d.comp.diag.color = switch (color_setting) { - .on => true, - .off => false, - .unset => util.fileSupportsColor(std.io.getStdErr()) and !std.process.hasEnvVarConstant("NO_COLOR"), - }; if (d.comp.langopts.preserve_comments and !d.only_preprocess) { return d.fatal("invalid argument '{s}' only allowed with '-E'", .{comment_arg}); } @@ -465,15 +461,65 @@ fn addSource(d: *Driver, path: []const u8) !Source { } pub fn err(d: *Driver, msg: []const u8) !void { - try d.comp.diag.add(.{ .tag = .cli_error, .extra = .{ .str = msg } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_error, .extra = .{ .str = msg } }, &.{}); } -pub fn fatal(d: *Driver, comptime fmt: []const u8, args: anytype) error{FatalError} { - d.comp.renderErrors(); - return d.comp.diag.fatalNoSrc(fmt, args); +pub fn fatal(d: *Driver, comptime fmt: []const u8, args: anytype) error{ FatalError, OutOfMemory } { + try d.comp.diagnostics.list.append(d.comp.gpa, .{ + .tag = .cli_error, + .kind = .@"fatal error", + .extra = .{ .str = try std.fmt.allocPrint(d.comp.diagnostics.arena.allocator(), fmt, args) }, + }); + return error.FatalError; } -pub fn main(d: *Driver, tc: *Toolchain, args: []const []const u8) !void { +pub fn renderErrors(d: *Driver) void { + Diagnostics.render(d.comp, d.detectConfig(std.io.getStdErr())); +} + +pub fn detectConfig(d: *Driver, file: std.fs.File) std.io.tty.Config { + if (d.color == true) return .escape_codes; + if (d.color == false) return .no_color; + + if (file.supportsAnsiEscapeCodes()) return .escape_codes; + if (@import("builtin").os.tag == .windows and file.isTty()) { + var info: std.os.windows.CONSOLE_SCREEN_BUFFER_INFO = undefined; + if (std.os.windows.kernel32.GetConsoleScreenBufferInfo(file.handle, &info) != std.os.windows.TRUE) { + return .no_color; + } + return .{ .windows_api = .{ + .handle = file.handle, + .reset_attributes = info.wAttributes, + } }; + } + + return .no_color; +} + +pub fn errorDescription(e: anyerror) []const u8 { + return switch (e) { + error.OutOfMemory => "ran out of memory", + error.FileNotFound => "file not found", + error.IsDir => "is a directory", + error.NotDir => "is not a directory", + error.NotOpenForReading => "file is not open for reading", + error.NotOpenForWriting => "file is not open for writing", + error.InvalidUtf8 => "input is not valid UTF-8", + error.FileBusy => "file is busy", + error.NameTooLong => "file name is too long", + error.AccessDenied => "access denied", + error.FileTooBig => "file is too big", + error.ProcessFdQuotaExceeded, error.SystemFdQuotaExceeded => "ran out of file descriptors", + error.SystemResources => "ran out of system resources", + error.FatalError => "a fatal error occurred", + error.Unexpected => "an unexpected error occurred", + else => @errorName(e), + }; +} + +/// The entry point of the Aro compiler. +/// **MAY call `exit` if `fast_exit` is set.** +pub fn main(d: *Driver, tc: *Toolchain, args: []const []const u8, comptime fast_exit: bool) !void { var macro_buf = std.ArrayList(u8).init(d.comp.gpa); defer macro_buf.deinit(); @@ -489,7 +535,7 @@ pub fn main(d: *Driver, tc: *Toolchain, args: []const []const u8) !void { } if (!linking) for (d.link_objects.items) |obj| { - try d.comp.diag.add(.{ .tag = .cli_unused_link_object, .extra = .{ .str = obj } }, &.{}); + try d.comp.addDiagnostic(.{ .tag = .cli_unused_link_object, .extra = .{ .str = obj } }, &.{}); }; d.comp.defineSystemIncludes(d.aro_name) catch |er| switch (er) { @@ -497,15 +543,13 @@ pub fn main(d: *Driver, tc: *Toolchain, args: []const []const u8) !void { error.AroIncludeNotFound => return d.fatal("unable to find Aro builtin headers", .{}), }; - const builtin = try d.comp.generateBuiltinMacros(); + const builtin = try d.comp.generateBuiltinMacros(d.system_defines); const user_macros = try d.comp.addSourceFromBuffer("", macro_buf.items); - const fast_exit = @import("builtin").mode != .Debug; - if (fast_exit and d.inputs.items.len == 1) { d.processSource(tc, d.inputs.items[0], builtin, user_macros, fast_exit) catch |e| switch (e) { error.FatalError => { - d.comp.renderErrors(); + d.renderErrors(); d.exitWithCleanup(1); }, else => |er| return er, @@ -516,12 +560,12 @@ pub fn main(d: *Driver, tc: *Toolchain, args: []const []const u8) !void { for (d.inputs.items) |source| { d.processSource(tc, source, builtin, user_macros, fast_exit) catch |e| switch (e) { error.FatalError => { - d.comp.renderErrors(); + d.renderErrors(); }, else => |er| return er, }; } - if (d.comp.diag.errors != 0) { + if (d.comp.diagnostics.errors != 0) { if (fast_exit) d.exitWithCleanup(1); return; } @@ -540,7 +584,7 @@ fn processSource( comptime fast_exit: bool, ) !void { d.comp.generated_buf.items.len = 0; - var pp = Preprocessor.init(d.comp); + var pp = try Preprocessor.initDefault(d.comp); defer pp.deinit(); if (d.comp.langopts.ms_extensions) { @@ -554,52 +598,48 @@ fn processSource( pp.linemarkers = if (d.use_line_directives) .line_directives else .numeric_directives; } } - try pp.addBuiltinMacros(); - try pp.addIncludeStart(source); - try pp.addIncludeStart(builtin); - _ = try pp.preprocess(builtin); - try pp.addIncludeStart(user_macros); - _ = try pp.preprocess(user_macros); - try pp.addIncludeResume(source.id, 0, 0); - const eof = try pp.preprocess(source); - try pp.tokens.append(pp.comp.gpa, eof); + try pp.preprocessSources(&.{ source, builtin, user_macros }); if (d.only_preprocess) { - d.comp.renderErrors(); + d.renderErrors(); + + if (d.comp.diagnostics.errors != 0) { + if (fast_exit) std.process.exit(1); // Not linking, no need for cleanup. + return; + } const file = if (d.output_name) |some| std.fs.cwd().createFile(some, .{}) catch |er| - return d.fatal("unable to create output file '{s}': {s}", .{ some, util.errorDescription(er) }) + return d.fatal("unable to create output file '{s}': {s}", .{ some, errorDescription(er) }) else std.io.getStdOut(); defer if (d.output_name != null) file.close(); var buf_w = std.io.bufferedWriter(file.writer()); pp.prettyPrintTokens(buf_w.writer()) catch |er| - return d.fatal("unable to write result: {s}", .{util.errorDescription(er)}); + return d.fatal("unable to write result: {s}", .{errorDescription(er)}); buf_w.flush() catch |er| - return d.fatal("unable to write result: {s}", .{util.errorDescription(er)}); + return d.fatal("unable to write result: {s}", .{errorDescription(er)}); if (fast_exit) std.process.exit(0); // Not linking, no need for cleanup. return; } - var tree = try Parser.parse(&pp); + var tree = try pp.parse(); defer tree.deinit(); if (d.verbose_ast) { const stdout = std.io.getStdOut(); var buf_writer = std.io.bufferedWriter(stdout.writer()); - const color = d.comp.diag.color and util.fileSupportsColor(stdout); - tree.dump(color, buf_writer.writer()) catch {}; + tree.dump(d.detectConfig(stdout), buf_writer.writer()) catch {}; buf_writer.flush() catch {}; } - const prev_errors = d.comp.diag.errors; - d.comp.renderErrors(); + const prev_errors = d.comp.diagnostics.errors; + d.renderErrors(); - if (d.comp.diag.errors != prev_errors) { + if (d.comp.diagnostics.errors != prev_errors) { if (fast_exit) d.exitWithCleanup(1); return; // do not compile if there were errors } @@ -616,11 +656,31 @@ fn processSource( ); } + var ir = try tree.genIr(); + defer ir.deinit(d.comp.gpa); + if (d.verbose_ir) { - try @import("CodeGen.zig").generateTree(d.comp, tree); + const stdout = std.io.getStdOut(); + var buf_writer = std.io.bufferedWriter(stdout.writer()); + ir.dump(d.comp.gpa, d.detectConfig(stdout), buf_writer.writer()) catch {}; + buf_writer.flush() catch {}; } - const obj = try Codegen.generateTree(d.comp, tree); + var render_errors: Ir.Renderer.ErrorList = .{}; + defer { + for (render_errors.values()) |msg| d.comp.gpa.free(msg); + render_errors.deinit(d.comp.gpa); + } + + var obj = ir.render(d.comp.gpa, d.comp.target, &render_errors) catch |e| switch (e) { + error.OutOfMemory => return error.OutOfMemory, + error.LowerFail => { + return d.fatal( + "unable to render Ir to machine code: {s}", + .{render_errors.values()[0]}, + ); + }, + }; defer obj.deinit(); // If it's used, name_buf will either hold a filename or `/tmp/<12 random bytes with base-64 encoding>.` @@ -653,11 +713,11 @@ fn processSource( }; const out_file = std.fs.cwd().createFile(out_file_name, .{}) catch |er| - return d.fatal("unable to create output file '{s}': {s}", .{ out_file_name, util.errorDescription(er) }); + return d.fatal("unable to create output file '{s}': {s}", .{ out_file_name, errorDescription(er) }); defer out_file.close(); obj.finish(out_file) catch |er| - return d.fatal("could not output to object file '{s}': {s}", .{ out_file_name, util.errorDescription(er) }); + return d.fatal("could not output to object file '{s}': {s}", .{ out_file_name, errorDescription(er) }); if (d.only_compile) { if (fast_exit) std.process.exit(0); // Not linking, no need for cleanup. @@ -680,6 +740,8 @@ fn dumpLinkerArgs(items: []const []const u8) !void { try stdout.writeByte('\n'); } +/// The entry point of the Aro compiler. +/// **MAY call `exit` if `fast_exit` is set.** pub fn invokeLinker(d: *Driver, tc: *Toolchain, comptime fast_exit: bool) !void { try tc.discover(); @@ -694,7 +756,7 @@ pub fn invokeLinker(d: *Driver, tc: *Toolchain, comptime fast_exit: bool) !void if (d.verbose_linker_args) { dumpLinkerArgs(argv.items) catch |er| { - return d.fatal("unable to dump linker args: {s}", .{util.errorDescription(er)}); + return d.fatal("unable to dump linker args: {s}", .{errorDescription(er)}); }; } var child = std.ChildProcess.init(argv.items, d.comp.gpa); @@ -704,11 +766,19 @@ pub fn invokeLinker(d: *Driver, tc: *Toolchain, comptime fast_exit: bool) !void child.stderr_behavior = .Inherit; const term = child.spawnAndWait() catch |er| { - return d.fatal("unable to spawn linker: {s}", .{util.errorDescription(er)}); + return d.fatal("unable to spawn linker: {s}", .{errorDescription(er)}); }; switch (term) { - .Exited => |code| if (code != 0) d.exitWithCleanup(code), - else => std.process.abort(), + .Exited => |code| if (code != 0) { + const e = d.fatal("linker exited with an error code", .{}); + if (fast_exit) d.exitWithCleanup(code); + return e; + }, + else => { + const e = d.fatal("linker crashed", .{}); + if (fast_exit) d.exitWithCleanup(1); + return e; + }, } if (fast_exit) d.exitWithCleanup(0); } diff --git a/deps/aro/Driver/Distro.zig b/deps/aro/aro/Driver/Distro.zig similarity index 99% rename from deps/aro/Driver/Distro.zig rename to deps/aro/aro/Driver/Distro.zig index 749bbf09f6..10f15f04d6 100644 --- a/deps/aro/Driver/Distro.zig +++ b/deps/aro/aro/Driver/Distro.zig @@ -2,7 +2,6 @@ const std = @import("std"); const mem = std.mem; -const util = @import("../util.zig"); const Filesystem = @import("Filesystem.zig").Filesystem; const MAX_BYTES = 1024; // TODO: Can we assume 1024 bytes enough for the info we need? diff --git a/deps/aro/Driver/Filesystem.zig b/deps/aro/aro/Driver/Filesystem.zig similarity index 97% rename from deps/aro/Driver/Filesystem.zig rename to deps/aro/aro/Driver/Filesystem.zig index 7ffab2b152..c5b855927f 100644 --- a/deps/aro/Driver/Filesystem.zig +++ b/deps/aro/aro/Driver/Filesystem.zig @@ -1,7 +1,6 @@ const std = @import("std"); const mem = std.mem; const builtin = @import("builtin"); -const system_defaults = @import("system_defaults"); const is_windows = builtin.os.tag == .windows; fn readFileFake(entries: []const Filesystem.Entry, path: []const u8, buf: []u8) ?[]const u8 { @@ -25,7 +24,7 @@ fn findProgramByNameFake(entries: []const Filesystem.Entry, name: []const u8, pa const path_env = path orelse return null; var fib = std.heap.FixedBufferAllocator.init(buf); - var it = mem.tokenizeScalar(u8, path_env, system_defaults.path_sep); + var it = mem.tokenizeScalar(u8, path_env, std.fs.path.delimiter); while (it.next()) |path_dir| { defer fib.reset(); const full_path = std.fs.path.join(fib.allocator(), &.{ path_dir, name }) catch continue; @@ -86,7 +85,7 @@ fn findProgramByNamePosix(name: []const u8, path: ?[]const u8, buf: []u8) ?[]con const path_env = path orelse return null; var fib = std.heap.FixedBufferAllocator.init(buf); - var it = mem.tokenizeScalar(u8, path_env, system_defaults.path_sep); + var it = mem.tokenizeScalar(u8, path_env, std.fs.path.delimiter); while (it.next()) |path_dir| { defer fib.reset(); const full_path = std.fs.path.join(fib.allocator(), &.{ path_dir, name }) catch continue; @@ -122,8 +121,6 @@ pub const Filesystem = union(enum) { base: []const u8, i: usize = 0, - const Self = @This(); - fn next(self: *@This()) !?std.fs.IterableDir.Entry { while (self.i < self.entries.len) { const entry = self.entries[self.i]; diff --git a/deps/aro/Driver/GCCDetector.zig b/deps/aro/aro/Driver/GCCDetector.zig similarity index 97% rename from deps/aro/Driver/GCCDetector.zig rename to deps/aro/aro/Driver/GCCDetector.zig index 21c1155038..d1fade2864 100644 --- a/deps/aro/Driver/GCCDetector.zig +++ b/deps/aro/aro/Driver/GCCDetector.zig @@ -2,9 +2,9 @@ const std = @import("std"); const Toolchain = @import("../Toolchain.zig"); const target_util = @import("../target.zig"); const system_defaults = @import("system_defaults"); -const util = @import("../util.zig"); const GCCVersion = @import("GCCVersion.zig"); const Multilib = @import("Multilib.zig"); + const GCCDetector = @This(); is_valid: bool = false, @@ -403,13 +403,22 @@ pub fn discover(self: *GCCDetector, tc: *Toolchain) !void { var fib = std.heap.FixedBufferAllocator.init(&path_buf); const target = tc.getTarget(); - const biarch_variant_target = if (target.ptrBitWidth() == 32) target_util.get64BitArchVariant(target) else target_util.get32BitArchVariant(target); + const biarch_variant_target = if (target.ptrBitWidth() == 32) + target_util.get64BitArchVariant(target) + else + target_util.get32BitArchVariant(target); var candidate_lib_dirs: PathPrefixes = .{}; - var candidate_biarch_lib_dirs: PathPrefixes = .{}; var candidate_triple_aliases: PathPrefixes = .{}; + var candidate_biarch_lib_dirs: PathPrefixes = .{}; var candidate_biarch_triple_aliases: PathPrefixes = .{}; - try collectLibDirsAndTriples(tc, &candidate_lib_dirs, &candidate_biarch_lib_dirs, &candidate_triple_aliases, &candidate_biarch_triple_aliases); + try collectLibDirsAndTriples( + tc, + &candidate_lib_dirs, + &candidate_triple_aliases, + &candidate_biarch_lib_dirs, + &candidate_biarch_triple_aliases, + ); var target_buf: [64]u8 = undefined; const triple_str = target_util.toLLVMTriple(target, &target_buf); @@ -476,7 +485,13 @@ pub fn discover(self: *GCCDetector, tc: *Toolchain) !void { } } -fn findBiarchMultilibs(tc: *const Toolchain, result: *Multilib.Detected, target: std.Target, path: [2][]const u8, needs_biarch_suffix: bool) !bool { +fn findBiarchMultilibs( + tc: *const Toolchain, + result: *Multilib.Detected, + target: std.Target, + path: [2][]const u8, + needs_biarch_suffix: bool, +) !bool { const suff64 = if (target.os.tag == .solaris) switch (target.cpu.arch) { .x86, .x86_64 => "/amd64", .sparc => "/sparcv9", @@ -531,7 +546,13 @@ fn findBiarchMultilibs(tc: *const Toolchain, result: *Multilib.Detected, target: return result.select(flags); } -fn scanGCCForMultilibs(self: *GCCDetector, tc: *const Toolchain, target: std.Target, path: [2][]const u8, needs_biarch_suffix: bool) !bool { +fn scanGCCForMultilibs( + self: *GCCDetector, + tc: *const Toolchain, + target: std.Target, + path: [2][]const u8, + needs_biarch_suffix: bool, +) !bool { var detected: Multilib.Detected = .{}; if (target.cpu.arch == .csky) { // TODO diff --git a/deps/aro/Driver/GCCVersion.zig b/deps/aro/aro/Driver/GCCVersion.zig similarity index 100% rename from deps/aro/Driver/GCCVersion.zig rename to deps/aro/aro/Driver/GCCVersion.zig diff --git a/deps/aro/Driver/Multilib.zig b/deps/aro/aro/Driver/Multilib.zig similarity index 98% rename from deps/aro/Driver/Multilib.zig rename to deps/aro/aro/Driver/Multilib.zig index 673ae6f24f..1486cf47bb 100644 --- a/deps/aro/Driver/Multilib.zig +++ b/deps/aro/aro/Driver/Multilib.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const util = @import("../util.zig"); const Filesystem = @import("Filesystem.zig").Filesystem; pub const Flags = std.BoundedArray([]const u8, 6); diff --git a/deps/aro/InitList.zig b/deps/aro/aro/InitList.zig similarity index 100% rename from deps/aro/InitList.zig rename to deps/aro/aro/InitList.zig index b4eae645d9..7e9f73e8a3 100644 --- a/deps/aro/InitList.zig +++ b/deps/aro/aro/InitList.zig @@ -12,8 +12,6 @@ const Diagnostics = @import("Diagnostics.zig"); const NodeList = std.ArrayList(NodeIndex); const Parser = @import("Parser.zig"); -const InitList = @This(); - const Item = struct { list: InitList = .{}, index: u64, @@ -23,6 +21,8 @@ const Item = struct { } }; +const InitList = @This(); + list: std.ArrayListUnmanaged(Item) = .{}, node: NodeIndex = .none, tok: TokenIndex = 0, diff --git a/deps/aro/LangOpts.zig b/deps/aro/aro/LangOpts.zig similarity index 77% rename from deps/aro/LangOpts.zig rename to deps/aro/aro/LangOpts.zig index 05cd1fba78..1f5c5cd9c4 100644 --- a/deps/aro/LangOpts.zig +++ b/deps/aro/aro/LangOpts.zig @@ -1,8 +1,6 @@ const std = @import("std"); const DiagnosticTag = @import("Diagnostics.zig").Tag; -const CharInfo = @import("CharInfo.zig"); - -const LangOpts = @This(); +const char_info = @import("char_info.zig"); pub const Compiler = enum { clang, @@ -44,19 +42,21 @@ pub const Standard = enum { default, /// ISO C 2017 with GNU extensions gnu17, - /// Working Draft for ISO C2x - c2x, - /// Working Draft for ISO C2x with GNU extensions - gnu2x, + /// Working Draft for ISO C23 + c23, + /// Working Draft for ISO C23 with GNU extensions + gnu23, const NameMap = std.ComptimeStringMap(Standard, .{ .{ "c89", .c89 }, .{ "c90", .c89 }, .{ "iso9899:1990", .c89 }, .{ "iso9899:199409", .iso9899 }, .{ "gnu89", .gnu89 }, .{ "gnu90", .gnu89 }, - .{ "c99", .c99 }, .{ "iso9899:1999", .c99 }, .{ "gnu99", .gnu99 }, - .{ "c11", .c11 }, .{ "iso9899:2011", .c11 }, .{ "gnu11", .gnu11 }, - .{ "c17", .c17 }, .{ "iso9899:2017", .c17 }, .{ "c18", .c17 }, - .{ "iso9899:2018", .c17 }, .{ "gnu17", .gnu17 }, .{ "gnu18", .gnu17 }, - .{ "c2x", .c2x }, .{ "gnu2x", .gnu2x }, + .{ "c99", .c99 }, .{ "iso9899:1999", .c99 }, .{ "c9x", .c99 }, + .{ "iso9899:199x", .c99 }, .{ "gnu99", .gnu99 }, .{ "gnu9x", .gnu99 }, + .{ "c11", .c11 }, .{ "iso9899:2011", .c11 }, .{ "c1x", .c11 }, + .{ "iso9899:201x", .c11 }, .{ "gnu11", .gnu11 }, .{ "c17", .c17 }, + .{ "iso9899:2017", .c17 }, .{ "c18", .c17 }, .{ "iso9899:2018", .c17 }, + .{ "gnu17", .gnu17 }, .{ "gnu18", .gnu17 }, .{ "c23", .c23 }, + .{ "gnu23", .gnu23 }, .{ "c2x", .c23 }, .{ "gnu2x", .gnu23 }, }); pub fn atLeast(self: Standard, other: Standard) bool { @@ -65,7 +65,7 @@ pub const Standard = enum { pub fn isGNU(standard: Standard) bool { return switch (standard) { - .gnu89, .gnu99, .gnu11, .default, .gnu17, .gnu2x => true, + .gnu89, .gnu99, .gnu11, .default, .gnu17, .gnu23 => true, else => false, }; } @@ -82,26 +82,31 @@ pub const Standard = enum { .c99, .gnu99 => "199901L", .c11, .gnu11 => "201112L", .default, .c17, .gnu17 => "201710L", - // todo: subject to change, verify once c23 finalized - .c2x, .gnu2x => "202311L", + .c23, .gnu23 => "202311L", }; } pub fn codepointAllowedInIdentifier(standard: Standard, codepoint: u21, is_start: bool) bool { if (is_start) { - return if (standard.atLeast(.c11)) - CharInfo.isC11IdChar(codepoint) and !CharInfo.isC11DisallowedInitialIdChar(codepoint) + return if (standard.atLeast(.c23)) + char_info.isXidStart(codepoint) + else if (standard.atLeast(.c11)) + char_info.isC11IdChar(codepoint) and !char_info.isC11DisallowedInitialIdChar(codepoint) else - CharInfo.isC99IdChar(codepoint) and !CharInfo.isC99DisallowedInitialIDChar(codepoint); + char_info.isC99IdChar(codepoint) and !char_info.isC99DisallowedInitialIDChar(codepoint); } else { - return if (standard.atLeast(.c11)) - CharInfo.isC11IdChar(codepoint) + return if (standard.atLeast(.c23)) + char_info.isXidContinue(codepoint) + else if (standard.atLeast(.c11)) + char_info.isC11IdChar(codepoint) else - CharInfo.isC99IdChar(codepoint); + char_info.isC99IdChar(codepoint); } } }; +const LangOpts = @This(); + emulate: Compiler = .clang, standard: Standard = .default, /// -fshort-enums option, makes enums only take up as much space as they need to hold all the values. @@ -119,7 +124,7 @@ allow_half_args_and_returns: bool = false, fp_eval_method: ?FPEvalMethod = null, /// If set, use specified signedness for `char` instead of the target's default char signedness char_signedness_override: ?std.builtin.Signedness = null, -/// If set, override the default availability of char8_t (by default, enabled in C2X and later; disabled otherwise) +/// If set, override the default availability of char8_t (by default, enabled in C23 and later; disabled otherwise) has_char8_t_override: ?bool = null, /// Whether to allow GNU-style inline assembly @@ -145,7 +150,7 @@ pub fn disableMSExtensions(self: *LangOpts) void { } pub fn hasChar8_T(self: *const LangOpts) bool { - return self.has_char8_t_override orelse self.standard.atLeast(.c2x); + return self.has_char8_t_override orelse self.standard.atLeast(.c23); } pub fn hasDigraphs(self: *const LangOpts) bool { diff --git a/deps/aro/Parser.zig b/deps/aro/aro/Parser.zig similarity index 88% rename from deps/aro/Parser.zig rename to deps/aro/aro/Parser.zig index cc8ca82068..5fddcc9f88 100644 --- a/deps/aro/Parser.zig +++ b/deps/aro/aro/Parser.zig @@ -16,13 +16,14 @@ const Diagnostics = @import("Diagnostics.zig"); const NodeList = std.ArrayList(NodeIndex); const InitList = @import("InitList.zig"); const Attribute = @import("Attribute.zig"); -const CharInfo = @import("CharInfo.zig"); -const TextLiteral = @import("TextLiteral.zig"); +const char_info = @import("char_info.zig"); +const text_literal = @import("text_literal.zig"); const Value = @import("Value.zig"); const SymbolStack = @import("SymbolStack.zig"); const Symbol = SymbolStack.Symbol; const record_layout = @import("record_layout.zig"); -const StringId = @import("StringInterner.zig").StringId; +const StrInt = @import("StringInterner.zig"); +const StringId = StrInt.StringId; const number_affixes = @import("number_affixes.zig"); const NumberPrefix = number_affixes.Prefix; const NumberSuffix = number_affixes.Suffix; @@ -30,12 +31,11 @@ const Builtins = @import("Builtins.zig"); const Builtin = Builtins.Builtin; const target_util = @import("target.zig"); -const Parser = @This(); - const Switch = struct { default: ?TokenIndex = null, ranges: std.ArrayList(Range), ty: Type, + comp: *Compilation, const Range = struct { first: Value, @@ -43,15 +43,9 @@ const Switch = struct { tok: TokenIndex, }; - fn add( - self: *Switch, - comp: *Compilation, - first: Value, - last: Value, - tok: TokenIndex, - ) !?Range { + fn add(self: *Switch, first: Value, last: Value, tok: TokenIndex) !?Range { for (self.ranges.items) |range| { - if (last.compare(.gte, range.first, self.ty, comp) and first.compare(.lte, range.last, self.ty, comp)) { + if (last.compare(.gte, range.first, self.comp) and first.compare(.lte, range.last, self.comp)) { return range; // They overlap. } } @@ -90,6 +84,8 @@ const ConstDeclFoldingMode = enum { no_const_decl_folding, }; +const Parser = @This(); + // values from preprocessor pp: *Preprocessor, comp: *Compilation, @@ -101,7 +97,6 @@ tok_i: TokenIndex = 0, arena: Allocator, nodes: Tree.Node.List = .{}, data: NodeList, -retained_strings: std.ArrayList(u8), value_map: Tree.ValueMap, // buffers used during compilation @@ -193,29 +188,29 @@ string_ids: struct { fn checkIdentifierCodepointWarnings(comp: *Compilation, codepoint: u21, loc: Source.Location) Compilation.Error!bool { assert(codepoint >= 0x80); - const err_start = comp.diag.list.items.len; + const err_start = comp.diagnostics.list.items.len; - if (!CharInfo.isC99IdChar(codepoint)) { - try comp.diag.add(.{ + if (!char_info.isC99IdChar(codepoint)) { + try comp.addDiagnostic(.{ .tag = .c99_compat, .loc = loc, }, &.{}); } - if (CharInfo.isInvisible(codepoint)) { - try comp.diag.add(.{ + if (char_info.isInvisible(codepoint)) { + try comp.addDiagnostic(.{ .tag = .unicode_zero_width, .loc = loc, .extra = .{ .actual_codepoint = codepoint }, }, &.{}); } - if (CharInfo.homoglyph(codepoint)) |resembles| { - try comp.diag.add(.{ + if (char_info.homoglyph(codepoint)) |resembles| { + try comp.addDiagnostic(.{ .tag = .unicode_homoglyph, .loc = loc, .extra = .{ .codepoints = .{ .actual = codepoint, .resembles = resembles } }, }, &.{}); } - return comp.diag.list.items.len != err_start; + return comp.diagnostics.list.items.len != err_start; } /// Issues diagnostics for the current extended identifier token @@ -238,6 +233,8 @@ fn validateExtendedIdentifier(p: *Parser) !bool { var invalid_char: u21 = undefined; var loc = p.pp.tokens.items(.loc)[p.tok_i]; + var normalized = true; + var last_canonical_class: char_info.CanonicalCombiningClass = .not_reordered; const standard = p.comp.langopts.standard; while (it.nextCodepoint()) |codepoint| { defer { @@ -246,7 +243,7 @@ fn validateExtendedIdentifier(p: *Parser) !bool { } if (codepoint == '$') { warned = true; - try p.comp.diag.add(.{ + if (p.comp.langopts.dollars_in_identifiers) try p.comp.addDiagnostic(.{ .tag = .dollar_in_identifier_extension, .loc = loc, }, &.{}); @@ -265,6 +262,22 @@ fn validateExtendedIdentifier(p: *Parser) !bool { if (!warned) { warned = try checkIdentifierCodepointWarnings(p.comp, codepoint, loc); } + + // Check NFC normalization. + if (!normalized) continue; + const canonical_class = char_info.getCanonicalClass(codepoint); + if (@intFromEnum(last_canonical_class) > @intFromEnum(canonical_class) and + canonical_class != .not_reordered) + { + normalized = false; + try p.errStr(.identifier_not_normalized, p.tok_i, slice); + continue; + } + if (char_info.isNormalized(codepoint) != .yes) { + normalized = false; + try p.errExtra(.identifier_not_normalized, p.tok_i, .{ .normalized = slice }); + } + last_canonical_class = canonical_class; } if (!valid_identifier) { @@ -357,11 +370,7 @@ fn expectClosing(p: *Parser, opening: TokenIndex, id: Token.Id) Error!void { } fn errOverflow(p: *Parser, op_tok: TokenIndex, res: Result) !void { - if (res.ty.isUnsignedInt(p.comp)) { - try p.errExtra(.overflow_unsigned, op_tok, .{ .unsigned = res.val.data.int }); - } else { - try p.errExtra(.overflow_signed, op_tok, .{ .signed = res.val.signExtend(res.ty, p.comp) }); - } + try p.errStr(.overflow, op_tok, try res.str(p)); } fn errExpectedToken(p: *Parser, expected: Token.Id, actual: Token.Id) Error { @@ -391,7 +400,7 @@ pub fn errExtra(p: *Parser, tag: Diagnostics.Tag, tok_i: TokenIndex, extra: Diag loc = prev.loc; loc.byte_offset += @intCast(p.tokSlice(tok_i - 1).len); } - try p.comp.diag.add(.{ + try p.comp.addDiagnostic(.{ .tag = tag, .loc = loc, .extra = extra, @@ -413,6 +422,16 @@ pub fn todo(p: *Parser, msg: []const u8) Error { return error.ParsingFailed; } +pub fn removeNull(p: *Parser, str: Value) !Value { + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + { + const bytes = p.comp.interner.get(str.ref()).bytes; + try p.strings.appendSlice(bytes[0 .. bytes.len - 1]); + } + return Value.intern(p.comp, .{ .bytes = p.strings.items[strings_top..] }); +} + pub fn typeStr(p: *Parser, ty: Type) ![]const u8 { if (Type.Builder.fromType(ty).str(p.comp.langopts)) |str| return str; const strings_top = p.strings.items.len; @@ -420,7 +439,7 @@ pub fn typeStr(p: *Parser, ty: Type) ![]const u8 { const mapper = p.comp.string_interner.getSlowTypeMapper(); try ty.print(mapper, p.comp.langopts, p.strings.writer()); - return try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + return try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); } pub fn typePairStr(p: *Parser, a: Type, b: Type) ![]const u8 { @@ -439,27 +458,25 @@ pub fn typePairStrExtra(p: *Parser, a: Type, msg: []const u8, b: Type) ![]const try p.strings.append('\''); try b.print(mapper, p.comp.langopts, p.strings.writer()); try p.strings.append('\''); - return try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + return try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); } -pub fn floatValueChangedStr(p: *Parser, res: *Result, old_value: f64, int_ty: Type) ![]const u8 { +pub fn floatValueChangedStr(p: *Parser, res: *Result, old_value: Value, int_ty: Type) ![]const u8 { const strings_top = p.strings.items.len; defer p.strings.items.len = strings_top; var w = p.strings.writer(); const type_pair_str = try p.typePairStrExtra(res.ty, " to ", int_ty); try w.writeAll(type_pair_str); - const is_zero = res.val.isZero(); - const non_zero_str: []const u8 = if (is_zero) "non-zero " else ""; - if (int_ty.is(.bool)) { - try w.print(" changes {s}value from {d} to {}", .{ non_zero_str, old_value, res.val.getBool() }); - } else if (int_ty.isUnsignedInt(p.comp)) { - try w.print(" changes {s}value from {d} to {d}", .{ non_zero_str, old_value, res.val.getInt(u64) }); - } else { - try w.print(" changes {s}value from {d} to {d}", .{ non_zero_str, old_value, res.val.getInt(i64) }); - } - return try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + try w.writeAll(" changes "); + if (res.val.isZero(p.comp)) try w.writeAll("non-zero "); + try w.writeAll("value from "); + try old_value.print(res.ty, p.comp, w); + try w.writeAll(" to "); + try res.val.print(int_ty, p.comp, w); + + return try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); } fn checkDeprecatedUnavailable(p: *Parser, ty: Type, usage_tok: TokenIndex, decl_tok: TokenIndex) !void { @@ -468,9 +485,11 @@ fn checkDeprecatedUnavailable(p: *Parser, ty: Type, usage_tok: TokenIndex, decl_ defer p.strings.items.len = strings_top; const w = p.strings.writer(); - const msg_str = p.attributeMessageString(@"error".msg); - try w.print("call to '{s}' declared with attribute error: {s}", .{ p.tokSlice(@"error".__name_tok), msg_str }); - const str = try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + const msg_str = p.comp.interner.get(@"error".msg.ref()).bytes; + try w.print("call to '{s}' declared with attribute error: {}", .{ + p.tokSlice(@"error".__name_tok), std.zig.fmtEscapes(msg_str), + }); + const str = try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); try p.errStr(.error_attribute, usage_tok, str); } if (ty.getAttribute(.warning)) |warning| { @@ -478,9 +497,11 @@ fn checkDeprecatedUnavailable(p: *Parser, ty: Type, usage_tok: TokenIndex, decl_ defer p.strings.items.len = strings_top; const w = p.strings.writer(); - const msg_str = p.attributeMessageString(warning.msg); - try w.print("call to '{s}' declared with attribute warning: {s}", .{ p.tokSlice(warning.__name_tok), msg_str }); - const str = try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + const msg_str = p.comp.interner.get(warning.msg.ref()).bytes; + try w.print("call to '{s}' declared with attribute warning: {}", .{ + p.tokSlice(warning.__name_tok), std.zig.fmtEscapes(msg_str), + }); + const str = try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); try p.errStr(.warning_attribute, usage_tok, str); } if (ty.getAttribute(.unavailable)) |unavailable| { @@ -493,13 +514,7 @@ fn checkDeprecatedUnavailable(p: *Parser, ty: Type, usage_tok: TokenIndex, decl_ } } -/// Assumes that the specified range was created by an ordinary or `u8` string literal -/// Returned slice is invalidated if additional strings are added to p.retained_strings -fn attributeMessageString(p: *Parser, range: Value.ByteRange) []const u8 { - return range.slice(p.retained_strings.items, .@"1"); -} - -fn errDeprecated(p: *Parser, tag: Diagnostics.Tag, tok_i: TokenIndex, msg: ?Value.ByteRange) Compilation.Error!void { +fn errDeprecated(p: *Parser, tag: Diagnostics.Tag, tok_i: TokenIndex, msg: ?Value) Compilation.Error!void { const strings_top = p.strings.items.len; defer p.strings.items.len = strings_top; @@ -512,10 +527,10 @@ fn errDeprecated(p: *Parser, tag: Diagnostics.Tag, tok_i: TokenIndex, msg: ?Valu }; try w.writeAll(reason); if (msg) |m| { - const str = p.attributeMessageString(m); - try w.print(": {s}", .{str}); + const str = p.comp.interner.get(m.ref()).bytes; + try w.print(": {}", .{std.zig.fmtEscapes(str)}); } - const str = try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + const str = try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); return p.errStr(tag, tok_i, str); } @@ -564,6 +579,36 @@ fn getNode(p: *Parser, node: NodeIndex, tag: Tree.Tag) ?NodeIndex { } } +fn nodeIsCompoundLiteral(p: *Parser, node: NodeIndex) bool { + var cur = node; + const tags = p.nodes.items(.tag); + const data = p.nodes.items(.data); + while (true) { + switch (tags[@intFromEnum(cur)]) { + .paren_expr => cur = data[@intFromEnum(cur)].un, + .compound_literal_expr, + .static_compound_literal_expr, + .thread_local_compound_literal_expr, + .static_thread_local_compound_literal_expr, + => return true, + else => return false, + } + } +} + +fn tmpTree(p: *Parser) Tree { + return .{ + .nodes = p.nodes.slice(), + .data = p.data.items, + .value_map = p.value_map, + .comp = p.comp, + .arena = undefined, + .generated = undefined, + .tokens = undefined, + .root_decls = undefined, + }; +} + fn pragma(p: *Parser) Compilation.Error!bool { var found_pragma = false; while (p.eatToken(.keyword_pragma)) |_| { @@ -591,7 +636,7 @@ fn diagnoseIncompleteDefinitions(p: *Parser) !void { const tys = node_slices.items(.ty); const data = node_slices.items(.data); - const err_start = p.comp.diag.list.items.len; + const err_start = p.comp.diagnostics.list.items.len; for (p.decl_buf.items) |decl_node| { const idx = @intFromEnum(decl_node); switch (tags[idx]) { @@ -612,7 +657,7 @@ fn diagnoseIncompleteDefinitions(p: *Parser) !void { try p.errStr(.tentative_definition_incomplete, tentative_def_tok, type_str); try p.errStr(.forward_declaration_here, data[idx].decl_ref, type_str); } - const errors_added = p.comp.diag.list.items.len - err_start; + const errors_added = p.comp.diagnostics.list.items.len - err_start; assert(errors_added == 2 * p.tentative_defs.count()); // Each tentative def should add an error + note } @@ -630,7 +675,6 @@ pub fn parse(pp: *Preprocessor) Compilation.Error!Tree { .arena = arena.allocator(), .tok_ids = pp.tokens.items(.id), .strings = std.ArrayList(u8).init(pp.comp.gpa), - .retained_strings = std.ArrayList(u8).init(pp.comp.gpa), .value_map = Tree.ValueMap.init(pp.comp.gpa), .data = NodeList.init(pp.comp.gpa), .labels = std.ArrayList(Label).init(pp.comp.gpa), @@ -641,17 +685,16 @@ pub fn parse(pp: *Preprocessor) Compilation.Error!Tree { .record_buf = std.ArrayList(Type.Record.Field).init(pp.comp.gpa), .field_attr_buf = std.ArrayList([]const Attribute).init(pp.comp.gpa), .string_ids = .{ - .declspec_id = try pp.comp.intern("__declspec"), - .main_id = try pp.comp.intern("main"), - .file = try pp.comp.intern("FILE"), - .jmp_buf = try pp.comp.intern("jmp_buf"), - .sigjmp_buf = try pp.comp.intern("sigjmp_buf"), - .ucontext_t = try pp.comp.intern("ucontext_t"), + .declspec_id = try StrInt.intern(pp.comp, "__declspec"), + .main_id = try StrInt.intern(pp.comp, "main"), + .file = try StrInt.intern(pp.comp, "FILE"), + .jmp_buf = try StrInt.intern(pp.comp, "jmp_buf"), + .sigjmp_buf = try StrInt.intern(pp.comp, "sigjmp_buf"), + .ucontext_t = try StrInt.intern(pp.comp, "ucontext_t"), }, }; errdefer { p.nodes.deinit(pp.comp.gpa); - p.retained_strings.deinit(); p.value_map.deinit(); } defer { @@ -677,24 +720,24 @@ pub fn parse(pp: *Preprocessor) Compilation.Error!Tree { { if (p.comp.langopts.hasChar8_T()) { - try p.syms.defineTypedef(&p, try p.comp.intern("char8_t"), .{ .specifier = .uchar }, 0, .none); + try p.syms.defineTypedef(&p, try StrInt.intern(p.comp, "char8_t"), .{ .specifier = .uchar }, 0, .none); } - try p.syms.defineTypedef(&p, try p.comp.intern("__int128_t"), .{ .specifier = .int128 }, 0, .none); - try p.syms.defineTypedef(&p, try p.comp.intern("__uint128_t"), .{ .specifier = .uint128 }, 0, .none); + try p.syms.defineTypedef(&p, try StrInt.intern(p.comp, "__int128_t"), .{ .specifier = .int128 }, 0, .none); + try p.syms.defineTypedef(&p, try StrInt.intern(p.comp, "__uint128_t"), .{ .specifier = .uint128 }, 0, .none); const elem_ty = try p.arena.create(Type); elem_ty.* = .{ .specifier = .char }; - try p.syms.defineTypedef(&p, try p.comp.intern("__builtin_ms_va_list"), .{ + try p.syms.defineTypedef(&p, try StrInt.intern(p.comp, "__builtin_ms_va_list"), .{ .specifier = .pointer, .data = .{ .sub_type = elem_ty }, }, 0, .none); const ty = &pp.comp.types.va_list; - try p.syms.defineTypedef(&p, try p.comp.intern("__builtin_va_list"), ty.*, 0, .none); + try p.syms.defineTypedef(&p, try StrInt.intern(p.comp, "__builtin_va_list"), ty.*, 0, .none); if (ty.isArray()) ty.decayArray(); - try p.syms.defineTypedef(&p, try p.comp.intern("__NSConstantString"), pp.comp.types.ns_constant_string.ty, 0, .none); + try p.syms.defineTypedef(&p, try StrInt.intern(p.comp, "__NSConstantString"), pp.comp.types.ns_constant_string.ty, 0, .none); } while (p.eatToken(.eof) == null) { @@ -751,8 +794,6 @@ pub fn parse(pp: *Preprocessor) Compilation.Error!Tree { const data = try p.data.toOwnedSlice(); errdefer pp.comp.gpa.free(data); - const strings = try p.retained_strings.toOwnedSlice(); - errdefer pp.comp.gpa.free(strings); return Tree{ .comp = pp.comp, .tokens = pp.tokens.slice(), @@ -761,7 +802,6 @@ pub fn parse(pp: *Preprocessor) Compilation.Error!Tree { .nodes = p.nodes.toOwnedSlice(), .data = data, .root_decls = root_decls, - .strings = strings, .value_map = p.value_map, }; } @@ -828,6 +868,7 @@ fn nextExternDecl(p: *Parser) void { .keyword_typeof, .keyword_typeof1, .keyword_typeof2, + .keyword_typeof_unqual, .keyword_extension, .keyword_bit_int, => if (parens == 0) return, @@ -950,7 +991,7 @@ fn decl(p: *Parser) Error!bool { if (p.func.ty != null) try p.err(.func_not_in_root); const node = try p.addNode(undefined); // reserve space - const interned_declarator_name = try p.comp.intern(p.tokSlice(init_d.d.name)); + const interned_declarator_name = try StrInt.intern(p.comp, p.tokSlice(init_d.d.name)); try p.syms.defineSymbol(p, interned_declarator_name, init_d.d.ty, init_d.d.name, node, .{}, false); const func = p.func; @@ -1013,7 +1054,7 @@ fn decl(p: *Parser) Error!bool { // find and correct parameter types // TODO check for missing declarations and redefinitions const name_str = p.tokSlice(d.name); - const interned_name = try p.comp.intern(name_str); + const interned_name = try StrInt.intern(p.comp, name_str); for (init_d.d.ty.params()) |*param| { if (param.name == interned_name) { param.ty = d.ty; @@ -1087,6 +1128,7 @@ fn decl(p: *Parser) Error!bool { } // Declare all variable/typedef declarators. + var warned_auto = false; while (true) { if (init_d.d.old_style_func) |tok_i| try p.errTok(.invalid_old_style_params, tok_i); const tag = try decl_spec.validate(p, &init_d.d.ty, init_d.initializer.node != .none); @@ -1096,7 +1138,7 @@ fn decl(p: *Parser) Error!bool { } }); try p.decl_buf.append(node); - const interned_name = try p.comp.intern(p.tokSlice(init_d.d.name)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(init_d.d.name)); if (decl_spec.storage_class == .typedef) { try p.syms.defineTypedef(p, interned_name, init_d.d.ty, init_d.d.name, node); p.typedefDefined(interned_name, init_d.d.ty); @@ -1119,7 +1161,16 @@ fn decl(p: *Parser) Error!bool { if (p.eatToken(.comma) == null) break; - if (decl_spec.auto_type) |tok_i| try p.errTok(.auto_type_requires_single_declarator, tok_i); + if (!warned_auto) { + if (decl_spec.auto_type) |tok_i| { + try p.errTok(.auto_type_requires_single_declarator, tok_i); + warned_auto = true; + } + if (p.comp.langopts.standard.atLeast(.c23) and decl_spec.storage_class == .auto) { + try p.errTok(.c23_auto_single_declarator, decl_spec.storage_class.auto); + warned_auto = true; + } + } init_d = (try p.initDeclarator(&decl_spec, attr_buf_top)) orelse { try p.err(.expected_ident_or_l_paren); @@ -1158,11 +1209,11 @@ fn staticAssertMessage(p: *Parser, cond_node: NodeIndex, message: Result) !?[]co if (buf.items.len > 0) { try buf.append(' '); } - const byte_range = message.val.data.bytes; - try buf.ensureUnusedCapacity(byte_range.len()); - try byte_range.dumpString(message.ty, p.comp, p.retained_strings.items, buf.writer()); + const bytes = p.comp.interner.get(message.val.ref()).bytes; + try buf.ensureUnusedCapacity(bytes.len); + try Value.printString(bytes, message.ty, p.comp, buf.writer()); } - return try p.comp.diag.arena.allocator().dupe(u8, buf.items); + return try p.comp.diagnostics.arena.allocator().dupe(u8, buf.items); } /// staticAssert @@ -1194,25 +1245,25 @@ fn staticAssert(p: *Parser) Error!bool { _ = try p.expectToken(.semicolon); if (str.node == .none) { try p.errTok(.static_assert_missing_message, static_assert); - try p.errStr(.pre_c2x_compat, static_assert, "'_Static_assert' with no message"); + try p.errStr(.pre_c23_compat, static_assert, "'_Static_assert' with no message"); } // Array will never be zero; a value of zero for a pointer is a null pointer constant - if ((res.ty.isArray() or res.ty.isPtr()) and !res.val.isZero()) { - const err_start = p.comp.diag.list.items.len; + if ((res.ty.isArray() or res.ty.isPtr()) and !res.val.isZero(p.comp)) { + const err_start = p.comp.diagnostics.list.items.len; try p.errTok(.const_decl_folded, res_token); - if (res.ty.isPtr() and err_start != p.comp.diag.list.items.len) { + if (res.ty.isPtr() and err_start != p.comp.diagnostics.list.items.len) { // Don't show the note if the .const_decl_folded diagnostic was not added try p.errTok(.constant_expression_conversion_not_allowed, res_token); } } try res.boolCast(p, .{ .specifier = .bool }, res_token); - if (res.val.tag == .unavailable) { + if (res.val.opt_ref == .none) { if (res.ty.specifier != .invalid) { try p.errTok(.static_assert_not_constant, res_token); } } else { - if (!res.val.getBool()) { + if (!res.val.toBool(p.comp)) { if (try p.staticAssertMessage(res_node, str)) |message| { try p.errStr(.static_assert_failure_message, static_assert, message); } else { @@ -1308,7 +1359,10 @@ pub const DeclSpec = struct { // TODO move to attribute validation if (d.noreturn) |tok_i| try p.errStr(.func_spec_non_func, tok_i, "_Noreturn"); switch (d.storage_class) { - .auto, .register => if (p.func.ty == null) try p.err(.illegal_storage_on_global), + .auto => if (p.func.ty == null and !p.comp.langopts.standard.atLeast(.c23)) { + try p.err(.illegal_storage_on_global); + }, + .register => if (p.func.ty == null) try p.err(.illegal_storage_on_global), .typedef => return .typedef, else => {}, } @@ -1332,8 +1386,13 @@ pub const DeclSpec = struct { /// : keyword_typeof '(' typeName ')' /// | keyword_typeof '(' expr ')' fn typeof(p: *Parser) Error!?Type { + var unqual = false; switch (p.tok_ids[p.tok_i]) { .keyword_typeof, .keyword_typeof1, .keyword_typeof2 => p.tok_i += 1, + .keyword_typeof_unqual => { + p.tok_i += 1; + unqual = true; + }, else => return null, } const l_paren = try p.expectToken(.l_paren); @@ -1342,7 +1401,7 @@ fn typeof(p: *Parser) Error!?Type { const typeof_ty = try p.arena.create(Type); typeof_ty.* = .{ .data = ty.data, - .qual = ty.qual.inheritFromTypeof(), + .qual = if (unqual) .{} else ty.qual.inheritFromTypeof(), .specifier = ty.specifier, }; @@ -1356,7 +1415,10 @@ fn typeof(p: *Parser) Error!?Type { try p.expectClosing(l_paren, .r_paren); // Special case nullptr_t since it's defined as typeof(nullptr) if (typeof_expr.ty.is(.nullptr_t)) { - return Type{ .specifier = .nullptr_t, .qual = typeof_expr.ty.qual.inheritFromTypeof() }; + return Type{ + .specifier = .nullptr_t, + .qual = if (unqual) .{} else typeof_expr.ty.qual.inheritFromTypeof(), + }; } const inner = try p.arena.create(Type.Expr); @@ -1364,7 +1426,7 @@ fn typeof(p: *Parser) Error!?Type { .node = typeof_expr.node, .ty = .{ .data = typeof_expr.ty.data, - .qual = typeof_expr.ty.qual.inheritFromTypeof(), + .qual = if (unqual) .{} else typeof_expr.ty.qual.inheritFromTypeof(), .specifier = typeof_expr.ty.specifier, }, }; @@ -1376,6 +1438,46 @@ fn typeof(p: *Parser) Error!?Type { } /// declSpec: (storageClassSpec | typeSpec | typeQual | funcSpec | alignSpec)+ +/// funcSpec : keyword_inline | keyword_noreturn +fn declSpec(p: *Parser) Error!?DeclSpec { + var d: DeclSpec = .{ .ty = .{ .specifier = undefined } }; + var spec: Type.Builder = .{}; + + var combined_auto = !p.comp.langopts.standard.atLeast(.c23); + const start = p.tok_i; + while (true) { + if (!combined_auto and d.storage_class == .auto) { + try spec.combine(p, .c23_auto, d.storage_class.auto); + combined_auto = true; + } + if (try p.storageClassSpec(&d)) continue; + if (try p.typeSpec(&spec)) continue; + const id = p.tok_ids[p.tok_i]; + switch (id) { + .keyword_inline, .keyword_inline1, .keyword_inline2 => { + if (d.@"inline" != null) { + try p.errStr(.duplicate_decl_spec, p.tok_i, "inline"); + } + d.@"inline" = p.tok_i; + }, + .keyword_noreturn => { + if (d.noreturn != null) { + try p.errStr(.duplicate_decl_spec, p.tok_i, "_Noreturn"); + } + d.noreturn = p.tok_i; + }, + else => break, + } + p.tok_i += 1; + } + + if (p.tok_i == start) return null; + + d.ty = try spec.finish(p); + d.auto_type = spec.auto_type_tok; + return d; +} + /// storageClassSpec: /// : keyword_typedef /// | keyword_extern @@ -1383,14 +1485,9 @@ fn typeof(p: *Parser) Error!?Type { /// | keyword_threadlocal /// | keyword_auto /// | keyword_register -/// funcSpec : keyword_inline | keyword_noreturn -fn declSpec(p: *Parser) Error!?DeclSpec { - var d: DeclSpec = .{ .ty = .{ .specifier = undefined } }; - var spec: Type.Builder = .{}; - +fn storageClassSpec(p: *Parser, d: *DeclSpec) Error!bool { const start = p.tok_i; while (true) { - if (try p.typeSpec(&spec)) continue; const id = p.tok_ids[p.tok_i]; switch (id) { .keyword_typedef, @@ -1450,28 +1547,11 @@ fn declSpec(p: *Parser) Error!?DeclSpec { } d.constexpr = p.tok_i; }, - .keyword_inline, .keyword_inline1, .keyword_inline2 => { - if (d.@"inline" != null) { - try p.errStr(.duplicate_decl_spec, p.tok_i, "inline"); - } - d.@"inline" = p.tok_i; - }, - .keyword_noreturn => { - if (d.noreturn != null) { - try p.errStr(.duplicate_decl_spec, p.tok_i, "_Noreturn"); - } - d.noreturn = p.tok_i; - }, else => break, } p.tok_i += 1; } - - if (p.tok_i == start) return null; - - d.ty = try spec.finish(p); - d.auto_type = spec.auto_type_tok; - return d; + return p.tok_i != start; } const InitDeclarator = struct { d: Declarator, initializer: Result = .{} }; @@ -1521,7 +1601,7 @@ fn attribute(p: *Parser, kind: Attribute.Kind, namespace: ?[]const u8) Error!?Te const arg_start = p.tok_i; var first_expr = try p.assignExpr(); try first_expr.expect(p); - if (p.diagnose(attr, &arguments, arg_idx, first_expr)) |msg| { + if (try p.diagnose(attr, &arguments, arg_idx, first_expr)) |msg| { try p.errExtra(msg.tag, arg_start, msg.extra); p.skipTo(.r_paren); return error.ParsingFailed; @@ -1534,7 +1614,7 @@ fn attribute(p: *Parser, kind: Attribute.Kind, namespace: ?[]const u8) Error!?Te const arg_start = p.tok_i; var arg_expr = try p.assignExpr(); try arg_expr.expect(p); - if (p.diagnose(attr, &arguments, arg_idx, arg_expr)) |msg| { + if (try p.diagnose(attr, &arguments, arg_idx, arg_expr)) |msg| { try p.errExtra(msg.tag, arg_start, msg.extra); p.skipTo(.r_paren); return error.ParsingFailed; @@ -1550,12 +1630,12 @@ fn attribute(p: *Parser, kind: Attribute.Kind, namespace: ?[]const u8) Error!?Te return TentativeAttribute{ .attr = .{ .tag = attr, .args = arguments, .syntax = kind.toSyntax() }, .tok = name_tok }; } -fn diagnose(p: *Parser, attr: Attribute.Tag, arguments: *Attribute.Arguments, arg_idx: u32, res: Result) ?Diagnostics.Message { +fn diagnose(p: *Parser, attr: Attribute.Tag, arguments: *Attribute.Arguments, arg_idx: u32, res: Result) !?Diagnostics.Message { if (Attribute.wantsAlignment(attr, arg_idx)) { - return Attribute.diagnoseAlignment(attr, arguments, arg_idx, res.val, res.ty, p.comp); + return Attribute.diagnoseAlignment(attr, arguments, arg_idx, res, p); } const node = p.nodes.get(@intFromEnum(res.node)); - return Attribute.diagnose(attr, arguments, arg_idx, res.val, node, p.retained_strings.items); + return Attribute.diagnose(attr, arguments, arg_idx, res, node, p); } /// attributeList : (attribute (',' attribute)*)? @@ -1569,16 +1649,16 @@ fn gnuAttributeList(p: *Parser) Error!void { } } -fn c2xAttributeList(p: *Parser) Error!void { +fn c23AttributeList(p: *Parser) Error!void { while (p.tok_ids[p.tok_i] != .r_bracket) { - var namespace_tok = try p.expectIdentifier(); + const namespace_tok = try p.expectIdentifier(); var namespace: ?[]const u8 = null; if (p.eatToken(.colon_colon)) |_| { namespace = p.tokSlice(namespace_tok); } else { p.tok_i -= 1; } - if (try p.attribute(.c2x, namespace)) |attr| try p.attr_buf.append(p.gpa, attr); + if (try p.attribute(.c23, namespace)) |attr| try p.attr_buf.append(p.gpa, attr); _ = p.eatToken(.comma); } } @@ -1590,15 +1670,15 @@ fn msvcAttributeList(p: *Parser) Error!void { } } -fn c2xAttribute(p: *Parser) !bool { - if (!p.comp.langopts.standard.atLeast(.c2x)) return false; +fn c23Attribute(p: *Parser) !bool { + if (!p.comp.langopts.standard.atLeast(.c23)) return false; const bracket1 = p.eatToken(.l_bracket) orelse return false; const bracket2 = p.eatToken(.l_bracket) orelse { p.tok_i -= 1; return false; }; - try p.c2xAttributeList(); + try p.c23AttributeList(); _ = try p.expectClosing(bracket2, .r_bracket); _ = try p.expectClosing(bracket1, .r_bracket); @@ -1638,7 +1718,7 @@ fn attributeSpecifier(p: *Parser) Error!void { fn attributeSpecifierExtra(p: *Parser, declarator_name: ?TokenIndex) Error!void { while (true) { if (try p.gnuAttribute()) continue; - if (try p.c2xAttribute()) continue; + if (try p.c23Attribute()) continue; const maybe_declspec_tok = p.tok_i; const attr_buf_top = p.attr_buf.len; if (try p.msvcAttribute()) { @@ -1662,6 +1742,11 @@ fn initDeclarator(p: *Parser, decl_spec: *DeclSpec, attr_buf_top: usize) Error!? .d = (try p.declarator(decl_spec.ty, .normal)) orelse return null, }; + if (decl_spec.ty.is(.c23_auto) and !init_d.d.ty.is(.c23_auto)) { + try p.errTok(.c23_auto_plain_declarator, decl_spec.storage_class.auto); + return error.ParsingFailed; + } + try p.attributeSpecifierExtra(init_d.d.name); _ = try p.assembly(.decl_label); try p.attributeSpecifierExtra(init_d.d.name); @@ -1680,7 +1765,9 @@ fn initDeclarator(p: *Parser, decl_spec: *DeclSpec, attr_buf_top: usize) Error!? } if (p.eatToken(.equal)) |eq| init: { - if (decl_spec.storage_class == .typedef or init_d.d.func_declarator != null) { + if (decl_spec.storage_class == .typedef or + (init_d.d.func_declarator != null and init_d.d.ty.isFunc())) + { try p.errTok(.illegal_initializer, eq); } else if (init_d.d.ty.is(.variable_len_array)) { try p.errTok(.vla_init, eq); @@ -1693,11 +1780,15 @@ fn initDeclarator(p: *Parser, decl_spec: *DeclSpec, attr_buf_top: usize) Error!? try p.errStr(.variable_incomplete_ty, init_d.d.name, try p.typeStr(init_d.d.ty)); return error.ParsingFailed; } + if (p.tok_ids[p.tok_i] == .l_brace and init_d.d.ty.is(.c23_auto)) { + try p.errTok(.c23_auto_scalar_init, decl_spec.storage_class.auto); + return error.ParsingFailed; + } try p.syms.pushScope(p); defer p.syms.popScope(); - const interned_name = try p.comp.intern(p.tokSlice(init_d.d.name)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(init_d.d.name)); try p.syms.declareSymbol(p, interned_name, init_d.d.ty, init_d.d.name, .none); var init_list_expr = try p.initializer(init_d.d.ty); init_d.initializer = init_list_expr; @@ -1710,10 +1801,15 @@ fn initDeclarator(p: *Parser, decl_spec: *DeclSpec, attr_buf_top: usize) Error!? } const name = init_d.d.name; - if (init_d.d.ty.is(.auto_type)) { + const c23_auto = init_d.d.ty.is(.c23_auto); + if (init_d.d.ty.is(.auto_type) or c23_auto) { if (init_d.initializer.node == .none) { init_d.d.ty = Type.invalid; - try p.errStr(.auto_type_requires_initializer, name, p.tokSlice(name)); + if (c23_auto) { + try p.errStr(.c32_auto_requires_initializer, decl_spec.storage_class.auto, p.tokSlice(name)); + } else { + try p.errStr(.auto_type_requires_initializer, name, p.tokSlice(name)); + } return init_d; } else { init_d.d.ty.specifier = init_d.initializer.ty.specifier; @@ -1811,7 +1907,12 @@ fn typeSpec(p: *Parser, ty: *Type.Builder) Error!bool { .keyword_double => try ty.combine(p, .double, p.tok_i), .keyword_complex => try ty.combine(p, .complex, p.tok_i), .keyword_float80 => try ty.combine(p, .float80, p.tok_i), - .keyword_float128 => try ty.combine(p, .float128, p.tok_i), + .keyword_float128_1, .keyword_float128_2 => { + if (!p.comp.hasFloat128()) { + try p.errStr(.type_not_supported_on_target, p.tok_i, p.tok_ids[p.tok_i].lexeme().?); + } + try ty.combine(p, .float128, p.tok_i); + }, .keyword_atomic => { const atomic_tok = p.tok_i; p.tok_i += 1; @@ -1856,9 +1957,9 @@ fn typeSpec(p: *Parser, ty: *Type.Builder) Error!bool { } else { const arg_start = p.tok_i; const res = try p.integerConstExpr(.no_const_decl_folding); - if (!res.val.isZero()) { + if (!res.val.isZero(p.comp)) { var args = Attribute.initArguments(.aligned, align_tok); - if (p.diagnose(.aligned, &args, 0, res)) |msg| { + if (try p.diagnose(.aligned, &args, 0, res)) |msg| { try p.errExtra(msg.tag, arg_start, msg.extra); p.skipTo(.r_paren); return error.ParsingFailed; @@ -1909,7 +2010,7 @@ fn typeSpec(p: *Parser, ty: *Type.Builder) Error!bool { continue; }, .identifier, .extended_identifier => { - var interned_name = try p.comp.intern(p.tokSlice(p.tok_i)); + var interned_name = try StrInt.intern(p.comp, p.tokSlice(p.tok_i)); var declspec_found = false; if (interned_name == p.string_ids.declspec_id) { @@ -1923,7 +2024,7 @@ fn typeSpec(p: *Parser, ty: *Type.Builder) Error!bool { } if (ty.typedef != null) break; if (declspec_found) { - interned_name = try p.comp.intern(p.tokSlice(p.tok_i)); + interned_name = try StrInt.intern(p.comp, p.tokSlice(p.tok_i)); } const typedef = (try p.syms.findTypedef(p, interned_name, p.tok_i, ty.specifier != .none)) orelse break; if (!ty.combineTypedef(p, typedef.ty, typedef.tok)) break; @@ -1936,16 +2037,14 @@ fn typeSpec(p: *Parser, ty: *Type.Builder) Error!bool { const res = try p.integerConstExpr(.gnu_folding_extension); try p.expectClosing(l_paren, .r_paren); - var bits: i16 = undefined; - if (res.val.tag == .unavailable) { + var bits: u64 = undefined; + if (res.val.opt_ref == .none) { try p.errTok(.expected_integer_constant_expr, bit_int_tok); return error.ParsingFailed; - } else if (res.val.compare(.lte, Value.int(0), res.ty, p.comp)) { - bits = -1; - } else if (res.val.compare(.gt, Value.int(128), res.ty, p.comp)) { - bits = 129; + } else if (res.val.compare(.lte, Value.zero, p.comp)) { + bits = 0; } else { - bits = res.val.getInt(i16); + bits = res.val.toInt(u64, p.comp) orelse std.math.maxInt(u64); } try ty.combine(p, .{ .bit_int = bits }, bit_int_tok); @@ -1974,7 +2073,7 @@ fn getAnonymousName(p: *Parser, kind_tok: TokenIndex) !StringId { "(anonymous {s} at {s}:{d}:{d})", .{ kind_str, source.path, line_col.line_no, line_col.col }, ); - return p.comp.intern(str); + return StrInt.intern(p.comp, str); } /// recordSpec @@ -1996,7 +2095,7 @@ fn recordSpec(p: *Parser) Error!Type { return error.ParsingFailed; }; // check if this is a reference to a previous type - const interned_name = try p.comp.intern(p.tokSlice(ident)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(ident)); if (try p.syms.findTag(p, interned_name, p.tok_ids[kind_tok], ident, p.tok_ids[p.tok_i])) |prev| { return prev.ty; } else { @@ -2029,7 +2128,7 @@ fn recordSpec(p: *Parser) Error!Type { var defined = false; const record_ty: *Type.Record = if (maybe_ident) |ident| record_ty: { const ident_str = p.tokSlice(ident); - const interned_name = try p.comp.intern(ident_str); + const interned_name = try StrInt.intern(p.comp, ident_str); if (try p.syms.defineTag(p, interned_name, p.tok_ids[kind_tok], ident)) |prev| { if (!prev.ty.hasIncompleteSize()) { // if the record isn't incomplete, this is a redefinition @@ -2212,27 +2311,26 @@ fn recordDeclarator(p: *Parser) Error!bool { break :bits; } - if (res.val.tag == .unavailable) { + if (res.val.opt_ref == .none) { try p.errTok(.expected_integer_constant_expr, bits_tok); break :bits; - } else if (res.val.compare(.lt, Value.int(0), res.ty, p.comp)) { - try p.errExtra(.negative_bitwidth, first_tok, .{ - .signed = res.val.signExtend(res.ty, p.comp), - }); + } else if (res.val.compare(.lt, Value.zero, p.comp)) { + try p.errStr(.negative_bitwidth, first_tok, try res.str(p)); break :bits; } // incomplete size error is reported later const bit_size = ty.bitSizeof(p.comp) orelse break :bits; - if (res.val.compare(.gt, Value.int(bit_size), res.ty, p.comp)) { + const bits_unchecked = res.val.toInt(u32, p.comp) orelse std.math.maxInt(u32); + if (bits_unchecked > bit_size) { try p.errTok(.bitfield_too_big, name_tok); break :bits; - } else if (res.val.isZero() and name_tok != 0) { + } else if (bits_unchecked == 0 and name_tok != 0) { try p.errTok(.zero_width_named_field, name_tok); break :bits; } - bits = res.val.getInt(u32); + bits = bits_unchecked; bits_node = res.node; } @@ -2272,7 +2370,7 @@ fn recordDeclarator(p: *Parser) Error!bool { } try p.err(.missing_declaration); } else { - const interned_name = if (name_tok != 0) try p.comp.intern(p.tokSlice(name_tok)) else try p.getAnonymousName(first_tok); + const interned_name = if (name_tok != 0) try StrInt.intern(p.comp, p.tokSlice(name_tok)) else try p.getAnonymousName(first_tok); try p.record_buf.append(.{ .name = interned_name, .ty = ty, @@ -2363,7 +2461,7 @@ fn enumSpec(p: *Parser) Error!Type { return error.ParsingFailed; }; // check if this is a reference to a previous type - const interned_name = try p.comp.intern(p.tokSlice(ident)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(ident)); if (try p.syms.findTag(p, interned_name, .keyword_enum, ident, p.tok_ids[p.tok_i])) |prev| { // only check fixed underlying type in forward declarations and not in references. if (p.tok_ids[p.tok_i] == .semicolon) @@ -2399,7 +2497,7 @@ fn enumSpec(p: *Parser) Error!Type { var defined = false; const enum_ty: *Type.Enum = if (maybe_ident) |ident| enum_ty: { const ident_str = p.tokSlice(ident); - const interned_name = try p.comp.intern(ident_str); + const interned_name = try StrInt.intern(p.comp, ident_str); if (try p.syms.defineTag(p, interned_name, .keyword_enum, ident)) |prev| { const enum_ty = prev.ty.get(.@"enum").?.data.@"enum"; if (!enum_ty.isIncomplete() and !enum_ty.fixed) { @@ -2462,14 +2560,14 @@ fn enumSpec(p: *Parser) Error!Type { var res = Result{ .node = field.node, .ty = field.ty, .val = vals[i] }; const dest_ty = if (p.comp.fixedEnumTagSpecifier()) |some| Type{ .specifier = some } - else if (res.intFitsInType(p, Type.int)) + else if (try res.intFitsInType(p, Type.int)) Type.int else if (!res.ty.eql(enum_ty.tag_ty, p.comp, false)) enum_ty.tag_ty else continue; - vals[i].intCast(field.ty, dest_ty, p.comp); + try vals[i].intCast(dest_ty, p.comp); types[i] = dest_ty; p.nodes.items(.ty)[@intFromEnum(field_nodes[i])] = dest_ty; field.ty = dest_ty; @@ -2546,10 +2644,7 @@ const Enumerator = struct { fn init(fixed_ty: ?Type) Enumerator { return .{ - .res = .{ - .ty = fixed_ty orelse .{ .specifier = .int }, - .val = .{ .tag = .unavailable }, - }, + .res = .{ .ty = fixed_ty orelse .{ .specifier = .int } }, .fixed = fixed_ty != null, }; } @@ -2558,12 +2653,12 @@ const Enumerator = struct { fn incr(e: *Enumerator, p: *Parser, tok: TokenIndex) !void { e.res.node = .none; const old_val = e.res.val; - if (old_val.tag == .unavailable) { + if (old_val.opt_ref == .none) { // First enumerator, set to 0 fits in all types. - e.res.val = Value.int(0); + e.res.val = Value.zero; return; } - if (e.res.val.add(e.res.val, Value.int(1), e.res.ty, p.comp)) { + if (try e.res.val.add(e.res.val, Value.one, e.res.ty, p.comp)) { const byte_size = e.res.ty.sizeof(p.comp).?; const bit_size: u8 = @intCast(if (e.res.ty.isUnsignedInt(p.comp)) byte_size * 8 else byte_size * 8 - 1); if (e.fixed) { @@ -2578,7 +2673,7 @@ const Enumerator = struct { break :blk Type{ .specifier = .ulong_long }; }; e.res.ty = new_ty; - _ = e.res.val.add(old_val, Value.int(1), e.res.ty, p.comp); + _ = try e.res.val.add(old_val, Value.one, e.res.ty, p.comp); } } @@ -2586,7 +2681,7 @@ const Enumerator = struct { fn set(e: *Enumerator, p: *Parser, res: Result, tok: TokenIndex) !void { if (res.ty.specifier == .invalid) return; if (e.fixed and !res.ty.eql(e.res.ty, p.comp, false)) { - if (!res.intFitsInType(p, e.res.ty)) { + if (!try res.intFitsInType(p, e.res.ty)) { try p.errStr(.enum_not_representable_fixed, tok, try p.typeStr(e.res.ty)); return error.ParsingFailed; } @@ -2652,10 +2747,10 @@ fn enumerator(p: *Parser, e: *Enumerator) Error!?EnumFieldAndNode { defer p.attr_buf.len = attr_buf_top; try p.attributeSpecifier(); - const err_start = p.comp.diag.list.items.len; + const err_start = p.comp.diagnostics.list.items.len; if (p.eatToken(.equal)) |_| { const specified = try p.integerConstExpr(.gnu_folding_extension); - if (specified.val.tag == .unavailable) { + if (specified.val.opt_ref == .none) { try p.errTok(.enum_val_unavailable, name_tok + 2); try e.incr(p, name_tok); } else { @@ -2668,32 +2763,30 @@ fn enumerator(p: *Parser, e: *Enumerator) Error!?EnumFieldAndNode { var res = e.res; res.ty = try Attribute.applyEnumeratorAttributes(p, res.ty, attr_buf_top); - if (res.ty.isUnsignedInt(p.comp) or res.val.compare(.gte, Value.int(0), res.ty, p.comp)) { - e.num_positive_bits = @max(e.num_positive_bits, res.val.minUnsignedBits(res.ty, p.comp)); + if (res.ty.isUnsignedInt(p.comp) or res.val.compare(.gte, Value.zero, p.comp)) { + e.num_positive_bits = @max(e.num_positive_bits, res.val.minUnsignedBits(p.comp)); } else { - e.num_negative_bits = @max(e.num_negative_bits, res.val.minSignedBits(res.ty, p.comp)); + e.num_negative_bits = @max(e.num_negative_bits, res.val.minSignedBits(p.comp)); } - if (err_start == p.comp.diag.list.items.len) { + if (err_start == p.comp.diagnostics.list.items.len) { // only do these warnings if we didn't already warn about overflow or non-representable values - if (e.res.val.compare(.lt, Value.int(0), e.res.ty, p.comp)) { - const val = e.res.val.getInt(i64); - if (val < (Type{ .specifier = .int }).minInt(p.comp)) { - try p.errExtra(.enumerator_too_small, name_tok, .{ - .signed = val, - }); + if (e.res.val.compare(.lt, Value.zero, p.comp)) { + const min_int = (Type{ .specifier = .int }).minInt(p.comp); + const min_val = try Value.int(min_int, p.comp); + if (e.res.val.compare(.lt, min_val, p.comp)) { + try p.errStr(.enumerator_too_small, name_tok, try e.res.str(p)); } } else { - const val = e.res.val.getInt(u64); - if (val > (Type{ .specifier = .int }).maxInt(p.comp)) { - try p.errExtra(.enumerator_too_large, name_tok, .{ - .unsigned = val, - }); + const max_int = (Type{ .specifier = .int }).maxInt(p.comp); + const max_val = try Value.int(max_int, p.comp); + if (e.res.val.compare(.gt, max_val, p.comp)) { + try p.errStr(.enumerator_too_large, name_tok, try e.res.str(p)); } } } - const interned_name = try p.comp.intern(p.tokSlice(name_tok)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(name_tok)); try p.syms.defineEnumeration(p, interned_name, res.ty, name_tok, e.res.val); const node = try p.addNode(.{ .tag = .enum_field_decl, @@ -2792,6 +2885,7 @@ fn declarator( try res.ty.combine(outer); try res.ty.validateCombinedType(p, suffix_start); res.old_style_func = d.old_style_func; + res.func_declarator = d.func_declarator; return res; } @@ -2825,7 +2919,7 @@ fn directDeclarator(p: *Parser, base_type: Type, d: *Declarator, kind: Declarato if (p.eatToken(.l_bracket)) |l_bracket| { if (p.tok_ids[p.tok_i] == .l_bracket) { switch (kind) { - .normal, .record => if (p.comp.langopts.standard.atLeast(.c2x)) { + .normal, .record => if (p.comp.langopts.standard.atLeast(.c23)) { p.tok_i -= 1; return base_type; }, @@ -2875,19 +2969,20 @@ fn directDeclarator(p: *Parser, base_type: Type, d: *Declarator, kind: Declarato try p.errStr(.array_of_auto_type, d.name, p.tokSlice(d.name)); return error.ParsingFailed; } + const outer = try p.directDeclarator(base_type, d, kind); var max_bits = p.comp.target.ptrBitWidth(); if (max_bits > 61) max_bits = 61; const max_bytes = (@as(u64, 1) << @truncate(max_bits)) - 1; - // `outer` is validated later so it may be invalid here - const outer_size = outer.sizeof(p.comp); - const max_elems = max_bytes / @max(1, outer_size orelse 1); if (!size.ty.isInt()) { try p.errStr(.array_size_non_int, size_tok, try p.typeStr(size.ty)); return error.ParsingFailed; } - if (size.val.tag == .unavailable) { + if (base_type.is(.c23_auto)) { + // issue error later + return Type.invalid; + } else if (size.val.opt_ref == .none) { if (size.node != .none) { try p.errTok(.vla, size_tok); if (p.func.ty == null and kind != .param and p.record.kind == .invalid) { @@ -2913,21 +3008,23 @@ fn directDeclarator(p: *Parser, base_type: Type, d: *Declarator, kind: Declarato res_ty.specifier = .incomplete_array; } } else { + // `outer` is validated later so it may be invalid here + const outer_size = outer.sizeof(p.comp); + const max_elems = max_bytes / @max(1, outer_size orelse 1); + var size_val = size.val; - const size_t = p.comp.types.size; - if (size_val.isZero()) { + if (size_val.isZero(p.comp)) { try p.errTok(.zero_length_array, l_bracket); - } else if (size_val.compare(.lt, Value.int(0), size_t, p.comp)) { + } else if (size_val.compare(.lt, Value.zero, p.comp)) { try p.errTok(.negative_array_size, l_bracket); return error.ParsingFailed; } const arr_ty = try p.arena.create(Type.Array); arr_ty.elem = .{ .specifier = .void }; - if (size_val.compare(.gt, Value.int(max_elems), size_t, p.comp)) { + arr_ty.len = size_val.toInt(u64, p.comp) orelse std.math.maxInt(u64); + if (arr_ty.len > max_elems) { try p.errTok(.array_too_large, l_bracket); arr_ty.len = max_elems; - } else { - arr_ty.len = size_val.getInt(u64); } res_ty.data = .{ .array = arr_ty }; res_ty.specifier = .array; @@ -2953,11 +3050,14 @@ fn directDeclarator(p: *Parser, base_type: Type, d: *Declarator, kind: Declarato return res_ty; } - if (try p.paramDecls()) |params| { + if (try p.paramDecls(d)) |params| { func_ty.params = params; if (p.eatToken(.ellipsis)) |_| specifier = .var_args_func; } else if (p.tok_ids[p.tok_i] == .r_paren) { - specifier = .var_args_func; + specifier = if (p.comp.langopts.standard.atLeast(.c23)) + .func + else + .old_style_func; } else if (p.tok_ids[p.tok_i] == .identifier or p.tok_ids[p.tok_i] == .extended_identifier) { d.old_style_func = p.tok_i; const param_buf_top = p.param_buf.items.len; @@ -2970,7 +3070,7 @@ fn directDeclarator(p: *Parser, base_type: Type, d: *Declarator, kind: Declarato specifier = .old_style_func; while (true) { const name_tok = try p.expectIdentifier(); - const interned_name = try p.comp.intern(p.tokSlice(name_tok)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(name_tok)); try p.syms.defineParam(p, interned_name, undefined, name_tok); try p.param_buf.append(.{ .name = interned_name, @@ -3015,7 +3115,7 @@ fn pointer(p: *Parser, base_ty: Type) Error!Type { /// paramDecls : paramDecl (',' paramDecl)* (',' '...') /// paramDecl : declSpec (declarator | abstractDeclarator) -fn paramDecls(p: *Parser) Error!?[]Type.Func.Param { +fn paramDecls(p: *Parser, d: *Declarator) Error!?[]Type.Func.Param { // TODO warn about visibility of types declared here const param_buf_top = p.param_buf.items.len; defer p.param_buf.items.len = param_buf_top; @@ -3027,9 +3127,26 @@ fn paramDecls(p: *Parser) Error!?[]Type.Func.Param { defer p.attr_buf.len = attr_buf_top; const param_decl_spec = if (try p.declSpec()) |some| some - else if (p.param_buf.items.len == param_buf_top) - return null - else blk: { + else if (p.comp.langopts.standard.atLeast(.c23) and + (p.tok_ids[p.tok_i] == .identifier or p.tok_ids[p.tok_i] == .extended_identifier)) + { + // handle deprecated K&R style parameters + const identifier = try p.expectIdentifier(); + try p.errStr(.unknown_type_name, identifier, p.tokSlice(identifier)); + if (d.old_style_func == null) d.old_style_func = identifier; + + try p.param_buf.append(.{ + .name = try StrInt.intern(p.comp, p.tokSlice(identifier)), + .name_tok = identifier, + .ty = .{ .specifier = .int }, + }); + + if (p.eatToken(.comma) == null) break; + if (p.tok_ids[p.tok_i] == .ellipsis) break; + continue; + } else if (p.param_buf.items.len == param_buf_top) { + return null; + } else blk: { var spec: Type.Builder = .{}; break :blk DeclSpec{ .ty = try spec.finish(p) }; }; @@ -3044,7 +3161,7 @@ fn paramDecls(p: *Parser) Error!?[]Type.Func.Param { name_tok = some.name; param_ty = some.ty; if (some.name != 0) { - const interned_name = try p.comp.intern(p.tokSlice(name_tok)); + const interned_name = try StrInt.intern(p.comp, p.tokSlice(name_tok)); try p.syms.defineParam(p, interned_name, param_ty, name_tok); } } @@ -3077,7 +3194,7 @@ fn paramDecls(p: *Parser) Error!?[]Type.Func.Param { try param_decl_spec.validateParam(p, ¶m_ty); try p.param_buf.append(.{ - .name = if (name_tok == 0) .empty else try p.comp.intern(p.tokSlice(name_tok)), + .name = if (name_tok == 0) .empty else try StrInt.intern(p.comp, p.tokSlice(name_tok)), .name_tok = if (name_tok == 0) first_tok else name_tok, .ty = param_ty, }); @@ -3092,7 +3209,7 @@ fn paramDecls(p: *Parser) Error!?[]Type.Func.Param { fn typeName(p: *Parser) Error!?Type { const attr_buf_top = p.attr_buf.len; defer p.attr_buf.len = attr_buf_top; - var ty = (try p.specQual()) orelse return null; + const ty = (try p.specQual()) orelse return null; if (try p.declarator(ty, .abstract)) |some| { if (some.old_style_func) |tok_i| try p.errTok(.invalid_old_style_params, tok_i); return try Attribute.applyTypeAttributes(p, some.ty, attr_buf_top, .align_ignored); @@ -3187,31 +3304,29 @@ fn initializerItem(p: *Parser, il: *InitList, init_ty: Type) Error!bool { const index_res = try p.integerConstExpr(.gnu_folding_extension); try p.expectClosing(l_bracket, .r_bracket); - if (index_res.val.tag == .unavailable) { + if (index_res.val.opt_ref == .none) { try p.errTok(.expected_integer_constant_expr, expr_tok); return error.ParsingFailed; - } else if (index_res.val.compare(.lt, index_res.val.zero(), index_res.ty, p.comp)) { - try p.errExtra(.negative_array_designator, l_bracket + 1, .{ - .signed = index_res.val.signExtend(index_res.ty, p.comp), - }); + } else if (index_res.val.compare(.lt, Value.zero, p.comp)) { + try p.errStr(.negative_array_designator, l_bracket + 1, try index_res.str(p)); return error.ParsingFailed; } const max_len = cur_ty.arrayLen() orelse std.math.maxInt(usize); - if (index_res.val.data.int >= max_len) { - try p.errExtra(.oob_array_designator, l_bracket + 1, .{ .unsigned = index_res.val.data.int }); + const index_int = index_res.val.toInt(u64, p.comp) orelse std.math.maxInt(u64); + if (index_int >= max_len) { + try p.errStr(.oob_array_designator, l_bracket + 1, try index_res.str(p)); return error.ParsingFailed; } - const checked = index_res.val.getInt(u64); - cur_index_hint = cur_index_hint orelse checked; + cur_index_hint = cur_index_hint orelse index_int; - cur_il = try cur_il.find(p.gpa, checked); + cur_il = try cur_il.find(p.gpa, index_int); cur_ty = cur_ty.elemType(); designation = true; } else if (p.eatToken(.period)) |period| { const field_tok = try p.expectIdentifier(); const field_str = p.tokSlice(field_tok); - const field_name = try p.comp.intern(field_str); + const field_name = try StrInt.intern(p.comp, field_str); cur_ty = cur_ty.canonicalize(.standard); if (!cur_ty.isRecord()) { try p.errStr(.invalid_field_designator, period, try p.typeStr(cur_ty)); @@ -3289,8 +3404,8 @@ fn initializerItem(p: *Parser, il: *InitList, init_ty: Type) Error!bool { excess: { if (index_hint) |*hint| { - if (try p.findScalarInitializerAt(&cur_il, &cur_ty, res.ty, first_tok, hint)) break :excess; - } else if (try p.findScalarInitializer(&cur_il, &cur_ty, res.ty, first_tok)) break :excess; + if (try p.findScalarInitializerAt(&cur_il, &cur_ty, &res, first_tok, hint)) break :excess; + } else if (try p.findScalarInitializer(&cur_il, &cur_ty, &res, first_tok)) break :excess; if (designation) break :excess; if (!warned_excess) try p.errTok(if (init_ty.isArray()) .excess_array_init else .excess_struct_init, first_tok); @@ -3340,7 +3455,7 @@ fn initializerItem(p: *Parser, il: *InitList, init_ty: Type) Error!bool { } /// Returns true if the value is unused. -fn findScalarInitializerAt(p: *Parser, il: **InitList, ty: *Type, actual_ty: Type, first_tok: TokenIndex, start_index: *u64) Error!bool { +fn findScalarInitializerAt(p: *Parser, il: **InitList, ty: *Type, res: *Result, first_tok: TokenIndex, start_index: *u64) Error!bool { if (ty.isArray()) { if (il.*.node != .none) return false; start_index.* += 1; @@ -3356,7 +3471,7 @@ fn findScalarInitializerAt(p: *Parser, il: **InitList, ty: *Type, actual_ty: Typ if (start_index.* < elem_count) { ty.* = elem_ty; il.* = try arr_il.find(p.gpa, start_index.*); - _ = try p.findScalarInitializer(il, ty, actual_ty, first_tok); + _ = try p.findScalarInitializer(il, ty, res, first_tok); return true; } return false; @@ -3374,7 +3489,7 @@ fn findScalarInitializerAt(p: *Parser, il: **InitList, ty: *Type, actual_ty: Typ const field = fields[@intCast(start_index.*)]; ty.* = field.ty; il.* = try struct_il.find(p.gpa, start_index.*); - _ = try p.findScalarInitializer(il, ty, actual_ty, first_tok); + _ = try p.findScalarInitializer(il, ty, res, first_tok); return true; } return false; @@ -3385,9 +3500,11 @@ fn findScalarInitializerAt(p: *Parser, il: **InitList, ty: *Type, actual_ty: Typ } /// Returns true if the value is unused. -fn findScalarInitializer(p: *Parser, il: **InitList, ty: *Type, actual_ty: Type, first_tok: TokenIndex) Error!bool { +fn findScalarInitializer(p: *Parser, il: **InitList, ty: *Type, res: *Result, first_tok: TokenIndex) Error!bool { + const actual_ty = res.ty; if (ty.isArray() or ty.isComplex()) { if (il.*.node != .none) return false; + if (try p.coerceArrayInitExtra(res, first_tok, ty.*, false)) return true; const start_index = il.*.list.items.len; var index = if (start_index != 0) il.*.list.items[start_index - 1].index else start_index; @@ -3403,7 +3520,7 @@ fn findScalarInitializer(p: *Parser, il: **InitList, ty: *Type, actual_ty: Type, ty.* = elem_ty; il.* = try arr_il.find(p.gpa, index); if (il.*.node == .none and actual_ty.eql(elem_ty, p.comp, false)) return true; - if (try p.findScalarInitializer(il, ty, actual_ty, first_tok)) return true; + if (try p.findScalarInitializer(il, ty, res, first_tok)) return true; } return false; } else if (ty.get(.@"struct")) |struct_ty| { @@ -3423,7 +3540,8 @@ fn findScalarInitializer(p: *Parser, il: **InitList, ty: *Type, actual_ty: Type, ty.* = field.ty; il.* = try struct_il.find(p.gpa, index); if (il.*.node == .none and actual_ty.eql(field.ty, p.comp, false)) return true; - if (try p.findScalarInitializer(il, ty, actual_ty, first_tok)) return true; + if (il.*.node == .none and try p.coerceArrayInitExtra(res, first_tok, ty.*, false)) return true; + if (try p.findScalarInitializer(il, ty, res, first_tok)) return true; } return false; } else if (ty.get(.@"union")) |union_ty| { @@ -3436,7 +3554,8 @@ fn findScalarInitializer(p: *Parser, il: **InitList, ty: *Type, actual_ty: Type, ty.* = union_ty.data.record.fields[0].ty; il.* = try il.*.find(p.gpa, 0); // if (il.*.node == .none and actual_ty.eql(ty, p.comp, false)) return true; - if (try p.findScalarInitializer(il, ty, actual_ty, first_tok)) return true; + if (try p.coerceArrayInitExtra(res, first_tok, ty.*, false)) return true; + if (try p.findScalarInitializer(il, ty, res, first_tok)) return true; return false; } return il.*.node == .none; @@ -3496,10 +3615,15 @@ fn findAggregateInitializer(p: *Parser, il: **InitList, ty: *Type, start_index: } fn coerceArrayInit(p: *Parser, item: *Result, tok: TokenIndex, target: Type) !bool { + return p.coerceArrayInitExtra(item, tok, target, true); +} + +fn coerceArrayInitExtra(p: *Parser, item: *Result, tok: TokenIndex, target: Type, report_err: bool) !bool { if (!target.isArray()) return false; const is_str_lit = p.nodeIs(item.node, .string_literal_expr); - if (!is_str_lit and !p.nodeIs(item.node, .compound_literal_expr) or !item.ty.isArray()) { + if (!is_str_lit and !p.nodeIsCompoundLiteral(item.node) or !item.ty.isArray()) { + if (!report_err) return false; try p.errTok(.array_init_str, tok); return true; // do not do further coercion } @@ -3511,6 +3635,7 @@ fn coerceArrayInit(p: *Parser, item: *Result, tok: TokenIndex, target: Type) !bo (is_str_lit and item_spec == .char and (target_spec == .uchar or target_spec == .schar)) or (is_str_lit and item_spec == .uchar and (target_spec == .uchar or target_spec == .schar or target_spec == .char)); if (!compatible) { + if (!report_err) return false; const e_msg = " with array of type "; try p.errStr(.incompatible_array_init, tok, try p.typePairStrExtra(target, e_msg, item.ty)); return true; // do not do further coercion @@ -3518,13 +3643,14 @@ fn coerceArrayInit(p: *Parser, item: *Result, tok: TokenIndex, target: Type) !bo if (target.get(.array)) |arr_ty| { assert(item.ty.specifier == .array); - var len = item.ty.arrayLen().?; + const len = item.ty.arrayLen().?; const array_len = arr_ty.arrayLen().?; if (is_str_lit) { // the null byte of a string can be dropped - if (len - 1 > array_len) + if (len - 1 > array_len and report_err) { try p.errTok(.str_init_too_long, tok); - } else if (len > array_len) { + } + } else if (len > array_len and report_err) { try p.errStr( .arr_init_too_long, tok, @@ -3542,9 +3668,11 @@ fn coerceInit(p: *Parser, item: *Result, tok: TokenIndex, target: Type) !void { try item.lvalConversion(p); if (target.is(.auto_type)) { if (p.getNode(node, .member_access_expr) orelse p.getNode(node, .member_access_ptr_expr)) |member_node| { - if (Tree.isBitfield(p.nodes.slice(), member_node)) try p.errTok(.auto_type_from_bitfield, tok); + if (p.tmpTree().isBitfield(member_node)) try p.errTok(.auto_type_from_bitfield, tok); } return; + } else if (target.is(.c23_auto)) { + return; } try item.coerce(p, target, tok, .init); @@ -3876,8 +4004,8 @@ fn gnuAsmStmt(p: *Parser, quals: Tree.GNUAssemblyQualifiers, l_paren: TokenIndex fn checkAsmStr(p: *Parser, asm_str: Value, tok: TokenIndex) !void { if (!p.comp.langopts.gnu_asm) { - const str = asm_str.data.bytes; - if (str.len() > 1) { + const str = p.comp.interner.get(asm_str.ref()).bytes; + if (str.len > 1) { // Empty string (just a NUL byte) is ok because it does not emit any assembly try p.errTok(.gnu_asm_disabled, tok); } @@ -3928,7 +4056,8 @@ fn assembly(p: *Parser, kind: enum { global, decl_label, stmt }) Error!?NodeInde switch (kind) { .decl_label => { const asm_str = try p.asmStr(); - const str = asm_str.val.data.bytes.trim(1); // remove null-terminator + const str = try p.removeNull(asm_str.val); + const attr = Attribute{ .tag = .asm_label, .args = .{ .asm_label = .{ .name = str } }, .syntax = .keyword }; try p.attr_buf.append(p.gpa, .{ .attr = attr, .tok = asm_tok }); }, @@ -3962,7 +4091,13 @@ fn asmStr(p: *Parser) Error!Result { try p.errStr(.invalid_asm_str, p.tok_i, "wide"); return error.ParsingFailed; }, - else => break, + else => { + if (i == p.tok_i) { + try p.errStr(.expected_str_literal_in, p.tok_i, "asm"); + return error.ParsingFailed; + } + break; + }, }; return try p.stringLiteral(); } @@ -4029,6 +4164,7 @@ fn stmt(p: *Parser) Error!NodeIndex { var @"switch" = Switch{ .ranges = std.ArrayList(Switch.Range).init(p.gpa), .ty = cond.ty, + .comp = p.comp, }; p.@"switch" = &@"switch"; defer { @@ -4105,7 +4241,7 @@ fn stmt(p: *Parser) Error!NodeIndex { // for (init const init_start = p.tok_i; - var err_start = p.comp.diag.list.items.len; + var err_start = p.comp.diagnostics.list.items.len; var init = if (!got_decl) try p.expr() else Result{}; try init.saveValue(p); try init.maybeWarnUnused(p, init_start, err_start); @@ -4125,7 +4261,7 @@ fn stmt(p: *Parser) Error!NodeIndex { // for (init; cond; incr const incr_start = p.tok_i; - err_start = p.comp.diag.list.items.len; + err_start = p.comp.diagnostics.list.items.len; var incr = try p.expr(); try incr.maybeWarnUnused(p, incr_start, err_start); try incr.saveValue(p); @@ -4174,7 +4310,7 @@ fn stmt(p: *Parser) Error!NodeIndex { try p.errStr(.incompatible_arg, expr_tok, try p.typePairStrExtra(e.ty, " to parameter of incompatible type ", result_ty)); return error.ParsingFailed; } - if (e.val.isZero()) { + if (e.val.isZero(p.comp)) { try e.nullCast(p, result_ty); } else { try p.errStr(.implicit_int_to_ptr, expr_tok, try p.typePairStrExtra(e.ty, " to ", result_ty)); @@ -4211,7 +4347,7 @@ fn stmt(p: *Parser) Error!NodeIndex { if (try p.assembly(.stmt)) |some| return some; const expr_start = p.tok_i; - const err_start = p.comp.diag.list.items.len; + const err_start = p.comp.diagnostics.list.items.len; const e = try p.expr(); if (e.node != .none) { @@ -4265,7 +4401,7 @@ fn labeledStmt(p: *Parser) Error!?NodeIndex { var labeled_stmt = Tree.Node{ .tag = .labeled_stmt, - .data = .{ .decl = .{ .name = name_tok, .node = try p.stmt() } }, + .data = .{ .decl = .{ .name = name_tok, .node = try p.labelableStmt() } }, }; labeled_stmt.ty = try Attribute.applyLabelAttributes(p, labeled_stmt.ty, attr_buf_top); return try p.addNode(labeled_stmt); @@ -4283,36 +4419,28 @@ fn labeledStmt(p: *Parser) Error!?NodeIndex { const first = first_item.val; const last = if (second_item) |second| second.val else first; - if (first.tag == .unavailable) { + if (first.opt_ref == .none) { try p.errTok(.case_val_unavailable, case + 1); break :check; - } else if (last.tag == .unavailable) { + } else if (last.opt_ref == .none) { try p.errTok(.case_val_unavailable, ellipsis + 1); break :check; - } else if (last.compare(.lt, first, some.ty, p.comp)) { + } else if (last.compare(.lt, first, p.comp)) { try p.errTok(.empty_case_range, case + 1); break :check; } // TODO cast to target type - const prev = (try some.add(p.comp, first, last, case + 1)) orelse break :check; + const prev = (try some.add(first, last, case + 1)) orelse break :check; // TODO check which value was already handled - if (some.ty.isUnsignedInt(p.comp)) { - try p.errExtra(.duplicate_switch_case_unsigned, case + 1, .{ - .unsigned = first.data.int, - }); - } else { - try p.errExtra(.duplicate_switch_case_signed, case + 1, .{ - .signed = first.signExtend(some.ty, p.comp), - }); - } + try p.errStr(.duplicate_switch_case, case + 1, try first_item.str(p)); try p.errTok(.previous_case, prev.tok); } else { try p.errStr(.case_not_in_switch, case, "case"); } - const s = try p.stmt(); + const s = try p.labelableStmt(); if (second_item) |some| return try p.addNode(.{ .tag = .case_range_stmt, .data = .{ .if3 = .{ .cond = s, .body = (try p.addList(&.{ first_item.node, some.node })).start } }, @@ -4322,7 +4450,7 @@ fn labeledStmt(p: *Parser) Error!?NodeIndex { }); } else if (p.eatToken(.keyword_default)) |default| { _ = try p.expectToken(.colon); - const s = try p.stmt(); + const s = try p.labelableStmt(); const node = try p.addNode(.{ .tag = .default_stmt, .data = .{ .un = s }, @@ -4341,6 +4469,14 @@ fn labeledStmt(p: *Parser) Error!?NodeIndex { } else return null; } +fn labelableStmt(p: *Parser) Error!NodeIndex { + if (p.tok_ids[p.tok_i] == .r_brace) { + try p.err(.label_compound_end); + return p.addNode(.{ .tag = .null_stmt, .data = undefined }); + } + return p.stmt(); +} + const StmtExprState = struct { last_expr_tok: TokenIndex = 0, last_expr_res: Result = .{ .ty = .{ .specifier = .void } }, @@ -4417,7 +4553,7 @@ fn compoundStmt(p: *Parser, is_fn_body: bool, stmt_expr_state: ?*StmtExprState) var return_zero = false; if (last_noreturn == .no and !ret_ty.is(.void) and !ret_ty.isFunc() and !ret_ty.isArray()) { const func_name = p.tokSlice(p.func.name); - const interned_name = try p.comp.intern(func_name); + const interned_name = try StrInt.intern(p.comp, func_name); if (interned_name == p.string_ids.main_id and ret_ty.is(.int)) { return_zero = true; } else { @@ -4507,7 +4643,10 @@ fn nextStmt(p: *Parser, l_brace: TokenIndex) !void { else { parens -= 1; }, - .semicolon, + .semicolon => if (parens == 0) { + p.tok_i += 1; + return; + }, .keyword_for, .keyword_while, .keyword_do, @@ -4551,6 +4690,7 @@ fn nextStmt(p: *Parser, l_brace: TokenIndex) !void { .keyword_typeof, .keyword_typeof1, .keyword_typeof2, + .keyword_typeof_unqual, .keyword_extension, => if (parens == 0) return, .keyword_pragma => p.skipToPragmaSentinel(), @@ -4597,11 +4737,11 @@ pub fn macroExpr(p: *Parser) Compilation.Error!bool { error.FatalError => return error.FatalError, error.ParsingFailed => return false, }; - if (res.val.tag == .unavailable) { + if (res.val.opt_ref == .none) { try p.errTok(.expected_expr, p.tok_i); return false; } - return res.val.getBool(); + return res.val.toBool(p.comp); } const CallExpr = union(enum) { @@ -4737,14 +4877,27 @@ const CallExpr = union(enum) { } }; -const Result = struct { +pub const Result = struct { node: NodeIndex = .none, ty: Type = .{ .specifier = .int }, val: Value = .{}, + pub fn str(res: Result, p: *Parser) ![]const u8 { + switch (res.val.opt_ref) { + .none => return "(none)", + .null => return "nullptr_t", + else => {}, + } + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + + try res.val.print(res.ty, p.comp, p.strings.writer()); + return try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items[strings_top..]); + } + fn expect(res: Result, p: *Parser) Error!void { if (p.in_macro) { - if (res.val.tag == .unavailable) { + if (res.val.opt_ref == .none) { try p.errTok(.expected_expr, p.tok_i); return error.ParsingFailed; } @@ -4757,14 +4910,14 @@ const Result = struct { } fn empty(res: Result, p: *Parser) bool { - if (p.in_macro) return res.val.tag == .unavailable; + if (p.in_macro) return res.val.opt_ref == .none; return res.node == .none; } fn maybeWarnUnused(res: Result, p: *Parser, expr_start: TokenIndex, err_start: usize) Error!void { if (res.ty.is(.void) or res.node == .none) return; // don't warn about unused result if the expression contained errors besides other unused results - for (p.comp.diag.list.items[err_start..]) |err_item| { + for (p.comp.diagnostics.list.items[err_start..]) |err_item| { if (err_item.tag != .unused_value) return; } var cur_node = res.node; @@ -4822,8 +4975,8 @@ const Result = struct { } fn boolRes(lhs: *Result, p: *Parser, tag: Tree.Tag, rhs: Result) !void { - if (lhs.val.tag == .nullptr_t) { - lhs.val = Value.int(0); + if (lhs.val.opt_ref == .null) { + lhs.val = Value.zero; } if (lhs.ty.specifier != .invalid) { lhs.ty = Type.int; @@ -4988,8 +5141,8 @@ const Result = struct { if (other_res.ty.isPtr()) { try nullptr_res.nullCast(p, other_res.ty); return other_res.shouldEval(nullptr_res, p); - } else if (other_res.val.isZero()) { - other_res.val = .{ .tag = .nullptr_t }; + } else if (other_res.val.isZero(p.comp)) { + other_res.val = Value.null; try other_res.nullCast(p, nullptr_res.ty); return other_res.shouldEval(nullptr_res, p); } @@ -4999,7 +5152,7 @@ const Result = struct { if (!a_scalar or !b_scalar or (a_float and b_ptr) or (b_float and a_ptr)) return a.invalidBinTy(tok, b, p); - if ((a_int or b_int) and !(a.val.isZero() or b.val.isZero())) { + if ((a_int or b_int) and !(a.val.isZero(p.comp) or b.val.isZero(p.comp))) { try p.errStr(.comparison_ptr_int, tok, try p.typePairStr(a.ty, b.ty)); } else if (a_ptr and b_ptr) { if (!a.ty.isVoidStar() and !b.ty.isVoidStar() and !a.ty.eql(b.ty, p.comp, false)) @@ -5022,7 +5175,7 @@ const Result = struct { } if (a_nullptr and b_nullptr) return true; if ((a_ptr and b_int) or (a_int and b_ptr)) { - if (a.val.isZero() or b.val.isZero()) { + if (a.val.isZero(p.comp) or b.val.isZero(p.comp)) { try a.nullCast(p, b.ty); try b.nullCast(p, a.ty); return true; @@ -5077,16 +5230,16 @@ const Result = struct { fn lvalConversion(res: *Result, p: *Parser) Error!void { if (res.ty.isFunc()) { - var elem_ty = try p.arena.create(Type); + const elem_ty = try p.arena.create(Type); elem_ty.* = res.ty; res.ty.specifier = .pointer; res.ty.data = .{ .sub_type = elem_ty }; try res.implicitCast(p, .function_to_pointer); } else if (res.ty.isArray()) { - res.val.tag = .unavailable; + res.val = .{}; res.ty.decayArray(); try res.implicitCast(p, .array_to_pointer); - } else if (!p.in_macro and Tree.isLval(p.nodes.slice(), p.data.items, p.value_map, res.node)) { + } else if (!p.in_macro and p.tmpTree().isLval(res.node)) { res.ty.qual = .{}; try res.implicitCast(p, .lval_to_rval); } @@ -5094,26 +5247,26 @@ const Result = struct { fn boolCast(res: *Result, p: *Parser, bool_ty: Type, tok: TokenIndex) Error!void { if (res.ty.isArray()) { - if (res.val.tag == .bytes) { + if (res.val.is(.bytes, p.comp)) { try p.errStr(.string_literal_to_bool, tok, try p.typePairStrExtra(res.ty, " to ", bool_ty)); } else { try p.errStr(.array_address_to_bool, tok, p.tokSlice(tok)); } try res.lvalConversion(p); - res.val = Value.int(1); + res.val = Value.one; res.ty = bool_ty; try res.implicitCast(p, .pointer_to_bool); } else if (res.ty.isPtr()) { - res.val.toBool(); + res.val.boolCast(p.comp); res.ty = bool_ty; try res.implicitCast(p, .pointer_to_bool); } else if (res.ty.isInt() and !res.ty.is(.bool)) { - res.val.toBool(); + res.val.boolCast(p.comp); res.ty = bool_ty; try res.implicitCast(p, .int_to_bool); } else if (res.ty.isFloat()) { const old_value = res.val; - const value_change_kind = res.val.floatToInt(res.ty, bool_ty, p.comp); + const value_change_kind = try res.val.floatToInt(bool_ty, p.comp); try res.floatToIntWarning(p, bool_ty, old_value, value_change_kind, tok); if (!res.ty.isReal()) { res.ty = res.ty.makeReal(); @@ -5142,7 +5295,7 @@ const Result = struct { } } else if (res.ty.isFloat()) { const old_value = res.val; - const value_change_kind = res.val.floatToInt(res.ty, int_ty, p.comp); + const value_change_kind = try res.val.floatToInt(int_ty, p.comp); try res.floatToIntWarning(p, int_ty, old_value, value_change_kind, tok); const old_real = res.ty.isReal(); const new_real = int_ty.isReal(); @@ -5164,7 +5317,7 @@ const Result = struct { try res.implicitCast(p, .complex_float_to_complex_int); } } else if (!res.ty.eql(int_ty, p.comp, true)) { - res.val.intCast(res.ty, int_ty, p.comp); + try res.val.intCast(int_ty, p.comp); const old_real = res.ty.isReal(); const new_real = int_ty.isReal(); if (old_real and new_real) { @@ -5195,14 +5348,14 @@ const Result = struct { .none => return p.errStr(.float_to_int, tok, try p.typePairStrExtra(res.ty, " to ", int_ty)), .out_of_range => return p.errStr(.float_out_of_range, tok, try p.typePairStrExtra(res.ty, " to ", int_ty)), .overflow => return p.errStr(.float_overflow_conversion, tok, try p.typePairStrExtra(res.ty, " to ", int_ty)), - .nonzero_to_zero => return p.errStr(.float_zero_conversion, tok, try p.floatValueChangedStr(res, old_value.getFloat(f64), int_ty)), - .value_changed => return p.errStr(.float_value_changed, tok, try p.floatValueChangedStr(res, old_value.getFloat(f64), int_ty)), + .nonzero_to_zero => return p.errStr(.float_zero_conversion, tok, try p.floatValueChangedStr(res, old_value, int_ty)), + .value_changed => return p.errStr(.float_value_changed, tok, try p.floatValueChangedStr(res, old_value, int_ty)), } } fn floatCast(res: *Result, p: *Parser, float_ty: Type) Error!void { if (res.ty.is(.bool)) { - res.val.intToFloat(res.ty, float_ty, p.comp); + try res.val.intToFloat(float_ty, p.comp); res.ty = float_ty.makeReal(); try res.implicitCast(p, .bool_to_float); if (!float_ty.isReal()) { @@ -5210,7 +5363,7 @@ const Result = struct { try res.implicitCast(p, .real_to_complex_float); } } else if (res.ty.isInt()) { - res.val.intToFloat(res.ty, float_ty, p.comp); + try res.val.intToFloat(float_ty, p.comp); const old_real = res.ty.isReal(); const new_real = float_ty.isReal(); if (old_real and new_real) { @@ -5231,7 +5384,7 @@ const Result = struct { try res.implicitCast(p, .complex_int_to_complex_float); } } else if (!res.ty.eql(float_ty, p.comp, true)) { - res.val.floatCast(res.ty, float_ty, p.comp); + try res.val.floatCast(float_ty, p.comp); const old_real = res.ty.isReal(); const new_real = float_ty.isReal(); if (old_real and new_real) { @@ -5264,7 +5417,7 @@ const Result = struct { res.ty = ptr_ty; try res.implicitCast(p, .bool_to_pointer); } else if (res.ty.isInt()) { - res.val.intCast(res.ty, ptr_ty, p.comp); + try res.val.intCast(ptr_ty, p.comp); res.ty = ptr_ty; try res.implicitCast(p, .int_to_pointer); } @@ -5284,7 +5437,7 @@ const Result = struct { } fn nullCast(res: *Result, p: *Parser, ptr_ty: Type) Error!void { - if (!res.ty.is(.nullptr_t) and !res.val.isZero()) return; + if (!res.ty.is(.nullptr_t) and !res.val.isZero(p.comp)) return; res.ty = ptr_ty; try res.implicitCast(p, .null_to_pointer); } @@ -5314,8 +5467,7 @@ const Result = struct { return res.floatCast(p, .{ .specifier = .float }); } if (res.ty.isInt()) { - const slice = p.nodes.slice(); - if (Tree.bitfieldWidth(slice, res.node, true)) |width| { + if (p.tmpTree().bitfieldWidth(res.node, true)) |width| { if (res.ty.bitfieldPromotion(p.comp, width)) |promotion_ty| { return res.intCast(p, promotion_ty, tok); } @@ -5392,15 +5544,15 @@ const Result = struct { fn invalidBinTy(a: *Result, tok: TokenIndex, b: *Result, p: *Parser) Error!bool { try p.errStr(.invalid_bin_types, tok, try p.typePairStr(a.ty, b.ty)); - a.val.tag = .unavailable; - b.val.tag = .unavailable; + a.val = .{}; + b.val = .{}; a.ty = Type.invalid; return false; } fn shouldEval(a: *Result, b: *Result, p: *Parser) Error!bool { if (p.no_eval) return false; - if (a.val.tag != .unavailable and b.val.tag != .unavailable) + if (a.val.opt_ref != .none and b.val.opt_ref != .none) return true; try a.saveValue(p); @@ -5411,50 +5563,50 @@ const Result = struct { /// Saves value and replaces it with `.unavailable`. fn saveValue(res: *Result, p: *Parser) !void { assert(!p.in_macro); - if (res.val.tag == .unavailable or res.val.tag == .nullptr_t) return; + if (res.val.opt_ref == .none or res.val.opt_ref == .null) return; if (!p.in_macro) try p.value_map.put(res.node, res.val); - res.val.tag = .unavailable; + res.val = .{}; } - fn castType(res: *Result, p: *Parser, to: Type, tok: TokenIndex) !void { + fn castType(res: *Result, p: *Parser, to: Type, operand_tok: TokenIndex, l_paren: TokenIndex) !void { var cast_kind: Tree.CastKind = undefined; if (to.is(.void)) { // everything can cast to void cast_kind = .to_void; - res.val.tag = .unavailable; + res.val = .{}; } else if (to.is(.nullptr_t)) { if (res.ty.is(.nullptr_t)) { cast_kind = .no_op; } else { - try p.errStr(.invalid_object_cast, tok, try p.typePairStrExtra(res.ty, " to ", to)); + try p.errStr(.invalid_object_cast, l_paren, try p.typePairStrExtra(res.ty, " to ", to)); return error.ParsingFailed; } } else if (res.ty.is(.nullptr_t)) { if (to.is(.bool)) { try res.nullCast(p, res.ty); - res.val.toBool(); + res.val.boolCast(p.comp); res.ty = .{ .specifier = .bool }; try res.implicitCast(p, .pointer_to_bool); try res.saveValue(p); } else if (to.isPtr()) { try res.nullCast(p, to); } else { - try p.errStr(.invalid_object_cast, tok, try p.typePairStrExtra(res.ty, " to ", to)); + try p.errStr(.invalid_object_cast, l_paren, try p.typePairStrExtra(res.ty, " to ", to)); return error.ParsingFailed; } cast_kind = .no_op; - } else if (res.val.isZero() and to.isPtr()) { + } else if (res.val.isZero(p.comp) and to.isPtr()) { cast_kind = .null_to_pointer; } else if (to.isScalar()) cast: { const old_float = res.ty.isFloat(); const new_float = to.isFloat(); if (new_float and res.ty.isPtr()) { - try p.errStr(.invalid_cast_to_float, tok, try p.typeStr(to)); + try p.errStr(.invalid_cast_to_float, l_paren, try p.typeStr(to)); return error.ParsingFailed; } else if (old_float and to.isPtr()) { - try p.errStr(.invalid_cast_to_pointer, tok, try p.typeStr(res.ty)); + try p.errStr(.invalid_cast_to_pointer, l_paren, try p.typeStr(res.ty)); return error.ParsingFailed; } const old_real = res.ty.isReal(); @@ -5537,6 +5689,9 @@ const Result = struct { try res.implicitCast(p, .complex_int_to_real); } cast_kind = .int_to_pointer; + } else { + try p.errStr(.cond_expr_type, operand_tok, try p.typeStr(res.ty)); + return error.ParsingFailed; } } else if (new_float) { if (res.ty.is(.bool)) { @@ -5575,49 +5730,49 @@ const Result = struct { cast_kind = .complex_float_cast; } } - if (res.val.tag == .unavailable) break :cast; + if (res.val.opt_ref == .none) break :cast; const old_int = res.ty.isInt() or res.ty.isPtr(); const new_int = to.isInt() or to.isPtr(); if (to.is(.bool)) { - res.val.toBool(); + res.val.boolCast(p.comp); } else if (old_float and new_int) { // Explicit cast, no conversion warning - _ = res.val.floatToInt(res.ty, to, p.comp); + _ = try res.val.floatToInt(to, p.comp); } else if (new_float and old_int) { - res.val.intToFloat(res.ty, to, p.comp); + try res.val.intToFloat(to, p.comp); } else if (new_float and old_float) { - res.val.floatCast(res.ty, to, p.comp); + try res.val.floatCast(to, p.comp); } else if (old_int and new_int) { if (to.hasIncompleteSize()) { - try p.errStr(.cast_to_incomplete_type, tok, try p.typeStr(to)); + try p.errStr(.cast_to_incomplete_type, l_paren, try p.typeStr(to)); return error.ParsingFailed; } - res.val.intCast(res.ty, to, p.comp); + try res.val.intCast(to, p.comp); } } else if (to.get(.@"union")) |union_ty| { if (union_ty.data.record.hasFieldOfType(res.ty, p.comp)) { cast_kind = .union_cast; - try p.errTok(.gnu_union_cast, tok); + try p.errTok(.gnu_union_cast, l_paren); } else { if (union_ty.data.record.isIncomplete()) { - try p.errStr(.cast_to_incomplete_type, tok, try p.typeStr(to)); + try p.errStr(.cast_to_incomplete_type, l_paren, try p.typeStr(to)); } else { - try p.errStr(.invalid_union_cast, tok, try p.typeStr(res.ty)); + try p.errStr(.invalid_union_cast, l_paren, try p.typeStr(res.ty)); } return error.ParsingFailed; } } else { if (to.is(.auto_type)) { - try p.errTok(.invalid_cast_to_auto_type, tok); + try p.errTok(.invalid_cast_to_auto_type, l_paren); } else { - try p.errStr(.invalid_cast_type, tok, try p.typeStr(to)); + try p.errStr(.invalid_cast_type, l_paren, try p.typeStr(to)); } return error.ParsingFailed; } - if (to.anyQual()) try p.errStr(.qual_cast, tok, try p.typeStr(to)); + if (to.anyQual()) try p.errStr(.qual_cast, l_paren, try p.typeStr(to)); if (to.isInt() and res.ty.isPtr() and to.sizeCompare(res.ty, p.comp) == .lt) { - try p.errStr(.cast_to_smaller_int, tok, try p.typePairStrExtra(to, " from ", res.ty)); + try p.errStr(.cast_to_smaller_int, l_paren, try p.typePairStrExtra(to, " from ", res.ty)); } res.ty = to; res.ty.qual = .{}; @@ -5628,11 +5783,11 @@ const Result = struct { }); } - fn intFitsInType(res: Result, p: *Parser, ty: Type) bool { - const max_int = Value.int(ty.maxInt(p.comp)); - const min_int = Value.int(ty.minInt(p.comp)); - return res.val.compare(.lte, max_int, res.ty, p.comp) and - (res.ty.isUnsignedInt(p.comp) or res.val.compare(.gte, min_int, res.ty, p.comp)); + fn intFitsInType(res: Result, p: *Parser, ty: Type) !bool { + const max_int = try Value.int(ty.maxInt(p.comp), p.comp); + const min_int = try Value.int(ty.minInt(p.comp), p.comp); + return res.val.compare(.lte, max_int, p.comp) and + (res.ty.isUnsignedInt(p.comp) or res.val.compare(.gte, min_int, p.comp)); } const CoerceContext = union(enum) { @@ -5642,16 +5797,16 @@ const Result = struct { arg: TokenIndex, test_coerce, - fn note(ctx: CoerceContext, p: *Parser) !void { - switch (ctx) { + fn note(c: CoerceContext, p: *Parser) !void { + switch (c) { .arg => |tok| try p.errTok(.parameter_here, tok), .test_coerce => unreachable, else => {}, } } - fn typePairStr(ctx: CoerceContext, p: *Parser, dest_ty: Type, src_ty: Type) ![]const u8 { - switch (ctx) { + fn typePairStr(c: CoerceContext, p: *Parser, dest_ty: Type, src_ty: Type) ![]const u8 { + switch (c) { .assign, .init => return p.typePairStrExtra(dest_ty, " from incompatible type ", src_ty), .ret => return p.typePairStrExtra(src_ty, " from a function with incompatible result type ", dest_ty), .arg => return p.typePairStrExtra(src_ty, " to parameter of incompatible type ", dest_ty), @@ -5661,19 +5816,24 @@ const Result = struct { }; /// Perform assignment-like coercion to `dest_ty`. - fn coerce(res: *Result, p: *Parser, dest_ty: Type, tok: TokenIndex, ctx: CoerceContext) Error!void { + fn coerce(res: *Result, p: *Parser, dest_ty: Type, tok: TokenIndex, c: CoerceContext) Error!void { if (res.ty.specifier == .invalid or dest_ty.specifier == .invalid) { res.ty = Type.invalid; return; } - return res.coerceExtra(p, dest_ty, tok, ctx) catch |er| switch (er) { + return res.coerceExtra(p, dest_ty, tok, c) catch |er| switch (er) { error.CoercionFailed => unreachable, else => |e| return e, }; } - const Stage1Limitation = Error || error{CoercionFailed}; - fn coerceExtra(res: *Result, p: *Parser, dest_ty: Type, tok: TokenIndex, ctx: CoerceContext) Stage1Limitation!void { + fn coerceExtra( + res: *Result, + p: *Parser, + dest_ty: Type, + tok: TokenIndex, + c: CoerceContext, + ) (Error || error{CoercionFailed})!void { // Subject of the coercion does not need to be qualified. var unqual_ty = dest_ty.canonicalize(.standard); unqual_ty.qual = .{}; @@ -5690,9 +5850,9 @@ const Result = struct { try res.intCast(p, unqual_ty, tok); return; } else if (res.ty.isPtr()) { - if (ctx == .test_coerce) return error.CoercionFailed; + if (c == .test_coerce) return error.CoercionFailed; try p.errStr(.implicit_ptr_to_int, tok, try p.typePairStrExtra(res.ty, " to ", dest_ty)); - try ctx.note(p); + try c.note(p); try res.intCast(p, unqual_ty, tok); return; } @@ -5702,13 +5862,13 @@ const Result = struct { return; } } else if (unqual_ty.isPtr()) { - if (res.ty.is(.nullptr_t) or res.val.isZero()) { + if (res.ty.is(.nullptr_t) or res.val.isZero(p.comp)) { try res.nullCast(p, dest_ty); return; } else if (res.ty.isInt() and res.ty.isReal()) { - if (ctx == .test_coerce) return error.CoercionFailed; + if (c == .test_coerce) return error.CoercionFailed; try p.errStr(.implicit_int_to_ptr, tok, try p.typePairStrExtra(res.ty, " to ", dest_ty)); - try ctx.note(p); + try c.note(p); try res.ptrCast(p, unqual_ty); return; } else if (res.ty.isVoidStar() or unqual_ty.eql(res.ty, p.comp, true)) { @@ -5717,26 +5877,26 @@ const Result = struct { return; // ok } else if (unqual_ty.eql(res.ty, p.comp, false)) { if (!unqual_ty.elemType().qual.hasQuals(res.ty.elemType().qual)) { - try p.errStr(switch (ctx) { + try p.errStr(switch (c) { .assign => .ptr_assign_discards_quals, .init => .ptr_init_discards_quals, .ret => .ptr_ret_discards_quals, .arg => .ptr_arg_discards_quals, .test_coerce => return error.CoercionFailed, - }, tok, try ctx.typePairStr(p, dest_ty, res.ty)); + }, tok, try c.typePairStr(p, dest_ty, res.ty)); } try res.ptrCast(p, unqual_ty); return; } else if (res.ty.isPtr()) { const different_sign_only = unqual_ty.elemType().sameRankDifferentSign(res.ty.elemType(), p.comp); - try p.errStr(switch (ctx) { + try p.errStr(switch (c) { .assign => ([2]Diagnostics.Tag{ .incompatible_ptr_assign, .incompatible_ptr_assign_sign })[@intFromBool(different_sign_only)], .init => ([2]Diagnostics.Tag{ .incompatible_ptr_init, .incompatible_ptr_init_sign })[@intFromBool(different_sign_only)], .ret => ([2]Diagnostics.Tag{ .incompatible_return, .incompatible_return_sign })[@intFromBool(different_sign_only)], .arg => ([2]Diagnostics.Tag{ .incompatible_ptr_arg, .incompatible_ptr_arg_sign })[@intFromBool(different_sign_only)], .test_coerce => return error.CoercionFailed, - }, tok, try ctx.typePairStr(p, dest_ty, res.ty)); - try ctx.note(p); + }, tok, try c.typePairStr(p, dest_ty, res.ty)); + try c.note(p); try res.ptrChildTypeCast(p, unqual_ty); return; } @@ -5745,7 +5905,7 @@ const Result = struct { return; // ok } - if (ctx == .arg) if (unqual_ty.get(.@"union")) |union_ty| { + if (c == .arg) if (unqual_ty.get(.@"union")) |union_ty| { if (dest_ty.hasAttribute(.transparent_union)) transparent_union: { res.coerceExtra(p, union_ty.data.record.fields[0].ty, tok, .test_coerce) catch |er| switch (er) { error.CoercionFailed => break :transparent_union, @@ -5765,10 +5925,10 @@ const Result = struct { return; // ok } } else { - if (ctx == .assign and (unqual_ty.isArray() or unqual_ty.isFunc())) { + if (c == .assign and (unqual_ty.isArray() or unqual_ty.isFunc())) { try p.errTok(.not_assignable, tok); return; - } else if (ctx == .test_coerce) { + } else if (c == .test_coerce) { return error.CoercionFailed; } // This case should not be possible and an error should have already been emitted but we @@ -5776,27 +5936,27 @@ const Result = struct { return error.ParsingFailed; } - try p.errStr(switch (ctx) { + try p.errStr(switch (c) { .assign => .incompatible_assign, .init => .incompatible_init, .ret => .incompatible_return, .arg => .incompatible_arg, .test_coerce => return error.CoercionFailed, - }, tok, try ctx.typePairStr(p, dest_ty, res.ty)); - try ctx.note(p); + }, tok, try c.typePairStr(p, dest_ty, res.ty)); + try c.note(p); } }; /// expr : assignExpr (',' assignExpr)* fn expr(p: *Parser) Error!Result { var expr_start = p.tok_i; - var err_start = p.comp.diag.list.items.len; + var err_start = p.comp.diagnostics.list.items.len; var lhs = try p.assignExpr(); if (p.tok_ids[p.tok_i] == .comma) try lhs.expect(p); while (p.eatToken(.comma)) |_| { try lhs.maybeWarnUnused(p, expr_start, err_start); expr_start = p.tok_i; - err_start = p.comp.diag.list.items.len; + err_start = p.comp.diagnostics.list.items.len; var rhs = try p.assignExpr(); try rhs.expect(p); @@ -5864,7 +6024,7 @@ fn assignExpr(p: *Parser) Error!Result { try rhs.lvalConversion(p); var is_const: bool = undefined; - if (!Tree.isLvalExtra(p.nodes.slice(), p.data.items, p.value_map, lhs.node, &is_const) or is_const) { + if (!p.tmpTree().isLvalExtra(lhs.node, &is_const) or is_const) { try p.errTok(.not_assignable, tok); return error.ParsingFailed; } @@ -5877,7 +6037,7 @@ fn assignExpr(p: *Parser) Error!Result { .div_assign_expr, .mod_assign_expr, => { - if (rhs.val.isZero() and lhs.ty.isInt() and rhs.ty.isInt()) { + if (rhs.val.isZero(p.comp) and lhs.ty.isInt() and rhs.ty.isInt()) { switch (tag) { .div_assign_expr => try p.errStr(.division_by_zero, div.?, "division"), .mod_assign_expr => try p.errStr(.division_by_zero, mod.?, "remainder"), @@ -5940,7 +6100,7 @@ fn constExpr(p: *Parser, decl_folding: ConstDeclFoldingMode) Error!Result { const res = try p.condExpr(); try res.expect(p); - if (res.ty.specifier == .invalid or res.val.tag == .unavailable) return res; + if (res.ty.specifier == .invalid or res.val.opt_ref == .none) return res; // saveValue sets val to unavailable var copy = res; @@ -5962,12 +6122,12 @@ fn condExpr(p: *Parser) Error!Result { } // Prepare for possible binary conditional expression. - var maybe_colon = p.eatToken(.colon); + const maybe_colon = p.eatToken(.colon); // Depending on the value of the condition, avoid evaluating unreachable branches. var then_expr = blk: { defer p.no_eval = saved_eval; - if (cond.val.tag != .unavailable and !cond.val.getBool()) p.no_eval = true; + if (cond.val.opt_ref != .none and !cond.val.toBool(p.comp)) p.no_eval = true; break :blk try p.expr(); }; try then_expr.expect(p); @@ -5989,15 +6149,15 @@ fn condExpr(p: *Parser) Error!Result { const colon = try p.expectToken(.colon); var else_expr = blk: { defer p.no_eval = saved_eval; - if (cond.val.tag != .unavailable and cond.val.getBool()) p.no_eval = true; + if (cond.val.opt_ref != .none and cond.val.toBool(p.comp)) p.no_eval = true; break :blk try p.condExpr(); }; try else_expr.expect(p); _ = try then_expr.adjustTypes(colon, &else_expr, p, .conditional); - if (cond.val.tag != .unavailable) { - cond.val = if (cond.val.getBool()) then_expr.val else else_expr.val; + if (cond.val.opt_ref != .none) { + cond.val = if (cond.val.toBool(p.comp)) then_expr.val else else_expr.val; } else { try then_expr.saveValue(p); try else_expr.saveValue(p); @@ -6019,13 +6179,13 @@ fn lorExpr(p: *Parser) Error!Result { defer p.no_eval = saved_eval; while (p.eatToken(.pipe_pipe)) |tok| { - if (lhs.val.tag != .unavailable and lhs.val.getBool()) p.no_eval = true; + if (lhs.val.opt_ref != .none and lhs.val.toBool(p.comp)) p.no_eval = true; var rhs = try p.landExpr(); try rhs.expect(p); if (try lhs.adjustTypes(tok, &rhs, p, .boolean_logic)) { - const res = @intFromBool(lhs.val.getBool() or rhs.val.getBool()); - lhs.val = Value.int(res); + const res = lhs.val.toBool(p.comp) or rhs.val.toBool(p.comp); + lhs.val = Value.fromBool(res); } try lhs.boolRes(p, .bool_or_expr, rhs); } @@ -6040,13 +6200,13 @@ fn landExpr(p: *Parser) Error!Result { defer p.no_eval = saved_eval; while (p.eatToken(.ampersand_ampersand)) |tok| { - if (lhs.val.tag != .unavailable and !lhs.val.getBool()) p.no_eval = true; + if (lhs.val.opt_ref != .none and !lhs.val.toBool(p.comp)) p.no_eval = true; var rhs = try p.orExpr(); try rhs.expect(p); if (try lhs.adjustTypes(tok, &rhs, p, .boolean_logic)) { - const res = @intFromBool(lhs.val.getBool() and rhs.val.getBool()); - lhs.val = Value.int(res); + const res = lhs.val.toBool(p.comp) and rhs.val.toBool(p.comp); + lhs.val = Value.fromBool(res); } try lhs.boolRes(p, .bool_and_expr, rhs); } @@ -6062,7 +6222,7 @@ fn orExpr(p: *Parser) Error!Result { try rhs.expect(p); if (try lhs.adjustTypes(tok, &rhs, p, .integer)) { - lhs.val = lhs.val.bitOr(rhs.val, lhs.ty, p.comp); + lhs.val = try lhs.val.bitOr(rhs.val, p.comp); } try lhs.bin(p, .bit_or_expr, rhs); } @@ -6078,7 +6238,7 @@ fn xorExpr(p: *Parser) Error!Result { try rhs.expect(p); if (try lhs.adjustTypes(tok, &rhs, p, .integer)) { - lhs.val = lhs.val.bitXor(rhs.val, lhs.ty, p.comp); + lhs.val = try lhs.val.bitXor(rhs.val, p.comp); } try lhs.bin(p, .bit_xor_expr, rhs); } @@ -6094,7 +6254,7 @@ fn andExpr(p: *Parser) Error!Result { try rhs.expect(p); if (try lhs.adjustTypes(tok, &rhs, p, .integer)) { - lhs.val = lhs.val.bitAnd(rhs.val, lhs.ty, p.comp); + lhs.val = try lhs.val.bitAnd(rhs.val, p.comp); } try lhs.bin(p, .bit_and_expr, rhs); } @@ -6114,8 +6274,8 @@ fn eqExpr(p: *Parser) Error!Result { if (try lhs.adjustTypes(ne.?, &rhs, p, .equality)) { const op: std.math.CompareOperator = if (tag == .equal_expr) .eq else .neq; - const res = lhs.val.compare(op, rhs.val, lhs.ty, p.comp); - lhs.val = Value.int(@intFromBool(res)); + const res = lhs.val.compare(op, rhs.val, p.comp); + lhs.val = Value.fromBool(res); } try lhs.boolRes(p, tag, rhs); } @@ -6143,8 +6303,8 @@ fn compExpr(p: *Parser) Error!Result { .greater_than_equal_expr => .gte, else => unreachable, }; - const res = lhs.val.compare(op, rhs.val, lhs.ty, p.comp); - lhs.val = Value.int(@intFromBool(res)); + const res = lhs.val.compare(op, rhs.val, p.comp); + lhs.val = Value.fromBool(res); } try lhs.boolRes(p, tag, rhs); } @@ -6164,9 +6324,9 @@ fn shiftExpr(p: *Parser) Error!Result { if (try lhs.adjustTypes(shr.?, &rhs, p, .integer)) { if (shl != null) { - lhs.val = lhs.val.shl(rhs.val, lhs.ty, p.comp); + if (try lhs.val.shl(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(shl.?, lhs); } else { - lhs.val = lhs.val.shr(rhs.val, lhs.ty, p.comp); + lhs.val = try lhs.val.shr(rhs.val, lhs.ty, p.comp); } } try lhs.bin(p, tag, rhs); @@ -6188,9 +6348,9 @@ fn addExpr(p: *Parser) Error!Result { const lhs_ty = lhs.ty; if (try lhs.adjustTypes(minus.?, &rhs, p, if (plus != null) .add else .sub)) { if (plus != null) { - if (lhs.val.add(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(plus.?, lhs); + if (try lhs.val.add(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(plus.?, lhs); } else { - if (lhs.val.sub(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(minus.?, lhs); + if (try lhs.val.sub(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(minus.?, lhs); } } if (lhs.ty.specifier != .invalid and lhs_ty.isPtr() and !lhs_ty.isVoidStar() and lhs_ty.elemType().hasIncompleteSize()) { @@ -6214,9 +6374,9 @@ fn mulExpr(p: *Parser) Error!Result { var rhs = try p.castExpr(); try rhs.expect(p); - if (rhs.val.isZero() and mul == null and !p.no_eval and lhs.ty.isInt() and rhs.ty.isInt()) { + if (rhs.val.isZero(p.comp) and mul == null and !p.no_eval and lhs.ty.isInt() and rhs.ty.isInt()) { const err_tag: Diagnostics.Tag = if (p.in_macro) .division_by_zero_macro else .division_by_zero; - lhs.val.tag = .unavailable; + lhs.val = .{}; if (div != null) { try p.errStr(err_tag, div.?, "division"); } else { @@ -6227,15 +6387,15 @@ fn mulExpr(p: *Parser) Error!Result { if (try lhs.adjustTypes(percent.?, &rhs, p, if (tag == .mod_expr) .integer else .arithmetic)) { if (mul != null) { - if (lhs.val.mul(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(mul.?, lhs); + if (try lhs.val.mul(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(mul.?, lhs); } else if (div != null) { - lhs.val = Value.div(lhs.val, rhs.val, lhs.ty, p.comp); + if (try lhs.val.div(lhs.val, rhs.val, lhs.ty, p.comp)) try p.errOverflow(mul.?, lhs); } else { - var res = Value.rem(lhs.val, rhs.val, lhs.ty, p.comp); - if (res.tag == .unavailable) { + var res = try Value.rem(lhs.val, rhs.val, lhs.ty, p.comp); + if (res.opt_ref == .none) { if (p.in_macro) { // match clang behavior by defining invalid remainder to be zero in macros - res = Value.int(0); + res = Value.zero; } else { try lhs.saveValue(p); try rhs.saveValue(p); @@ -6253,13 +6413,13 @@ fn mulExpr(p: *Parser) Error!Result { /// This will always be the last message, if present fn removeUnusedWarningForTok(p: *Parser, last_expr_tok: TokenIndex) void { if (last_expr_tok == 0) return; - if (p.comp.diag.list.items.len == 0) return; + if (p.comp.diagnostics.list.items.len == 0) return; const last_expr_loc = p.pp.tokens.items(.loc)[last_expr_tok]; - const last_msg = p.comp.diag.list.items[p.comp.diag.list.items.len - 1]; + const last_msg = p.comp.diagnostics.list.items[p.comp.diagnostics.list.items.len - 1]; if (last_msg.tag == .unused_value and last_msg.loc.eql(last_expr_loc)) { - p.comp.diag.list.items.len = p.comp.diag.list.items.len - 1; + p.comp.diagnostics.list.items.len = p.comp.diagnostics.list.items.len - 1; } } @@ -6305,10 +6465,11 @@ fn castExpr(p: *Parser) Error!Result { break :cast_expr; } + const operand_tok = p.tok_i; var operand = try p.castExpr(); try operand.expect(p); try operand.lvalConversion(p); - try operand.castType(p, ty, l_paren); + try operand.castType(p, ty, operand_tok, l_paren); return operand; } switch (p.tok_ids[p.tok_i]) { @@ -6353,8 +6514,8 @@ fn typesCompatible(p: *Parser) Error!Result { const compatible = first_unqual.eql(second_unqual, p.comp, true); - var res = Result{ - .val = Value.int(@intFromBool(compatible)), + const res = Result{ + .val = Value.fromBool(compatible), .node = try p.addNode(.{ .tag = .builtin_types_compatible_p, .ty = Type.int, .data = .{ .bin = .{ .lhs = lhs, .rhs = rhs, @@ -6369,24 +6530,24 @@ fn builtinChooseExpr(p: *Parser) Error!Result { const l_paren = try p.expectToken(.l_paren); const cond_tok = p.tok_i; var cond = try p.integerConstExpr(.no_const_decl_folding); - if (cond.val.tag == .unavailable) { + if (cond.val.opt_ref == .none) { try p.errTok(.builtin_choose_cond, cond_tok); return error.ParsingFailed; } _ = try p.expectToken(.comma); - var then_expr = if (cond.val.getBool()) try p.assignExpr() else try p.parseNoEval(assignExpr); + var then_expr = if (cond.val.toBool(p.comp)) try p.assignExpr() else try p.parseNoEval(assignExpr); try then_expr.expect(p); _ = try p.expectToken(.comma); - var else_expr = if (!cond.val.getBool()) try p.assignExpr() else try p.parseNoEval(assignExpr); + var else_expr = if (!cond.val.toBool(p.comp)) try p.assignExpr() else try p.parseNoEval(assignExpr); try else_expr.expect(p); try p.expectClosing(l_paren, .r_paren); - if (cond.val.getBool()) { + if (cond.val.toBool(p.comp)) { cond.val = then_expr.val; cond.ty = then_expr.ty; } else { @@ -6456,16 +6617,13 @@ fn builtinOffsetof(p: *Parser, want_bits: bool) Error!Result { _ = try p.expectToken(.comma); - const offsetof_expr = try p.offsetofMemberDesignator(ty); + const offsetof_expr = try p.offsetofMemberDesignator(ty, want_bits); try p.expectClosing(l_paren, .r_paren); return Result{ .ty = p.comp.types.size, - .val = if (offsetof_expr.val.tag == .int and !want_bits) - Value.int(offsetof_expr.val.data.int / 8) - else - offsetof_expr.val, + .val = offsetof_expr.val, .node = try p.addNode(.{ .tag = .special_builtin_call_one, .ty = p.comp.types.size, @@ -6475,23 +6633,23 @@ fn builtinOffsetof(p: *Parser, want_bits: bool) Error!Result { } /// offsetofMemberDesignator: IDENTIFIER ('.' IDENTIFIER | '[' expr ']' )* -fn offsetofMemberDesignator(p: *Parser, base_ty: Type) Error!Result { +fn offsetofMemberDesignator(p: *Parser, base_ty: Type, want_bits: bool) Error!Result { errdefer p.skipTo(.r_paren); const base_field_name_tok = try p.expectIdentifier(); - const base_field_name = try p.comp.intern(p.tokSlice(base_field_name_tok)); + const base_field_name = try StrInt.intern(p.comp, p.tokSlice(base_field_name_tok)); try p.validateFieldAccess(base_ty, base_ty, base_field_name_tok, base_field_name); const base_node = try p.addNode(.{ .tag = .default_init_expr, .ty = base_ty, .data = undefined }); - var offset_num: u64 = 0; + var cur_offset: u64 = 0; const base_record_ty = base_ty.canonicalize(.standard); - var lhs = try p.fieldAccessExtra(base_node, base_record_ty, base_field_name, false, &offset_num); - var bit_offset = Value.int(offset_num); + var lhs = try p.fieldAccessExtra(base_node, base_record_ty, base_field_name, false, &cur_offset); + var total_offset = cur_offset; while (true) switch (p.tok_ids[p.tok_i]) { .period => { p.tok_i += 1; const field_name_tok = try p.expectIdentifier(); - const field_name = try p.comp.intern(p.tokSlice(field_name_tok)); + const field_name = try StrInt.intern(p.comp, p.tokSlice(field_name_tok)); if (!lhs.ty.isRecord()) { try p.errStr(.offsetof_ty, field_name_tok, try p.typeStr(lhs.ty)); @@ -6499,10 +6657,8 @@ fn offsetofMemberDesignator(p: *Parser, base_ty: Type) Error!Result { } try p.validateFieldAccess(lhs.ty, lhs.ty, field_name_tok, field_name); const record_ty = lhs.ty.canonicalize(.standard); - lhs = try p.fieldAccessExtra(lhs.node, record_ty, field_name, false, &offset_num); - if (bit_offset.tag != .unavailable) { - bit_offset = Value.int(offset_num + bit_offset.getInt(u64)); - } + lhs = try p.fieldAccessExtra(lhs.node, record_ty, field_name, false, &cur_offset); + total_offset += cur_offset; }, .l_bracket => { const l_bracket_tok = p.tok_i; @@ -6528,8 +6684,8 @@ fn offsetofMemberDesignator(p: *Parser, base_ty: Type) Error!Result { }, else => break, }; - - return Result{ .ty = base_ty, .val = bit_offset, .node = lhs.node }; + const val = try Value.int(if (want_bits) total_offset else total_offset / 8, p.comp); + return Result{ .ty = base_ty, .val = val, .node = lhs.node }; } /// unExpr @@ -6575,11 +6731,13 @@ fn unExpr(p: *Parser) Error!Result { var operand = try p.castExpr(); try operand.expect(p); - const slice = p.nodes.slice(); - if (p.getNode(operand.node, .member_access_expr) orelse p.getNode(operand.node, .member_access_ptr_expr)) |member_node| { - if (Tree.isBitfield(slice, member_node)) try p.errTok(.addr_of_bitfield, tok); + const tree = p.tmpTree(); + if (p.getNode(operand.node, .member_access_expr) orelse + p.getNode(operand.node, .member_access_ptr_expr)) |member_node| + { + if (tree.isBitfield(member_node)) try p.errTok(.addr_of_bitfield, tok); } - if (!Tree.isLval(slice, p.data.items, p.value_map, operand.node)) { + if (!tree.isLval(operand.node)) { try p.errTok(.addr_of_rvalue, tok); } if (operand.ty.qual.register) try p.errTok(.addr_of_register, tok); @@ -6636,10 +6794,10 @@ fn unExpr(p: *Parser) Error!Result { try p.errStr(.invalid_argument_un, tok, try p.typeStr(operand.ty)); try operand.usualUnaryConversion(p, tok); - if (operand.val.tag == .int or operand.val.tag == .float) { - _ = operand.val.sub(operand.val.zero(), operand.val, operand.ty, p.comp); + if (operand.val.is(.int, p.comp)) { + _ = try operand.val.sub(Value.zero, operand.val, operand.ty, p.comp); } else { - operand.val.tag = .unavailable; + operand.val = .{}; } try operand.un(p, .negate_expr); return operand; @@ -6654,17 +6812,17 @@ fn unExpr(p: *Parser) Error!Result { if (operand.ty.isComplex()) try p.errStr(.complex_prefix_postfix_op, p.tok_i, try p.typeStr(operand.ty)); - if (!Tree.isLval(p.nodes.slice(), p.data.items, p.value_map, operand.node) or operand.ty.isConst()) { + if (!p.tmpTree().isLval(operand.node) or operand.ty.isConst()) { try p.errTok(.not_assignable, tok); return error.ParsingFailed; } try operand.usualUnaryConversion(p, tok); - if (operand.val.tag == .int or operand.val.tag == .float) { - if (operand.val.add(operand.val, operand.val.one(), operand.ty, p.comp)) + if (operand.val.is(.int, p.comp) or operand.val.is(.int, p.comp)) { + if (try operand.val.add(operand.val, Value.one, operand.ty, p.comp)) try p.errOverflow(tok, operand); } else { - operand.val.tag = .unavailable; + operand.val = .{}; } try operand.un(p, .pre_inc_expr); @@ -6680,17 +6838,17 @@ fn unExpr(p: *Parser) Error!Result { if (operand.ty.isComplex()) try p.errStr(.complex_prefix_postfix_op, p.tok_i, try p.typeStr(operand.ty)); - if (!Tree.isLval(p.nodes.slice(), p.data.items, p.value_map, operand.node) or operand.ty.isConst()) { + if (!p.tmpTree().isLval(operand.node) or operand.ty.isConst()) { try p.errTok(.not_assignable, tok); return error.ParsingFailed; } try operand.usualUnaryConversion(p, tok); - if (operand.val.tag == .int or operand.val.tag == .float) { - if (operand.val.sub(operand.val, operand.val.one(), operand.ty, p.comp)) + if (operand.val.is(.int, p.comp) or operand.val.is(.int, p.comp)) { + if (try operand.val.sub(operand.val, Value.one, operand.ty, p.comp)) try p.errOverflow(tok, operand); } else { - operand.val.tag = .unavailable; + operand.val = .{}; } try operand.un(p, .pre_dec_expr); @@ -6704,12 +6862,12 @@ fn unExpr(p: *Parser) Error!Result { try operand.lvalConversion(p); try operand.usualUnaryConversion(p, tok); if (operand.ty.isInt()) { - if (operand.val.tag == .int) { - operand.val = operand.val.bitNot(operand.ty, p.comp); + if (operand.val.is(.int, p.comp)) { + operand.val = try operand.val.bitNot(operand.ty, p.comp); } } else { try p.errStr(.invalid_argument_un, tok, try p.typeStr(operand.ty)); - operand.val.tag = .unavailable; + operand.val = .{}; } try operand.un(p, .bit_not_expr); return operand; @@ -6724,16 +6882,15 @@ fn unExpr(p: *Parser) Error!Result { try p.errStr(.invalid_argument_un, tok, try p.typeStr(operand.ty)); try operand.usualUnaryConversion(p, tok); - if (operand.val.tag == .int) { - const res = Value.int(@intFromBool(!operand.val.getBool())); - operand.val = res; - } else if (operand.val.tag == .nullptr_t) { - operand.val = Value.int(1); + if (operand.val.is(.int, p.comp)) { + operand.val = Value.fromBool(!operand.val.toBool(p.comp)); + } else if (operand.val.opt_ref == .null) { + operand.val = Value.one; } else { if (operand.ty.isDecayed()) { - operand.val = Value.int(0); + operand.val = Value.zero; } else { - operand.val.tag = .unavailable; + operand.val = .{}; } } operand.ty = .{ .specifier = .int }; @@ -6770,10 +6927,10 @@ fn unExpr(p: *Parser) Error!Result { if (size == 0) { try p.errTok(.sizeof_returns_zero, tok); } - res.val = Value.int(size); + res.val = try Value.int(size, p.comp); res.ty = p.comp.types.size; } else { - res.val.tag = .unavailable; + res.val = .{}; if (res.ty.hasIncompleteSize()) { try p.errStr(.invalid_sizeof, expected_paren - 1, try p.typeStr(res.ty)); res.ty = Type.invalid; @@ -6813,7 +6970,7 @@ fn unExpr(p: *Parser) Error!Result { try p.errStr(.pointer_arith_void, tok, "alignof"); } if (res.ty.alignable()) { - res.val = Value.int(res.ty.alignof(p.comp)); + res.val = try Value.int(res.ty.alignof(p.comp), p.comp); res.ty = p.comp.types.size; } else { try p.errStr(.invalid_alignof, expected_paren, try p.typeStr(res.ty)); @@ -6845,18 +7002,12 @@ fn unExpr(p: *Parser) Error!Result { if (operand.ty.isReal()) { switch (p.comp.langopts.emulate) { .msvc => {}, // Doesn't support `_Complex` or `__imag` in the first place - .gcc => { - if (operand.ty.isInt()) { - operand.val = Value.int(0); - } else if (operand.ty.isFloat()) { - operand.val = Value.float(0); - } - }, + .gcc => operand.val = Value.zero, .clang => { - if (operand.val.tag == .int) { - operand.val = Value.int(0); + if (operand.val.is(.int, p.comp)) { + operand.val = Value.zero; } else { - operand.val.tag = .unavailable; + operand.val = .{}; } }, } @@ -6898,14 +7049,45 @@ fn unExpr(p: *Parser) Error!Result { } /// compoundLiteral -/// : '(' type_name ')' '{' initializer_list '}' -/// | '(' type_name ')' '{' initializer_list ',' '}' +/// : '(' storageClassSpec* type_name ')' '{' initializer_list '}' +/// | '(' storageClassSpec* type_name ')' '{' initializer_list ',' '}' fn compoundLiteral(p: *Parser) Error!Result { const l_paren = p.eatToken(.l_paren) orelse return Result{}; - const ty = (try p.typeName()) orelse { + + var d: DeclSpec = .{ .ty = .{ .specifier = undefined } }; + const any = if (p.comp.langopts.standard.atLeast(.c23)) + try p.storageClassSpec(&d) + else + false; + + const tag: Tree.Tag = switch (d.storage_class) { + .static => if (d.thread_local != null) + .static_thread_local_compound_literal_expr + else + .static_compound_literal_expr, + .register, .none => if (d.thread_local != null) + .thread_local_compound_literal_expr + else + .compound_literal_expr, + .auto, .@"extern", .typedef => |tok| blk: { + try p.errStr(.invalid_compound_literal_storage_class, tok, @tagName(d.storage_class)); + d.storage_class = .none; + break :blk if (d.thread_local != null) + .thread_local_compound_literal_expr + else + .compound_literal_expr; + }, + }; + + var ty = (try p.typeName()) orelse { p.tok_i = l_paren; + if (any) { + try p.err(.expected_type); + return error.ParsingFailed; + } return Result{}; }; + if (d.storage_class == .register) ty.qual.register = true; try p.expectClosing(l_paren, .r_paren); if (ty.isFunc()) { @@ -6917,7 +7099,10 @@ fn compoundLiteral(p: *Parser) Error!Result { return error.ParsingFailed; } var init_list_expr = try p.initializer(ty); - try init_list_expr.un(p, .compound_literal_expr); + if (d.constexpr) |_| { + // TODO error if not constexpr + } + try init_list_expr.un(p, tag); return init_list_expr; } @@ -6942,7 +7127,7 @@ fn suffixExpr(p: *Parser, lhs: Result) Error!Result { if (operand.ty.isComplex()) try p.errStr(.complex_prefix_postfix_op, p.tok_i, try p.typeStr(operand.ty)); - if (!Tree.isLval(p.nodes.slice(), p.data.items, p.value_map, operand.node) or operand.ty.isConst()) { + if (!p.tmpTree().isLval(operand.node) or operand.ty.isConst()) { try p.err(.not_assignable); return error.ParsingFailed; } @@ -6960,7 +7145,7 @@ fn suffixExpr(p: *Parser, lhs: Result) Error!Result { if (operand.ty.isComplex()) try p.errStr(.complex_prefix_postfix_op, p.tok_i, try p.typeStr(operand.ty)); - if (!Tree.isLval(p.nodes.slice(), p.data.items, p.value_map, operand.node) or operand.ty.isConst()) { + if (!p.tmpTree().isLval(operand.node) or operand.ty.isConst()) { try p.err(.not_assignable); return error.ParsingFailed; } @@ -7044,7 +7229,7 @@ fn fieldAccess( if (is_arrow and !is_ptr) try p.errStr(.member_expr_not_ptr, field_name_tok, try p.typeStr(expr_ty)); if (!is_arrow and is_ptr) try p.errStr(.member_expr_ptr, field_name_tok, try p.typeStr(expr_ty)); - const field_name = try p.comp.intern(p.tokSlice(field_name_tok)); + const field_name = try StrInt.intern(p.comp, p.tokSlice(field_name_tok)); try p.validateFieldAccess(record_ty, expr_ty, field_name_tok, field_name); var discard: u64 = 0; return p.fieldAccessExtra(lhs.node, record_ty, field_name, is_arrow, &discard); @@ -7060,7 +7245,7 @@ fn validateFieldAccess(p: *Parser, record_ty: Type, expr_ty: Type, field_name_to try expr_ty.print(mapper, p.comp.langopts, p.strings.writer()); try p.strings.append('\''); - const duped = try p.comp.diag.arena.allocator().dupe(u8, p.strings.items); + const duped = try p.comp.diagnostics.arena.allocator().dupe(u8, p.strings.items); try p.errStr(.no_such_member, field_name_tok, duped); return error.ParsingFailed; } @@ -7075,7 +7260,7 @@ fn fieldAccessExtra(p: *Parser, lhs: NodeIndex, record_ty: Type, field_name: Str .data = .{ .member = .{ .lhs = lhs, .index = @intCast(i) } }, }); const ret = p.fieldAccessExtra(inner, f.ty, field_name, false, offset_bits); - offset_bits.* += f.layout.offset_bits; + offset_bits.* = f.layout.offset_bits; return ret; } if (field_name == f.name) { @@ -7111,7 +7296,7 @@ fn checkVaStartArg(p: *Parser, builtin_tok: TokenIndex, first_after: TokenIndex, } const last_param_name = func_params[func_params.len - 1].name; const decl_ref = p.getNode(arg.node, .decl_ref_expr); - if (decl_ref == null or last_param_name != try p.comp.intern(p.tokSlice(p.nodes.items(.data)[@intFromEnum(decl_ref.?)].decl_ref))) { + if (decl_ref == null or last_param_name != try StrInt.intern(p.comp, p.tokSlice(p.nodes.items(.data)[@intFromEnum(decl_ref.?)].decl_ref))) { try p.errTok(.va_start_not_last_param, param_tok); } } @@ -7130,13 +7315,6 @@ fn checkComplexArg(p: *Parser, builtin_tok: TokenIndex, first_after: TokenIndex, } } -fn checkVariableBuiltinArgument(p: *Parser, builtin_tok: TokenIndex, first_after: TokenIndex, param_tok: TokenIndex, arg: *Result, arg_idx: u32, tag: Builtin.Tag) !void { - switch (tag) { - .__builtin_va_start, .__va_start, .va_start => return p.checkVaStartArg(builtin_tok, first_after, param_tok, arg, arg_idx), - else => {}, - } -} - fn callExpr(p: *Parser, lhs: Result) Error!Result { const l_paren = p.tok_i; p.tok_i += 1; @@ -7209,7 +7387,10 @@ fn callExpr(p: *Parser, lhs: Result) Error!Result { } else if (ty.is(.func) and params.len != arg_count) { try p.errExtra(.expected_arguments, first_after, extra); } else if (ty.is(.old_style_func) and params.len != arg_count) { - try p.errExtra(.expected_arguments_old, first_after, extra); + if (params.len == 0) + try p.errTok(.passing_args_to_kr, first_after) + else + try p.errExtra(.expected_arguments_old, first_after, extra); } else if (ty.is(.var_args_func) and arg_count < params.len) { try p.errExtra(.expected_at_least_arguments, first_after, extra); } @@ -7218,7 +7399,7 @@ fn callExpr(p: *Parser, lhs: Result) Error!Result { } fn checkArrayBounds(p: *Parser, index: Result, array: Result, tok: TokenIndex) !void { - if (index.val.tag == .unavailable) return; + if (index.val.opt_ref == .none) return; const array_len = array.ty.arrayLen() orelse return; if (array_len == 0) return; @@ -7233,28 +7414,24 @@ fn checkArrayBounds(p: *Parser, index: Result, array: Result, tok: TokenIndex) ! if (lhs.is(.@"struct")) { const record = lhs.getRecord().?; if (data.member.index + 1 == record.fields.len) { - if (!index.val.isZero()) { - try p.errExtra(.old_style_flexible_struct, tok, .{ - .unsigned = index.val.data.int, - }); + if (!index.val.isZero(p.comp)) { + try p.errStr(.old_style_flexible_struct, tok, try index.str(p)); } return; } } } } - const len = Value.int(array_len); - + const index_int = index.val.toInt(u64, p.comp) orelse std.math.maxInt(u64); if (index.ty.isUnsignedInt(p.comp)) { - if (index.val.compare(.gte, len, p.comp.types.size, p.comp)) - try p.errExtra(.array_after, tok, .{ .unsigned = index.val.data.int }); + if (index_int >= array_len) { + try p.errStr(.array_after, tok, try index.str(p)); + } } else { - if (index.val.compare(.lt, Value.int(0), index.ty, p.comp)) { - try p.errExtra(.array_before, tok, .{ - .signed = index.val.signExtend(index.ty, p.comp), - }); - } else if (index.val.compare(.gte, len, p.comp.types.size, p.comp)) { - try p.errExtra(.array_after, tok, .{ .unsigned = index.val.data.int }); + if (index.val.compare(.lt, Value.zero, p.comp)) { + try p.errStr(.array_before, tok, try index.str(p)); + } else if (index_int >= array_len) { + try p.errStr(.array_after, tok, try index.str(p)); } } } @@ -7283,7 +7460,7 @@ fn primaryExpr(p: *Parser) Error!Result { .identifier, .extended_identifier => { const name_tok = p.expectIdentifier() catch unreachable; const name = p.tokSlice(name_tok); - const interned_name = try p.comp.intern(name); + const interned_name = try StrInt.intern(p.comp, name); if (p.syms.findSymbol(interned_name)) |sym| { try p.checkDeprecatedUnavailable(sym.ty, name_tok, sym.tok); if (sym.kind == .constexpr) { @@ -7297,7 +7474,7 @@ fn primaryExpr(p: *Parser) Error!Result { }), }; } - if (sym.val.tag == .int) { + if (sym.val.is(.int, p.comp)) { switch (p.const_decl_folding) { .gnu_folding_extension => try p.errTok(.const_decl_folded, name_tok), .gnu_vla_folding_extension => try p.errTok(.const_decl_folded_vla, name_tok), @@ -7340,7 +7517,7 @@ fn primaryExpr(p: *Parser) Error!Result { }), }; } - if (p.tok_ids[p.tok_i] == .l_paren) { + if (p.tok_ids[p.tok_i] == .l_paren and !p.comp.langopts.standard.atLeast(.c23)) { // allow implicitly declaring functions before C99 like `puts("foo")` if (mem.startsWith(u8, name, "__builtin_")) try p.errStr(.unknown_builtin, name_tok, name) @@ -7373,15 +7550,10 @@ fn primaryExpr(p: *Parser) Error!Result { }, .keyword_true, .keyword_false => |id| { p.tok_i += 1; - const numeric_value = @intFromBool(id == .keyword_true); const res = Result{ - .val = Value.int(numeric_value), + .val = Value.fromBool(id == .keyword_true), .ty = .{ .specifier = .bool }, - .node = try p.addNode(.{ - .tag = .bool_literal, - .ty = .{ .specifier = .bool }, - .data = .{ .int = numeric_value }, - }), + .node = try p.addNode(.{ .tag = .bool_literal, .ty = .{ .specifier = .bool }, .data = undefined }), }; std.debug.assert(!p.in_macro); // Should have been replaced with .one / .zero try p.value_map.put(res.node, res.val); @@ -7389,9 +7561,9 @@ fn primaryExpr(p: *Parser) Error!Result { }, .keyword_nullptr => { defer p.tok_i += 1; - try p.errStr(.pre_c2x_compat, p.tok_i, "'nullptr'"); + try p.errStr(.pre_c23_compat, p.tok_i, "'nullptr'"); return Result{ - .val = .{ .tag = .nullptr_t }, + .val = Value.null, .ty = .{ .specifier = .nullptr_t }, .node = try p.addNode(.{ .tag = .nullptr_literal, @@ -7408,16 +7580,20 @@ fn primaryExpr(p: *Parser) Error!Result { ty = some.ty; tok = p.nodes.items(.data)[@intFromEnum(some.node)].decl.name; } else if (p.func.ty) |_| { - const start: u32 = @intCast(p.retained_strings.items.len); - try p.retained_strings.appendSlice(p.tokSlice(p.func.name)); - try p.retained_strings.append(0); - const predef = try p.makePredefinedIdentifier(start); + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + + try p.strings.appendSlice(p.tokSlice(p.func.name)); + try p.strings.append(0); + const predef = try p.makePredefinedIdentifier(strings_top); ty = predef.ty; p.func.ident = predef; } else { - const start: u32 = @intCast(p.retained_strings.items.len); - try p.retained_strings.append(0); - const predef = try p.makePredefinedIdentifier(start); + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + + try p.strings.append(0); + const predef = try p.makePredefinedIdentifier(strings_top); ty = predef.ty; p.func.ident = predef; try p.decl_buf.append(predef.node); @@ -7438,17 +7614,21 @@ fn primaryExpr(p: *Parser) Error!Result { if (p.func.pretty_ident) |some| { ty = some.ty; } else if (p.func.ty) |func_ty| { + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + const mapper = p.comp.string_interner.getSlowTypeMapper(); - const start: u32 = @intCast(p.retained_strings.items.len); - try Type.printNamed(func_ty, p.tokSlice(p.func.name), mapper, p.comp.langopts, p.retained_strings.writer()); - try p.retained_strings.append(0); - const predef = try p.makePredefinedIdentifier(start); + try Type.printNamed(func_ty, p.tokSlice(p.func.name), mapper, p.comp.langopts, p.strings.writer()); + try p.strings.append(0); + const predef = try p.makePredefinedIdentifier(strings_top); ty = predef.ty; p.func.pretty_ident = predef; } else { - const start: u32 = @intCast(p.retained_strings.items.len); - try p.retained_strings.appendSlice("top level\x00"); - const predef = try p.makePredefinedIdentifier(start); + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + + try p.strings.appendSlice("top level\x00"); + const predef = try p.makePredefinedIdentifier(strings_top); ty = predef.ty; p.func.pretty_ident = predef; try p.decl_buf.append(predef.node); @@ -7480,14 +7660,14 @@ fn primaryExpr(p: *Parser) Error!Result { => return p.charLiteral(), .zero => { p.tok_i += 1; - var res: Result = .{ .val = Value.int(0), .ty = if (p.in_macro) p.comp.types.intmax else Type.int }; + var res: Result = .{ .val = Value.zero, .ty = if (p.in_macro) p.comp.types.intmax else Type.int }; res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = undefined }); if (!p.in_macro) try p.value_map.put(res.node, res.val); return res; }, .one => { p.tok_i += 1; - var res: Result = .{ .val = Value.int(1), .ty = if (p.in_macro) p.comp.types.intmax else Type.int }; + var res: Result = .{ .val = Value.one, .ty = if (p.in_macro) p.comp.types.intmax else Type.int }; res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = undefined }); if (!p.in_macro) try p.value_map.put(res.node, res.val); return res; @@ -7504,7 +7684,7 @@ fn primaryExpr(p: *Parser) Error!Result { byte *= 10; byte += c - '0'; } - var res: Result = .{ .val = Value.int(byte) }; + var res: Result = .{ .val = try Value.int(byte, p.comp) }; res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = undefined }); try p.value_map.put(res.node, res.val); return res; @@ -7514,14 +7694,16 @@ fn primaryExpr(p: *Parser) Error!Result { } } -fn makePredefinedIdentifier(p: *Parser, start: u32) !Result { - const end: u32 = @intCast(p.retained_strings.items.len); +fn makePredefinedIdentifier(p: *Parser, strings_top: usize) !Result { + const end: u32 = @intCast(p.strings.items.len); const elem_ty = .{ .specifier = .char, .qual = .{ .@"const" = true } }; const arr_ty = try p.arena.create(Type.Array); - arr_ty.* = .{ .elem = elem_ty, .len = end - start }; + arr_ty.* = .{ .elem = elem_ty, .len = end - strings_top }; const ty: Type = .{ .specifier = .array, .data = .{ .array = arr_ty } }; - const val = Value.bytes(start, end); + const slice = p.strings.items[strings_top..]; + const val = try Value.intern(p.comp, .{ .bytes = slice }); + const str_lit = try p.addNode(.{ .tag = .string_literal_expr, .ty = ty, .data = undefined }); if (!p.in_macro) try p.value_map.put(str_lit, val); @@ -7534,8 +7716,8 @@ fn makePredefinedIdentifier(p: *Parser, start: u32) !Result { fn stringLiteral(p: *Parser) Error!Result { var string_end = p.tok_i; - var string_kind: TextLiteral.Kind = .char; - while (TextLiteral.Kind.classify(p.tok_ids[string_end], .string_literal)) |next| : (string_end += 1) { + var string_kind: text_literal.Kind = .char; + while (text_literal.Kind.classify(p.tok_ids[string_end], .string_literal)) |next| : (string_end += 1) { string_kind = string_kind.concat(next) catch { try p.errTok(.unsupported_str_cat, string_end); while (p.tok_ids[p.tok_i].isStringLiteral()) : (p.tok_i += 1) {} @@ -7551,24 +7733,24 @@ fn stringLiteral(p: *Parser) Error!Result { const char_width = string_kind.charUnitSize(p.comp); - const retain_start = mem.alignForward(usize, p.retained_strings.items.len, string_kind.internalStorageAlignment(p.comp)); - try p.retained_strings.resize(retain_start); + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; while (p.tok_i < string_end) : (p.tok_i += 1) { - const this_kind = TextLiteral.Kind.classify(p.tok_ids[p.tok_i], .string_literal).?; + const this_kind = text_literal.Kind.classify(p.tok_ids[p.tok_i], .string_literal).?; const slice = this_kind.contentSlice(p.tokSlice(p.tok_i)); - var char_literal_parser = TextLiteral.Parser.init(slice, this_kind, 0x10ffff, p.comp); + var char_literal_parser = text_literal.Parser.init(slice, this_kind, 0x10ffff, p.comp); - try p.retained_strings.ensureUnusedCapacity((slice.len + 1) * @intFromEnum(char_width)); // +1 for null terminator + try p.strings.ensureUnusedCapacity((slice.len + 1) * @intFromEnum(char_width)); // +1 for null terminator while (char_literal_parser.next()) |item| switch (item) { .value => |v| { switch (char_width) { - .@"1" => p.retained_strings.appendAssumeCapacity(@intCast(v)), + .@"1" => p.strings.appendAssumeCapacity(@intCast(v)), .@"2" => { const word: u16 = @intCast(v); - p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&word)); + p.strings.appendSliceAssumeCapacity(mem.asBytes(&word)); }, - .@"4" => p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&v)), + .@"4" => p.strings.appendSliceAssumeCapacity(mem.asBytes(&v)), } }, .codepoint => |c| { @@ -7577,7 +7759,7 @@ fn stringLiteral(p: *Parser) Error!Result { var buf: [4]u8 = undefined; const written = std.unicode.utf8Encode(c, &buf) catch unreachable; const encoded = buf[0..written]; - p.retained_strings.appendSliceAssumeCapacity(encoded); + p.strings.appendSliceAssumeCapacity(encoded); }, .@"2" => { var utf16_buf: [2]u16 = undefined; @@ -7585,30 +7767,30 @@ fn stringLiteral(p: *Parser) Error!Result { const utf8_written = std.unicode.utf8Encode(c, &utf8_buf) catch unreachable; const utf16_written = std.unicode.utf8ToUtf16Le(&utf16_buf, utf8_buf[0..utf8_written]) catch unreachable; const bytes = std.mem.sliceAsBytes(utf16_buf[0..utf16_written]); - p.retained_strings.appendSliceAssumeCapacity(bytes); + p.strings.appendSliceAssumeCapacity(bytes); }, .@"4" => { const val: u32 = c; - p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&val)); + p.strings.appendSliceAssumeCapacity(mem.asBytes(&val)); }, } }, - .improperly_encoded => |bytes| p.retained_strings.appendSliceAssumeCapacity(bytes), + .improperly_encoded => |bytes| p.strings.appendSliceAssumeCapacity(bytes), .utf8_text => |view| { switch (char_width) { - .@"1" => p.retained_strings.appendSliceAssumeCapacity(view.bytes), + .@"1" => p.strings.appendSliceAssumeCapacity(view.bytes), .@"2" => { - var capacity_slice: []align(@alignOf(u16)) u8 = @alignCast(p.retained_strings.unusedCapacitySlice()); + const capacity_slice: []align(@alignOf(u16)) u8 = @alignCast(p.strings.unusedCapacitySlice()); const dest_len = std.mem.alignBackward(usize, capacity_slice.len, 2); - var dest = std.mem.bytesAsSlice(u16, capacity_slice[0..dest_len]); + const dest = std.mem.bytesAsSlice(u16, capacity_slice[0..dest_len]); const words_written = std.unicode.utf8ToUtf16Le(dest, view.bytes) catch unreachable; - p.retained_strings.resize(p.retained_strings.items.len + words_written * 2) catch unreachable; + p.strings.resize(p.strings.items.len + words_written * 2) catch unreachable; }, .@"4" => { var it = view.iterator(); while (it.nextCodepoint()) |codepoint| { const val: u32 = codepoint; - p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&val)); + p.strings.appendSliceAssumeCapacity(mem.asBytes(&val)); } }, } @@ -7618,8 +7800,18 @@ fn stringLiteral(p: *Parser) Error!Result { try p.errExtra(item.tag, p.tok_i, item.extra); } } - p.retained_strings.appendNTimesAssumeCapacity(0, @intFromEnum(char_width)); - const slice = p.retained_strings.items[retain_start..]; + p.strings.appendNTimesAssumeCapacity(0, @intFromEnum(char_width)); + const slice = p.strings.items[strings_top..]; + + // TODO this won't do anything if there is a cache hit + const interned_align = mem.alignForward( + usize, + p.comp.interner.strings.items.len, + string_kind.internalStorageAlignment(p.comp), + ); + try p.comp.interner.strings.resize(p.gpa, interned_align); + + const val = try Value.intern(p.comp, .{ .bytes = slice }); const arr_ty = try p.arena.create(Type.Array); arr_ty.* = .{ .elem = string_kind.elementType(p.comp), .len = @divExact(slice.len, @intFromEnum(char_width)) }; @@ -7628,7 +7820,7 @@ fn stringLiteral(p: *Parser) Error!Result { .specifier = .array, .data = .{ .array = arr_ty }, }, - .val = Value.bytes(@intCast(retain_start), @intCast(p.retained_strings.items.len)), + .val = val, }; res.node = try p.addNode(.{ .tag = .string_literal_expr, .ty = res.ty, .data = undefined }); if (!p.in_macro) try p.value_map.put(res.node, res.val); @@ -7638,7 +7830,7 @@ fn stringLiteral(p: *Parser) Error!Result { fn charLiteral(p: *Parser) Error!Result { defer p.tok_i += 1; const tok_id = p.tok_ids[p.tok_i]; - const char_kind = TextLiteral.Kind.classify(tok_id, .char_literal) orelse { + const char_kind = text_literal.Kind.classify(tok_id, .char_literal) orelse { if (tok_id == .empty_char_literal) { try p.err(.empty_char_literal_error); } else if (tok_id == .unterminated_char_literal) { @@ -7646,10 +7838,11 @@ fn charLiteral(p: *Parser) Error!Result { } else unreachable; return .{ .ty = Type.int, - .val = Value.int(0), + .val = Value.zero, .node = try p.addNode(.{ .tag = .char_literal, .ty = Type.int, .data = undefined }), }; }; + if (char_kind == .utf_8) try p.err(.u8_char_lit); var val: u32 = 0; const slice = char_kind.contentSlice(p.tokSlice(p.tok_i)); @@ -7659,7 +7852,7 @@ fn charLiteral(p: *Parser) Error!Result { val = slice[0]; } else { const max_codepoint = char_kind.maxCodepoint(p.comp); - var char_literal_parser = TextLiteral.Parser.init(slice, char_kind, max_codepoint, p.comp); + var char_literal_parser = text_literal.Parser.init(slice, char_kind, max_codepoint, p.comp); const max_chars_expected = 4; var stack_fallback = std.heap.stackFallback(max_chars_expected * @sizeOf(u32), p.comp.gpa); @@ -7730,9 +7923,9 @@ fn charLiteral(p: *Parser) Error!Result { else p.comp.types.intmax; - var res = Result{ + const res = Result{ .ty = if (p.in_macro) macro_ty else ty, - .val = Value.int(val), + .val = try Value.int(val, p.comp), .node = try p.addNode(.{ .tag = .char_literal, .ty = ty, .data = undefined }), }; if (!p.in_macro) try p.value_map.put(res.node, res.val); @@ -7740,48 +7933,50 @@ fn charLiteral(p: *Parser) Error!Result { } fn parseFloat(p: *Parser, buf: []const u8, suffix: NumberSuffix) !Result { - switch (suffix) { - .L => return p.todo("long double literals"), - .IL => { - try p.err(.gnu_imaginary_constant); - return p.todo("long double imaginary literals"); - }, - .None, .I, .F, .IF, .F16 => { - const ty = Type{ .specifier = switch (suffix) { - .None, .I => .double, - .F, .IF => .float, - .F16 => .float16, - else => unreachable, - } }; - const d_val = std.fmt.parseFloat(f64, buf) catch |er| switch (er) { - error.InvalidCharacter => return p.todo("c2x digit separators in floats"), - else => unreachable, - }; - const tag: Tree.Tag = switch (suffix) { - .None, .I => .double_literal, - .F, .IF => .float_literal, - .F16 => .float16_literal, - else => unreachable, - }; - var res = Result{ - .ty = ty, - .node = try p.addNode(.{ .tag = tag, .ty = ty, .data = undefined }), - .val = Value.float(d_val), - }; - if (suffix.isImaginary()) { - try p.err(.gnu_imaginary_constant); - res.ty = .{ .specifier = switch (suffix) { - .I => .complex_double, - .IF => .complex_float, - else => unreachable, - } }; - res.val.tag = .unavailable; - try res.un(p, .imaginary_literal); - } - return res; - }, + const ty = Type{ .specifier = switch (suffix) { + .None, .I => .double, + .F, .IF => .float, + .F16 => .float16, + .L, .IL => .long_double, else => unreachable, + } }; + const val = try Value.intern(p.comp, key: { + try p.strings.ensureUnusedCapacity(buf.len); + + const strings_top = p.strings.items.len; + defer p.strings.items.len = strings_top; + for (buf) |c| { + if (c != '_') p.strings.appendAssumeCapacity(c); + } + + const float = std.fmt.parseFloat(f128, p.strings.items[strings_top..]) catch unreachable; + const bits = ty.bitSizeof(p.comp).?; + break :key switch (bits) { + 16 => .{ .float = .{ .f16 = @floatCast(float) } }, + 32 => .{ .float = .{ .f32 = @floatCast(float) } }, + 64 => .{ .float = .{ .f64 = @floatCast(float) } }, + 80 => .{ .float = .{ .f80 = @floatCast(float) } }, + 128 => .{ .float = .{ .f128 = @floatCast(float) } }, + else => unreachable, + }; + }); + var res = Result{ + .ty = ty, + .node = try p.addNode(.{ .tag = .float_literal, .ty = ty, .data = undefined }), + .val = val, + }; + if (suffix.isImaginary()) { + try p.err(.gnu_imaginary_constant); + res.ty = .{ .specifier = switch (suffix) { + .I => .complex_double, + .IF => .complex_float, + .IL => .complex_long_double, + else => unreachable, + } }; + res.val = .{}; // TODO add complex values + try res.un(p, .imaginary_literal); } + return res; } fn getIntegerPart(p: *Parser, buf: []const u8, prefix: NumberPrefix, tok_i: TokenIndex) ![]const u8 { @@ -7854,9 +8049,10 @@ fn fixedSizeInt(p: *Parser, base: u8, buf: []const u8, suffix: NumberSuffix, tok if (overflowed != 0) overflow = true; val = sum; } + var res: Result = .{ .val = try Value.int(val, p.comp) }; if (overflow) { try p.errTok(.int_literal_too_big, tok_i); - var res: Result = .{ .ty = .{ .specifier = .ulong_long }, .val = Value.int(val) }; + res.ty = .{ .specifier = .ulong_long }; res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = undefined }); if (!p.in_macro) try p.value_map.put(res.node, res.val); return res; @@ -7866,25 +8062,39 @@ fn fixedSizeInt(p: *Parser, base: u8, buf: []const u8, suffix: NumberSuffix, tok try p.errTok(.implicitly_unsigned_literal, tok_i); } } - return if (base == 10) - switch (suffix) { - .None, .I => p.castInt(val, &.{ .int, .long, .long_long }), - .U, .IU => p.castInt(val, &.{ .uint, .ulong, .ulong_long }), - .L, .IL => p.castInt(val, &.{ .long, .long_long }), - .UL, .IUL => p.castInt(val, &.{ .ulong, .ulong_long }), - .LL, .ILL => p.castInt(val, &.{.long_long}), - .ULL, .IULL => p.castInt(val, &.{.ulong_long}), - else => unreachable, - } - else switch (suffix) { - .None, .I => p.castInt(val, &.{ .int, .uint, .long, .ulong, .long_long, .ulong_long }), - .U, .IU => p.castInt(val, &.{ .uint, .ulong, .ulong_long }), - .L, .IL => p.castInt(val, &.{ .long, .ulong, .long_long, .ulong_long }), - .UL, .IUL => p.castInt(val, &.{ .ulong, .ulong_long }), - .LL, .ILL => p.castInt(val, &.{ .long_long, .ulong_long }), - .ULL, .IULL => p.castInt(val, &.{.ulong_long}), + + const signed_specs = .{ .int, .long, .long_long }; + const unsigned_specs = .{ .uint, .ulong, .ulong_long }; + const signed_oct_hex_specs = .{ .int, .uint, .long, .ulong, .long_long, .ulong_long }; + const specs: []const Type.Specifier = if (suffix.signedness() == .unsigned) + &unsigned_specs + else if (base == 10) + &signed_specs + else + &signed_oct_hex_specs; + + const suffix_ty: Type = .{ .specifier = switch (suffix) { + .None, .I => .int, + .U, .IU => .uint, + .UL, .IUL => .ulong, + .ULL, .IULL => .ulong_long, + .L, .IL => .long, + .LL, .ILL => .long_long, else => unreachable, - }; + } }; + + for (specs) |spec| { + res.ty = Type{ .specifier = spec }; + if (res.ty.compareIntegerRanks(suffix_ty, p.comp).compare(.lt)) continue; + const max_int = res.ty.maxInt(p.comp); + if (val <= max_int) break; + } else { + res.ty = .{ .specifier = .ulong_long }; + } + + res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = undefined }); + if (!p.in_macro) try p.value_map.put(res.node, res.val); + return res; } fn parseInt(p: *Parser, prefix: NumberPrefix, buf: []const u8, suffix: NumberSuffix, tok_i: TokenIndex) !Result { @@ -7900,14 +8110,14 @@ fn parseInt(p: *Parser, prefix: NumberPrefix, buf: []const u8, suffix: NumberSuf if (suffix.isImaginary()) { try p.errTok(.gnu_imaginary_constant, tok_i); res.ty = res.ty.makeComplex(); - res.val.tag = .unavailable; + res.val = .{}; try res.un(p, .imaginary_literal); } return res; } fn bitInt(p: *Parser, base: u8, buf: []const u8, suffix: NumberSuffix, tok_i: TokenIndex) Error!Result { - try p.errStr(.pre_c2x_compat, tok_i, "'_BitInt' suffix for literals"); + try p.errStr(.pre_c23_compat, tok_i, "'_BitInt' suffix for literals"); try p.errTok(.bitint_suffix, tok_i); var managed = try big.int.Managed.init(p.gpa); @@ -7937,25 +8147,17 @@ fn bitInt(p: *Parser, base: u8, buf: []const u8, suffix: NumberSuffix, tok_i: To try p.errStr(.bit_int_too_big, tok_i, specifier.str(p.comp.langopts).?); return error.ParsingFailed; } - if (bits_needed > 64) { - return p.todo("_BitInt constants > 64 bits"); - } break :blk @intCast(bits_needed); }; - const val = c.to(u64) catch |e| switch (e) { - error.NegativeIntoUnsigned => unreachable, // unary minus parsed elsewhere; we only see positive integers - error.TargetTooSmall => unreachable, // Validated above but Todo: handle larger _BitInt - }; - var res: Result = .{ - .val = Value.int(val), + .val = try Value.intern(p.comp, .{ .int = .{ .big_int = c } }), .ty = .{ .specifier = .bit_int, .data = .{ .int = .{ .bits = bits_needed, .signedness = suffix.signedness() } }, }, }; - res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = .{ .int = val } }); + res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = undefined }); if (!p.in_macro) try p.value_map.put(res.node, res.val); return res; } @@ -8051,43 +8253,13 @@ fn ppNum(p: *Parser) Error!Result { return error.ParsingFailed; } res.ty = if (res.ty.isUnsignedInt(p.comp)) p.comp.types.intmax.makeIntegerUnsigned() else p.comp.types.intmax; - } else { + } else if (res.val.opt_ref != .none) { + // TODO add complex values try p.value_map.put(res.node, res.val); } return res; } -fn castInt(p: *Parser, val: u64, specs: []const Type.Specifier) Error!Result { - var res: Result = .{ .val = Value.int(val) }; - for (specs) |spec| { - const ty = Type{ .specifier = spec }; - const unsigned = ty.isUnsignedInt(p.comp); - const size = ty.sizeof(p.comp).?; - res.ty = ty; - - if (unsigned) { - switch (size) { - 2 => if (val <= std.math.maxInt(u16)) break, - 4 => if (val <= std.math.maxInt(u32)) break, - 8 => if (val <= std.math.maxInt(u64)) break, - else => unreachable, - } - } else { - switch (size) { - 2 => if (val <= std.math.maxInt(i16)) break, - 4 => if (val <= std.math.maxInt(i32)) break, - 8 => if (val <= std.math.maxInt(i64)) break, - else => unreachable, - } - } - } else { - res.ty = .{ .specifier = .ulong_long }; - } - res.node = try p.addNode(.{ .tag = .int_literal, .ty = res.ty, .data = .{ .int = val } }); - if (!p.in_macro) try p.value_map.put(res.node, res.val); - return res; -} - /// Run a parser function but do not evaluate the result fn parseNoEval(p: *Parser, comptime func: fn (*Parser) Error!Result) Error!Result { const no_eval = p.no_eval; diff --git a/deps/aro/Pragma.zig b/deps/aro/aro/Pragma.zig similarity index 100% rename from deps/aro/Pragma.zig rename to deps/aro/aro/Pragma.zig index da1c53ed4f..279ac5f00a 100644 --- a/deps/aro/Pragma.zig +++ b/deps/aro/aro/Pragma.zig @@ -4,10 +4,10 @@ const Preprocessor = @import("Preprocessor.zig"); const Parser = @import("Parser.zig"); const TokenIndex = @import("Tree.zig").TokenIndex; -const Pragma = @This(); - pub const Error = Compilation.Error || error{ UnknownPragma, StopPreprocessing }; +const Pragma = @This(); + /// Called during Preprocessor.init beforePreprocess: ?*const fn (*Pragma, *Compilation) void = null, diff --git a/deps/aro/Preprocessor.zig b/deps/aro/aro/Preprocessor.zig similarity index 81% rename from deps/aro/Preprocessor.zig rename to deps/aro/aro/Preprocessor.zig index b0e28f9e8c..f28153d6ee 100644 --- a/deps/aro/Preprocessor.zig +++ b/deps/aro/aro/Preprocessor.zig @@ -13,8 +13,7 @@ const Token = @import("Tree.zig").Token; const Attribute = @import("Attribute.zig"); const features = @import("features.zig"); -const Preprocessor = @This(); -const DefineMap = std.StringHashMap(Macro); +const DefineMap = std.StringHashMapUnmanaged(Macro); const RawTokenList = std.ArrayList(RawToken); const max_include_depth = 200; @@ -40,9 +39,9 @@ const Macro = struct { is_builtin: bool = false, /// Location of macro in the source - /// `byte_offset` and `line` are used to define the range of tokens included - /// in the macro. loc: Source.Location, + start: u32, + end: u32, fn eql(a: Macro, b: Macro, pp: *Preprocessor) bool { if (a.tokens.len != b.tokens.len) return false; @@ -63,10 +62,12 @@ const Macro = struct { } }; +const Preprocessor = @This(); + comp: *Compilation, gpa: mem.Allocator, arena: std.heap.ArenaAllocator, -defines: DefineMap, +defines: DefineMap = .{}, tokens: Token.List = .{}, token_buf: RawTokenList, char_buf: std.ArrayList(u8), @@ -92,6 +93,8 @@ preserve_whitespace: bool = false, /// linemarker tokens. Must be .none unless in -E mode (parser does not handle linemarkers) linemarkers: Linemarkers = .none, +pub const parse = Parser.parse; + pub const Linemarkers = enum { /// No linemarker tokens. Required setting if parser will run none, @@ -106,7 +109,6 @@ pub fn init(comp: *Compilation) Preprocessor { .comp = comp, .gpa = comp.gpa, .arena = std.heap.ArenaAllocator.init(comp.gpa), - .defines = DefineMap.init(comp.gpa), .token_buf = RawTokenList.init(comp.gpa), .char_buf = std.ArrayList(u8).init(comp.gpa), .poisoned_identifiers = std.StringHashMap(void).init(comp.gpa), @@ -116,6 +118,14 @@ pub fn init(comp: *Compilation) Preprocessor { return pp; } +/// Initialize Preprocessor with builtin macros. +pub fn initDefault(comp: *Compilation) !Preprocessor { + var pp = init(comp); + errdefer pp.deinit(); + try pp.addBuiltinMacros(); + return pp; +} + const builtin_macros = struct { const args = [1][]const u8{"X"}; @@ -123,6 +133,10 @@ const builtin_macros = struct { .id = .macro_param_has_attribute, .source = .generated, }}; + const has_c_attribute = [1]RawToken{.{ + .id = .macro_param_has_c_attribute, + .source = .generated, + }}; const has_declspec_attribute = [1]RawToken{.{ .id = .macro_param_has_declspec_attribute, .source = .generated, @@ -151,6 +165,10 @@ const builtin_macros = struct { .id = .macro_param_has_include_next, .source = .generated, }}; + const has_embed = [1]RawToken{.{ + .id = .macro_param_has_embed, + .source = .generated, + }}; const is_identifier = [1]RawToken{.{ .id = .macro_param_is_identifier, @@ -177,18 +195,21 @@ const builtin_macros = struct { }; fn addBuiltinMacro(pp: *Preprocessor, name: []const u8, is_func: bool, tokens: []const RawToken) !void { - try pp.defines.putNoClobber(name, .{ + try pp.defines.putNoClobber(pp.gpa, name, .{ .params = &builtin_macros.args, .tokens = tokens, .var_args = false, .is_func = is_func, .loc = .{ .id = .generated }, + .start = 0, + .end = 0, .is_builtin = true, }); } pub fn addBuiltinMacros(pp: *Preprocessor) !void { try pp.addBuiltinMacro("__has_attribute", true, &builtin_macros.has_attribute); + try pp.addBuiltinMacro("__has_c_attribute", true, &builtin_macros.has_c_attribute); try pp.addBuiltinMacro("__has_declspec_attribute", true, &builtin_macros.has_declspec_attribute); try pp.addBuiltinMacro("__has_warning", true, &builtin_macros.has_warning); try pp.addBuiltinMacro("__has_feature", true, &builtin_macros.has_feature); @@ -196,6 +217,7 @@ pub fn addBuiltinMacros(pp: *Preprocessor) !void { try pp.addBuiltinMacro("__has_builtin", true, &builtin_macros.has_builtin); try pp.addBuiltinMacro("__has_include", true, &builtin_macros.has_include); try pp.addBuiltinMacro("__has_include_next", true, &builtin_macros.has_include_next); + try pp.addBuiltinMacro("__has_embed", true, &builtin_macros.has_embed); try pp.addBuiltinMacro("__is_identifier", true, &builtin_macros.is_identifier); try pp.addBuiltinMacro("_Pragma", true, &builtin_macros.pragma_operator); @@ -205,7 +227,7 @@ pub fn addBuiltinMacros(pp: *Preprocessor) !void { } pub fn deinit(pp: *Preprocessor) void { - pp.defines.deinit(); + pp.defines.deinit(pp.gpa); for (pp.tokens.items(.expansion_locs)) |loc| Token.free(loc, pp.gpa); pp.tokens.deinit(pp.gpa); pp.arena.deinit(); @@ -216,6 +238,20 @@ pub fn deinit(pp: *Preprocessor) void { pp.top_expansion_buf.deinit(); } +/// Preprocess a compilation unit of sources into a parsable list of tokens. +pub fn preprocessSources(pp: *Preprocessor, sources: []const Source) Error!void { + assert(sources.len > 1); + const first = sources[0]; + try pp.addIncludeStart(first); + for (sources[1..]) |header| { + try pp.addIncludeStart(header); + _ = try pp.preprocess(header); + } + try pp.addIncludeResume(first.id, 0, 0); + const eof = try pp.preprocess(first); + try pp.tokens.append(pp.comp.gpa, eof); +} + /// Preprocess a source file, returns eof token. pub fn preprocess(pp: *Preprocessor, source: Source) Error!Token { const eof = pp.preprocessExtra(source) catch |er| switch (er) { @@ -242,7 +278,7 @@ pub fn tokenize(pp: *Preprocessor, source: Source) Error!Token { try pp.tokens.ensureTotalCapacity(pp.gpa, pp.tokens.len + estimated_token_count); while (true) { - var tok = tokenizer.next(); + const tok = tokenizer.next(); if (tok.id == .eof) return tokFromRaw(tok); try pp.tokens.append(pp.gpa, tokFromRaw(tok)); } @@ -333,9 +369,9 @@ fn preprocessExtra(pp: *Preprocessor, source: Source) MacroError!Token { } try pp.stringify(pp.top_expansion_buf.items); const slice = pp.char_buf.items[char_top + 1 .. pp.char_buf.items.len - 2]; - const duped = try pp.comp.diag.arena.allocator().dupe(u8, slice); + const duped = try pp.comp.diagnostics.arena.allocator().dupe(u8, slice); - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = if (directive.id == .keyword_error) .error_directive else .warning_directive, .loc = .{ .id = tok.source, .byte_offset = directive.start, .line = directive.line }, .extra = .{ .str = duped }, @@ -557,12 +593,12 @@ fn preprocessExtra(pp: *Preprocessor, source: Source) MacroError!Token { continue; }, .keyword_include_next => { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .include_next, .loc = .{ .id = tok.source, .byte_offset = directive.start, .line = directive.line }, }, &.{}); if (pp.include_depth == 0) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .include_next_outside_header, .loc = .{ .id = tok.source, .byte_offset = directive.start, .line = directive.line }, }, &.{}); @@ -679,7 +715,7 @@ fn tokFromRaw(raw: RawToken) Token { } fn err(pp: *Preprocessor, raw: RawToken, tag: Diagnostics.Tag) !void { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = tag, .loc = .{ .id = raw.source, @@ -689,10 +725,26 @@ fn err(pp: *Preprocessor, raw: RawToken, tag: Diagnostics.Tag) !void { }, &.{}); } +fn errStr(pp: *Preprocessor, tok: Token, tag: Diagnostics.Tag, str: []const u8) !void { + try pp.comp.addDiagnostic(.{ + .tag = tag, + .loc = tok.loc, + .extra = .{ .str = str }, + }, tok.expansionSlice()); +} + fn fatal(pp: *Preprocessor, raw: RawToken, comptime fmt: []const u8, args: anytype) Compilation.Error { - const source = pp.comp.getSource(raw.source); - const line_col = source.lineCol(.{ .id = raw.source, .line = raw.line, .byte_offset = raw.start }); - return pp.comp.diag.fatal(source.path, line_col.line, raw.line, line_col.col, fmt, args); + try pp.comp.diagnostics.list.append(pp.gpa, .{ + .tag = .cli_error, + .kind = .@"fatal error", + .extra = .{ .str = try std.fmt.allocPrint(pp.comp.diagnostics.arena.allocator(), fmt, args) }, + .loc = .{ + .id = raw.source, + .byte_offset = raw.start, + .line = raw.line, + }, + }); + return error.FatalError; } fn verboseLog(pp: *Preprocessor, raw: RawToken, comptime fmt: []const u8, args: anytype) void { @@ -745,7 +797,7 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { pp.top_expansion_buf.items.len = 0; const eof = while (true) { - var tok = tokenizer.next(); + const tok = tokenizer.next(); switch (tok.id) { .nl, .eof => break tok, .whitespace => if (pp.top_expansion_buf.items.len == 0) continue, @@ -760,7 +812,7 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { for (pp.top_expansion_buf.items) |tok| { if (tok.id == .macro_ws) continue; if (!tok.id.validPreprocessorExprStart()) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .invalid_preproc_expr_start, .loc = tok.loc, }, tok.expansionSlice()); @@ -785,7 +837,7 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { .string_literal_utf_32, .string_literal_wide, => { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .string_literal_in_pp_expr, .loc = tok.loc, }, tok.expansionSlice()); @@ -815,7 +867,7 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { .arrow, .period, => { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .invalid_preproc_operator, .loc = tok.loc, }, tok.expansionSlice()); @@ -829,20 +881,12 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { const tokens_consumed = try pp.handleKeywordDefined(&tok, items[i + 1 ..], eof); i += tokens_consumed; } else { - try pp.comp.diag.add(.{ - .tag = .undefined_macro, - .loc = tok.loc, - .extra = .{ .str = pp.expandedSlice(tok) }, - }, tok.expansionSlice()); + try pp.errStr(tok, .undefined_macro, pp.expandedSlice(tok)); if (i + 1 < pp.top_expansion_buf.items.len and pp.top_expansion_buf.items[i + 1].id == .l_paren) { - try pp.comp.diag.add(.{ - .tag = .fn_macro_undefined, - .loc = tok.loc, - .extra = .{ .str = pp.expandedSlice(tok) }, - }, tok.expansionSlice()); + try pp.errStr(tok, .fn_macro_undefined, pp.expandedSlice(tok)); return false; } @@ -866,9 +910,9 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { .tok_i = @intCast(start), .arena = pp.arena.allocator(), .in_macro = true, + .strings = std.ArrayList(u8).init(pp.comp.gpa), + .data = undefined, - .strings = undefined, - .retained_strings = undefined, .value_map = undefined, .labels = undefined, .decl_buf = undefined, @@ -880,6 +924,7 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool { .field_attr_buf = undefined, .string_ids = undefined, }; + defer parser.strings.deinit(); return parser.macroExpr(); } @@ -896,11 +941,7 @@ fn handleKeywordDefined(pp: *Preprocessor, macro_tok: *Token, tokens: []const To .l_paren => {}, else => { if (!first.id.isMacroIdentifier()) { - try pp.comp.diag.add(.{ - .tag = .macro_name_must_be_identifier, - .loc = first.loc, - .extra = .{ .str = pp.expandedSlice(first) }, - }, first.expansionSlice()); + try pp.errStr(first, .macro_name_must_be_identifier, pp.expandedSlice(first)); } macro_tok.id = if (pp.defines.contains(pp.expandedSlice(first))) .one else .zero; return it.i; @@ -911,7 +952,7 @@ fn handleKeywordDefined(pp: *Preprocessor, macro_tok: *Token, tokens: []const To return it.i; }; if (!second.id.isMacroIdentifier()) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .macro_name_must_be_identifier, .loc = second.loc, }, second.expansionSlice()); @@ -922,11 +963,11 @@ fn handleKeywordDefined(pp: *Preprocessor, macro_tok: *Token, tokens: []const To const last = it.nextNoWS(); if (last == null or last.?.id != .r_paren) { const tok = last orelse tokFromRaw(eof); - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .closing_paren, .loc = tok.loc, }, tok.expansionSlice()); - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .to_match_paren, .loc = first.loc, }, first.expansionSlice()); @@ -1076,21 +1117,24 @@ fn expandObjMacro(pp: *Preprocessor, simple_macro: *const Macro) Error!ExpandBuf .macro_file => { const start = pp.comp.generated_buf.items.len; const source = pp.comp.getSource(pp.expansion_source_loc.id); - try pp.comp.generated_buf.writer().print("\"{s}\"\n", .{source.path}); + const w = pp.comp.generated_buf.writer(pp.gpa); + try w.print("\"{s}\"\n", .{source.path}); buf.appendAssumeCapacity(try pp.makeGeneratedToken(start, .string_literal, tok)); }, .macro_line => { const start = pp.comp.generated_buf.items.len; const source = pp.comp.getSource(pp.expansion_source_loc.id); - try pp.comp.generated_buf.writer().print("{d}\n", .{source.physicalLine(pp.expansion_source_loc)}); + const w = pp.comp.generated_buf.writer(pp.gpa); + try w.print("{d}\n", .{source.physicalLine(pp.expansion_source_loc)}); buf.appendAssumeCapacity(try pp.makeGeneratedToken(start, .pp_num, tok)); }, .macro_counter => { defer pp.counter += 1; const start = pp.comp.generated_buf.items.len; - try pp.comp.generated_buf.writer().print("{d}\n", .{pp.counter}); + const w = pp.comp.generated_buf.writer(pp.gpa); + try w.print("{d}\n", .{pp.counter}); buf.appendAssumeCapacity(try pp.makeGeneratedToken(start, .pp_num, tok)); }, @@ -1138,7 +1182,7 @@ fn pragmaOperator(pp: *Preprocessor, arg_tok: Token, operator_loc: Source.Locati pp.char_buf.appendAssumeCapacity('\n'); const start = pp.comp.generated_buf.items.len; - try pp.comp.generated_buf.appendSlice(pp.char_buf.items); + try pp.comp.generated_buf.appendSlice(pp.gpa, pp.char_buf.items); var tmp_tokenizer = Tokenizer{ .buf = pp.comp.generated_buf.items, .comp = pp.comp, @@ -1217,7 +1261,7 @@ fn stringify(pp: *Preprocessor, tokens: []const Token) !void { } if (pp.char_buf.items[pp.char_buf.items.len - 1] == '\\') { const tok = tokens[tokens.len - 1]; - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .invalid_pp_stringify_escape, .loc = tok.loc, }, tok.expansionSlice()); @@ -1226,7 +1270,7 @@ fn stringify(pp: *Preprocessor, tokens: []const Token) !void { try pp.char_buf.appendSlice("\"\n"); } -fn reconstructIncludeString(pp: *Preprocessor, param_toks: []const Token) !?[]const u8 { +fn reconstructIncludeString(pp: *Preprocessor, param_toks: []const Token, embed_args: ?*[]const Token) !?[]const u8 { const char_top = pp.char_buf.items.len; defer pp.char_buf.items.len = char_top; @@ -1238,29 +1282,35 @@ fn reconstructIncludeString(pp: *Preprocessor, param_toks: []const Token) !?[]co const params = param_toks[begin..end]; if (params.len == 0) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .expected_filename, .loc = param_toks[0].loc, }, param_toks[0].expansionSlice()); return null; } // no string pasting - if (params[0].id == .string_literal and params.len > 1) { - try pp.comp.diag.add(.{ + if (embed_args == null and params[0].id == .string_literal and params.len > 1) { + try pp.comp.addDiagnostic(.{ .tag = .closing_paren, .loc = params[1].loc, }, params[1].expansionSlice()); return null; } - for (params) |tok| { + for (params, 0..) |tok, i| { const str = pp.expandedSliceExtra(tok, .preserve_macro_ws); try pp.char_buf.appendSlice(str); + if (embed_args) |some| { + if ((i == 0 and tok.id == .string_literal) or tok.id == .angle_bracket_right) { + some.* = params[i + 1 ..]; + break; + } + } } const include_str = pp.char_buf.items[char_top..]; if (include_str.len < 3) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .empty_filename, .loc = params[0].loc, }, params[0].expansionSlice()); @@ -1272,11 +1322,11 @@ fn reconstructIncludeString(pp: *Preprocessor, param_toks: []const Token) !?[]co if (include_str[include_str.len - 1] != '>') { // Ugly hack to find out where the '>' should go, since we don't have the closing ')' location const start = params[0].loc; - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .header_str_closing, .loc = .{ .id = start.id, .byte_offset = start.byte_offset + @as(u32, @intCast(include_str.len)) + 1, .line = start.line }, }, params[0].expansionSlice()); - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .header_str_match, .loc = params[0].loc, }, params[0].expansionSlice()); @@ -1286,7 +1336,7 @@ fn reconstructIncludeString(pp: *Preprocessor, param_toks: []const Token) !?[]co }, '"' => return include_str, else => { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .expected_filename, .loc = params[0].loc, }, params[0].expansionSlice()); @@ -1316,7 +1366,7 @@ fn handleBuiltinMacro(pp: *Preprocessor, builtin: RawToken.Id, param_toks: []con } if (identifier == null and invalid == null) invalid = .{ .id = .eof, .loc = src_loc }; if (invalid) |some| { - try pp.comp.diag.add( + try pp.comp.addDiagnostic( .{ .tag = .feature_check_requires_identifier, .loc = some.loc }, some.expansionSlice(), ); @@ -1341,21 +1391,13 @@ fn handleBuiltinMacro(pp: *Preprocessor, builtin: RawToken.Id, param_toks: []con .macro_param_has_warning => { const actual_param = pp.pasteStringsUnsafe(param_toks) catch |er| switch (er) { error.ExpectedStringLiteral => { - try pp.comp.diag.add(.{ - .tag = .expected_str_literal_in, - .loc = param_toks[0].loc, - .extra = .{ .str = "__has_warning" }, - }, param_toks[0].expansionSlice()); + try pp.errStr(param_toks[0], .expected_str_literal_in, "__has_warning"); return false; }, else => |e| return e, }; if (!mem.startsWith(u8, actual_param, "-W")) { - try pp.comp.diag.add(.{ - .tag = .malformed_warning_check, - .loc = param_toks[0].loc, - .extra = .{ .str = "__has_warning" }, - }, param_toks[0].expansionSlice()); + try pp.errStr(param_toks[0], .malformed_warning_check, "__has_warning"); return false; } const warning_name = actual_param[2..]; @@ -1373,7 +1415,7 @@ fn handleBuiltinMacro(pp: *Preprocessor, builtin: RawToken.Id, param_toks: []con }; if (identifier == null and invalid == null) invalid = .{ .id = .eof, .loc = src_loc }; if (invalid) |some| { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .missing_tok_builtin, .loc = some.loc, .extra = .{ .tok_id_expected = .r_paren }, @@ -1385,7 +1427,7 @@ fn handleBuiltinMacro(pp: *Preprocessor, builtin: RawToken.Id, param_toks: []con return id == .identifier or id == .extended_identifier; }, .macro_param_has_include, .macro_param_has_include_next => { - const include_str = (try pp.reconstructIncludeString(param_toks)) orelse return false; + const include_str = (try pp.reconstructIncludeString(param_toks, null)) orelse return false; const include_type: Compilation.IncludeType = switch (include_str[0]) { '"' => .quotes, '<' => .angle_brackets, @@ -1394,7 +1436,7 @@ fn handleBuiltinMacro(pp: *Preprocessor, builtin: RawToken.Id, param_toks: []con const filename = include_str[1 .. include_str.len - 1]; if (builtin == .macro_param_has_include or pp.include_depth == 0) { if (builtin == .macro_param_has_include_next) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .include_next_outside_header, .loc = src_loc, }, &.{}); @@ -1445,6 +1487,9 @@ fn expandFuncMacro( const raw_next = func_macro.tokens[tok_i + 1]; tok_i += 1; + var va_opt_buf = ExpandBuf.init(pp.gpa); + defer va_opt_buf.deinit(); + const next = switch (raw_next.id) { .macro_ws => continue, .hash_hash => continue, @@ -1457,6 +1502,11 @@ fn expandFuncMacro( else &[1]Token{tokFromRaw(.{ .id = .placemarker, .source = .generated })}, .keyword_va_args => variable_arguments.items, + .keyword_va_opt => blk: { + try pp.expandVaOpt(&va_opt_buf, raw_next, variable_arguments.items.len != 0); + if (va_opt_buf.items.len == 0) break; + break :blk va_opt_buf.items; + }, else => &[1]Token{tokFromRaw(raw_next)}, }; @@ -1480,6 +1530,9 @@ fn expandFuncMacro( const raw_loc = Source.Location{ .id = raw.source, .byte_offset = raw.start, .line = raw.line }; try bufCopyTokens(&buf, expanded_variable_arguments.items, &.{raw_loc}); }, + .keyword_va_opt => { + try pp.expandVaOpt(&buf, raw, variable_arguments.items.len != 0); + }, .stringify_param, .stringify_va_args => { const arg = if (raw.id == .stringify_va_args) variable_arguments.items @@ -1490,7 +1543,7 @@ fn expandFuncMacro( try pp.stringify(arg); const start = pp.comp.generated_buf.items.len; - try pp.comp.generated_buf.appendSlice(pp.char_buf.items); + try pp.comp.generated_buf.appendSlice(pp.gpa, pp.char_buf.items); try buf.append(try pp.makeGeneratedToken(start, .string_literal, tokFromRaw(raw))); }, @@ -1507,11 +1560,221 @@ fn expandFuncMacro( const arg = expanded_args.items[0]; const result = if (arg.len == 0) blk: { const extra = Diagnostics.Message.Extra{ .arguments = .{ .expected = 1, .actual = 0 } }; - try pp.comp.diag.add(.{ .tag = .expected_arguments, .loc = loc, .extra = extra }, &.{}); + try pp.comp.addDiagnostic(.{ .tag = .expected_arguments, .loc = loc, .extra = extra }, &.{}); break :blk false; } else try pp.handleBuiltinMacro(raw.id, arg, loc); const start = pp.comp.generated_buf.items.len; - try pp.comp.generated_buf.writer().print("{}\n", .{@intFromBool(result)}); + const w = pp.comp.generated_buf.writer(pp.gpa); + try w.print("{}\n", .{@intFromBool(result)}); + try buf.append(try pp.makeGeneratedToken(start, .pp_num, tokFromRaw(raw))); + }, + .macro_param_has_c_attribute => { + const arg = expanded_args.items[0]; + const not_found = "0\n"; + const result = if (arg.len == 0) blk: { + const extra = Diagnostics.Message.Extra{ .arguments = .{ .expected = 1, .actual = 0 } }; + try pp.comp.addDiagnostic(.{ .tag = .expected_arguments, .loc = loc, .extra = extra }, &.{}); + break :blk not_found; + } else res: { + var invalid: ?Token = null; + var vendor_ident: ?Token = null; + var colon_colon: ?Token = null; + var attr_ident: ?Token = null; + for (arg) |tok| { + if (tok.id == .macro_ws) continue; + if (tok.id == .comment) continue; + if (tok.id == .colon_colon) { + if (colon_colon != null or attr_ident == null) { + invalid = tok; + break; + } + vendor_ident = attr_ident; + attr_ident = null; + colon_colon = tok; + continue; + } + if (!tok.id.isMacroIdentifier()) { + invalid = tok; + break; + } + if (attr_ident) |_| { + invalid = tok; + break; + } else attr_ident = tok; + } + if (vendor_ident != null and attr_ident == null) { + invalid = vendor_ident; + } else if (attr_ident == null and invalid == null) { + invalid = .{ .id = .eof, .loc = loc }; + } + if (invalid) |some| { + try pp.comp.addDiagnostic( + .{ .tag = .feature_check_requires_identifier, .loc = some.loc }, + some.expansionSlice(), + ); + break :res not_found; + } + if (vendor_ident) |some| { + const vendor_str = pp.expandedSlice(some); + const attr_str = pp.expandedSlice(attr_ident.?); + const exists = Attribute.fromString(.gnu, vendor_str, attr_str) != null; + + const start = pp.comp.generated_buf.items.len; + try pp.comp.generated_buf.appendSlice(pp.gpa, if (exists) "1\n" else "0\n"); + try buf.append(try pp.makeGeneratedToken(start, .pp_num, tokFromRaw(raw))); + continue; + } + if (!pp.comp.langopts.standard.atLeast(.c23)) break :res not_found; + + const attrs = std.ComptimeStringMap([]const u8, .{ + .{ "deprecated", "201904L\n" }, + .{ "fallthrough", "201904L\n" }, + .{ "maybe_unused", "201904L\n" }, + .{ "nodiscard", "202003L\n" }, + .{ "noreturn", "202202L\n" }, + .{ "_Noreturn", "202202L\n" }, + .{ "unsequenced", "202207L\n" }, + .{ "reproducible", "202207L\n" }, + }); + + const attr_str = Attribute.normalize(pp.expandedSlice(attr_ident.?)); + break :res attrs.get(attr_str) orelse not_found; + }; + const start = pp.comp.generated_buf.items.len; + try pp.comp.generated_buf.appendSlice(pp.gpa, result); + try buf.append(try pp.makeGeneratedToken(start, .pp_num, tokFromRaw(raw))); + }, + .macro_param_has_embed => { + const arg = expanded_args.items[0]; + const not_found = "0\n"; + const result = if (arg.len == 0) blk: { + const extra = Diagnostics.Message.Extra{ .arguments = .{ .expected = 1, .actual = 0 } }; + try pp.comp.addDiagnostic(.{ .tag = .expected_arguments, .loc = loc, .extra = extra }, &.{}); + break :blk not_found; + } else res: { + var embed_args: []const Token = &.{}; + const include_str = (try pp.reconstructIncludeString(arg, &embed_args)) orelse + break :res not_found; + + var prev = tokFromRaw(raw); + prev.id = .eof; + var it: struct { + i: u32 = 0, + slice: []const Token, + prev: Token, + fn next(it: *@This()) Token { + while (it.i < it.slice.len) switch (it.slice[it.i].id) { + .macro_ws, .whitespace => it.i += 1, + else => break, + } else return it.prev; + defer it.i += 1; + it.prev = it.slice[it.i]; + it.prev.id = .eof; + return it.slice[it.i]; + } + } = .{ .slice = embed_args, .prev = prev }; + + while (true) { + const param_first = it.next(); + if (param_first.id == .eof) break; + if (param_first.id != .identifier) { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_param, .loc = param_first.loc }, + param_first.expansionSlice(), + ); + continue; + } + + const char_top = pp.char_buf.items.len; + defer pp.char_buf.items.len = char_top; + + const maybe_colon = it.next(); + const param = switch (maybe_colon.id) { + .colon_colon => blk: { + // vendor::param + const param = it.next(); + if (param.id != .identifier) { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_param, .loc = param.loc }, + param.expansionSlice(), + ); + continue; + } + const l_paren = it.next(); + if (l_paren.id != .l_paren) { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_param, .loc = l_paren.loc }, + l_paren.expansionSlice(), + ); + continue; + } + break :blk "doesn't exist"; + }, + .l_paren => Attribute.normalize(pp.expandedSlice(param_first)), + else => { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_param, .loc = maybe_colon.loc }, + maybe_colon.expansionSlice(), + ); + continue; + }, + }; + + var arg_count: u32 = 0; + var first_arg: Token = undefined; + while (true) { + const next = it.next(); + if (next.id == .eof) { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_limit, .loc = param_first.loc }, + param_first.expansionSlice(), + ); + break; + } + if (next.id == .r_paren) break; + arg_count += 1; + if (arg_count == 1) first_arg = next; + } + + if (std.mem.eql(u8, param, "limit")) { + if (arg_count != 1) { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_limit, .loc = param_first.loc }, + param_first.expansionSlice(), + ); + continue; + } + if (first_arg.id != .pp_num) { + try pp.comp.addDiagnostic( + .{ .tag = .malformed_embed_limit, .loc = param_first.loc }, + param_first.expansionSlice(), + ); + continue; + } + _ = std.fmt.parseInt(u32, pp.expandedSlice(first_arg), 10) catch { + break :res not_found; + }; + } else if (!std.mem.eql(u8, param, "prefix") and !std.mem.eql(u8, param, "suffix") and + !std.mem.eql(u8, param, "if_empty")) + { + break :res not_found; + } + } + + const include_type: Compilation.IncludeType = switch (include_str[0]) { + '"' => .quotes, + '<' => .angle_brackets, + else => unreachable, + }; + const filename = include_str[1 .. include_str.len - 1]; + const contents = (try pp.comp.findEmbed(filename, arg[0].loc.id, include_type, 1)) orelse + break :res not_found; + + defer pp.comp.gpa.free(contents); + break :res if (contents.len != 0) "1\n" else "2\n"; + }; + const start = pp.comp.generated_buf.items.len; + try pp.comp.generated_buf.appendSlice(pp.comp.gpa, result); try buf.append(try pp.makeGeneratedToken(start, .pp_num, tokFromRaw(raw))); }, .macro_param_pragma_operator => { @@ -1533,7 +1796,7 @@ fn expandFuncMacro( }, }; if (string == null and invalid == null) invalid = .{ .loc = loc, .id = .eof }; - if (invalid) |some| try pp.comp.diag.add( + if (invalid) |some| try pp.comp.addDiagnostic( .{ .tag = .pragma_operator_string_literal, .loc = some.loc }, some.expansionSlice(), ) else try pp.pragmaOperator(string.?, loc); @@ -1588,16 +1851,37 @@ fn expandFuncMacro( return buf; } +fn expandVaOpt( + pp: *Preprocessor, + buf: *ExpandBuf, + raw: RawToken, + should_expand: bool, +) !void { + if (!should_expand) return; + + const source = pp.comp.getSource(raw.source); + var tokenizer: Tokenizer = .{ + .buf = source.buf, + .index = raw.start, + .source = raw.source, + .comp = pp.comp, + .line = raw.line, + }; + while (tokenizer.index < raw.end) { + const tok = tokenizer.next(); + try buf.append(tokFromRaw(tok)); + } +} + fn shouldExpand(tok: Token, macro: *Macro) bool { - // macro.loc.line contains the macros end index if (tok.loc.id == macro.loc.id and - tok.loc.byte_offset >= macro.loc.byte_offset and - tok.loc.byte_offset <= macro.loc.line) + tok.loc.byte_offset >= macro.start and + tok.loc.byte_offset <= macro.end) return false; for (tok.expansionSlice()) |loc| { if (loc.id == macro.loc.id and - loc.byte_offset >= macro.loc.byte_offset and - loc.byte_offset <= macro.loc.line) + loc.byte_offset >= macro.start and + loc.byte_offset <= macro.end) return false; } if (tok.flags.expansion_disabled) return false; @@ -1665,11 +1949,7 @@ fn collectMacroFuncArguments( .l_paren => break, else => { if (is_builtin) { - try pp.comp.diag.add(.{ - .tag = .missing_lparen_after_builtin, - .loc = name_tok.loc, - .extra = .{ .str = pp.expandedSlice(name_tok) }, - }, tok.expansionSlice()); + try pp.errStr(name_tok, .missing_lparen_after_builtin, pp.expandedSlice(name_tok)); } // Not a macro function call, go over normal identifier, rewind tokenizer.* = saved_tokenizer; @@ -1726,7 +2006,7 @@ fn collectMacroFuncArguments( try args.append(owned); } tokenizer.* = saved_tokenizer; - try pp.comp.diag.add( + try pp.comp.addDiagnostic( .{ .tag = .unterminated_macro_arg_list, .loc = name_tok.loc }, name_tok.expansionSlice(), ); @@ -1870,7 +2150,7 @@ fn expandMacroExhaustive( .arguments = .{ .expected = @intCast(macro.params.len), .actual = args_count }, }; if (macro.var_args and args_count < macro.params.len) { - try pp.comp.diag.add( + try pp.comp.addDiagnostic( .{ .tag = .expected_at_least_arguments, .loc = buf.items[idx].loc, .extra = extra }, buf.items[idx].expansionSlice(), ); @@ -1879,7 +2159,7 @@ fn expandMacroExhaustive( continue; } if (!macro.var_args and args_count != macro.params.len) { - try pp.comp.diag.add( + try pp.comp.addDiagnostic( .{ .tag = .expected_arguments, .loc = buf.items[idx].loc, .extra = extra }, buf.items[idx].expansionSlice(), ); @@ -1931,7 +2211,7 @@ fn expandMacroExhaustive( try tok.addExpansionLocation(pp.gpa, &.{macro_tok.loc}); try tok.addExpansionLocation(pp.gpa, macro_expansion_locs); if (tok.id == .keyword_defined and eval_ctx == .expr) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .expansion_to_defined, .loc = tok.loc, }, tok.expansionSlice()); @@ -2051,7 +2331,7 @@ fn pasteTokens(pp: *Preprocessor, lhs_toks: *ExpandBuf, rhs_toks: []const Token) const start = pp.comp.generated_buf.items.len; const end = start + pp.expandedSlice(lhs).len + pp.expandedSlice(rhs).len; - try pp.comp.generated_buf.ensureTotalCapacity(end + 1); // +1 for a newline + try pp.comp.generated_buf.ensureTotalCapacity(pp.gpa, end + 1); // +1 for a newline // We cannot use the same slices here since they might be invalidated by `ensureCapacity` pp.comp.generated_buf.appendSliceAssumeCapacity(pp.expandedSlice(lhs)); pp.comp.generated_buf.appendSliceAssumeCapacity(pp.expandedSlice(rhs)); @@ -2073,14 +2353,11 @@ fn pasteTokens(pp: *Preprocessor, lhs_toks: *ExpandBuf, rhs_toks: []const Token) try lhs_toks.append(try pp.makeGeneratedToken(start, pasted_id, lhs)); if (next.id != .nl and next.id != .eof) { - try pp.comp.diag.add(.{ - .tag = .pasting_formed_invalid, - .loc = lhs.loc, - .extra = .{ .str = try pp.comp.diag.arena.allocator().dupe( - u8, - pp.comp.generated_buf.items[start..end], - ) }, - }, lhs.expansionSlice()); + try pp.errStr( + lhs, + .pasting_formed_invalid, + try pp.comp.diagnostics.arena.allocator().dupe(u8, pp.comp.generated_buf.items[start..end]), + ); try lhs_toks.append(tokFromRaw(next)); } @@ -2102,14 +2379,21 @@ fn makeGeneratedToken(pp: *Preprocessor, start: usize, id: Token.Id, source: Tok /// Defines a new macro and warns if it is a duplicate fn defineMacro(pp: *Preprocessor, name_tok: RawToken, macro: Macro) Error!void { const name_str = pp.tokSlice(name_tok); - const gop = try pp.defines.getOrPut(name_str); + const gop = try pp.defines.getOrPut(pp.gpa, name_str); if (gop.found_existing and !gop.value_ptr.eql(macro, pp)) { - try pp.comp.diag.add(.{ - .tag = if (gop.value_ptr.is_builtin) .builtin_macro_redefined else .macro_redefined, + const tag: Diagnostics.Tag = if (gop.value_ptr.is_builtin) .builtin_macro_redefined else .macro_redefined; + const start = pp.comp.diagnostics.list.items.len; + try pp.comp.addDiagnostic(.{ + .tag = tag, .loc = .{ .id = name_tok.source, .byte_offset = name_tok.start, .line = name_tok.line }, .extra = .{ .str = name_str }, }, &.{}); - // TODO add a previous definition note + if (!gop.value_ptr.is_builtin and pp.comp.diagnostics.list.items.len != start) { + try pp.comp.addDiagnostic(.{ + .tag = .previous_definition, + .loc = gop.value_ptr.loc, + }, &.{}); + } } if (pp.verbose) { pp.verboseLog(name_tok, "macro {s} defined", .{name_str}); @@ -2142,10 +2426,12 @@ fn define(pp: *Preprocessor, tokenizer: *Tokenizer) Error!void { var first = tokenizer.next(); switch (first.id) { .nl, .eof => return pp.defineMacro(macro_name, .{ - .params = undefined, - .tokens = undefined, + .params = &.{}, + .tokens = &.{}, .var_args = false, - .loc = undefined, + .loc = tokFromRaw(macro_name).loc, + .start = 0, + .end = 0, .is_func = false, }), .whitespace => first = tokenizer.next(), @@ -2209,11 +2495,9 @@ fn define(pp: *Preprocessor, tokenizer: *Tokenizer) Error!void { const list = try pp.arena.allocator().dupe(RawToken, pp.token_buf.items); try pp.defineMacro(macro_name, .{ - .loc = .{ - .id = macro_name.source, - .byte_offset = first.start, - .line = end_index, - }, + .loc = tokFromRaw(macro_name).loc, + .start = first.start, + .end = end_index, .tokens = list, .params = undefined, .is_func = false, @@ -2349,6 +2633,33 @@ fn defineFn(pp: *Preprocessor, tokenizer: *Tokenizer, macro_name: RawToken, l_pa } if (var_args and tok.id == .keyword_va_args) { // do nothing + } else if (var_args and tok.id == .keyword_va_opt) { + const opt_l_paren = tokenizer.next(); + if (opt_l_paren.id != .l_paren) { + try pp.err(opt_l_paren, .va_opt_lparen); + return skipToNl(tokenizer); + } + tok.start = opt_l_paren.end; + + var parens: u32 = 0; + while (true) { + const opt_tok = tokenizer.next(); + switch (opt_tok.id) { + .l_paren => parens += 1, + .r_paren => if (parens == 0) { + break; + } else { + parens -= 1; + }, + .nl, .eof => { + try pp.err(opt_tok, .va_opt_rparen); + try pp.err(opt_l_paren, .to_match_paren); + return skipToNl(tokenizer); + }, + .whitespace => {}, + else => tok.end = opt_tok.end, + } + } } else if (tok.id.isMacroIdentifier()) { tok.id.simplifyMacroKeyword(); const s = pp.tokSlice(tok); @@ -2377,18 +2688,18 @@ fn defineFn(pp: *Preprocessor, tokenizer: *Tokenizer, macro_name: RawToken, l_pa .params = param_list, .var_args = var_args or gnu_var_args.len != 0, .tokens = token_list, - .loc = .{ - .id = macro_name.source, - .byte_offset = start_index, - .line = end_index, - }, + .loc = tokFromRaw(macro_name).loc, + .start = start_index, + .end = end_index, }); } /// Handle an #embed directive +/// embedDirective : ("FILENAME" | ) embedParam* +/// embedParam : IDENTIFIER (:: IDENTIFIER)? '(' ')' fn embed(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!void { const first = tokenizer.nextNoWS(); - const filename_tok = pp.findIncludeFilenameToken(first, tokenizer, .expect_nl_eof) catch |er| switch (er) { + const filename_tok = pp.findIncludeFilenameToken(first, tokenizer, .ignore_trailing_tokens) catch |er| switch (er) { error.InvalidInclude => return, else => |e| return e, }; @@ -2406,17 +2717,142 @@ fn embed(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!void { else => unreachable, }; - const embed_bytes = (try pp.comp.findEmbed(filename, first.source, include_type)) orelse return pp.fatal(first, "'{s}' not found", .{filename}); + // Index into `token_buf` + const Range = struct { + start: u32, + end: u32, + + fn expand(opt_range: ?@This(), pp_: *Preprocessor, tokenizer_: *Tokenizer) !void { + const range = opt_range orelse return; + const slice = pp_.token_buf.items[range.start..range.end]; + for (slice) |tok| { + try pp_.expandMacro(tokenizer_, tok); + } + } + }; + pp.token_buf.items.len = 0; + + var limit: ?u32 = null; + var prefix: ?Range = null; + var suffix: ?Range = null; + var if_empty: ?Range = null; + while (true) { + const param_first = tokenizer.nextNoWS(); + switch (param_first.id) { + .nl, .eof => break, + .identifier => {}, + else => { + try pp.err(param_first, .malformed_embed_param); + continue; + }, + } + + const char_top = pp.char_buf.items.len; + defer pp.char_buf.items.len = char_top; + + const maybe_colon = tokenizer.colonColon(); + const param = switch (maybe_colon.id) { + .colon_colon => blk: { + // vendor::param + const param = tokenizer.nextNoWS(); + if (param.id != .identifier) { + try pp.err(param, .malformed_embed_param); + continue; + } + const l_paren = tokenizer.nextNoWS(); + if (l_paren.id != .l_paren) { + try pp.err(l_paren, .malformed_embed_param); + continue; + } + try pp.char_buf.appendSlice(Attribute.normalize(pp.tokSlice(param_first))); + try pp.char_buf.appendSlice("::"); + try pp.char_buf.appendSlice(Attribute.normalize(pp.tokSlice(param))); + break :blk pp.char_buf.items; + }, + .l_paren => Attribute.normalize(pp.tokSlice(param_first)), + else => { + try pp.err(maybe_colon, .malformed_embed_param); + continue; + }, + }; + + const start: u32 = @intCast(pp.token_buf.items.len); + while (true) { + const next = tokenizer.nextNoWS(); + if (next.id == .r_paren) break; + if (next.id == .eof) { + try pp.err(maybe_colon, .malformed_embed_param); + break; + } + try pp.token_buf.append(next); + } + const end: u32 = @intCast(pp.token_buf.items.len); + + if (std.mem.eql(u8, param, "limit")) { + if (limit != null) { + try pp.errStr(tokFromRaw(param_first), .duplicate_embed_param, "limit"); + continue; + } + if (start + 1 != end) { + try pp.err(param_first, .malformed_embed_limit); + continue; + } + const limit_tok = pp.token_buf.items[start]; + if (limit_tok.id != .pp_num) { + try pp.err(param_first, .malformed_embed_limit); + continue; + } + limit = std.fmt.parseInt(u32, pp.tokSlice(limit_tok), 10) catch { + try pp.err(limit_tok, .malformed_embed_limit); + continue; + }; + pp.token_buf.items.len = start; + } else if (std.mem.eql(u8, param, "prefix")) { + if (prefix != null) { + try pp.errStr(tokFromRaw(param_first), .duplicate_embed_param, "prefix"); + continue; + } + prefix = .{ .start = start, .end = end }; + } else if (std.mem.eql(u8, param, "suffix")) { + if (suffix != null) { + try pp.errStr(tokFromRaw(param_first), .duplicate_embed_param, "suffix"); + continue; + } + suffix = .{ .start = start, .end = end }; + } else if (std.mem.eql(u8, param, "if_empty")) { + if (if_empty != null) { + try pp.errStr(tokFromRaw(param_first), .duplicate_embed_param, "if_empty"); + continue; + } + if_empty = .{ .start = start, .end = end }; + } else { + try pp.errStr( + tokFromRaw(param_first), + .unsupported_embed_param, + try pp.comp.diagnostics.arena.allocator().dupe(u8, param), + ); + pp.token_buf.items.len = start; + } + } + + const embed_bytes = (try pp.comp.findEmbed(filename, first.source, include_type, limit)) orelse + return pp.fatal(first, "'{s}' not found", .{filename}); defer pp.comp.gpa.free(embed_bytes); - if (embed_bytes.len == 0) return; + try Range.expand(prefix, pp, tokenizer); + + if (embed_bytes.len == 0) { + try Range.expand(if_empty, pp, tokenizer); + try Range.expand(suffix, pp, tokenizer); + return; + } try pp.tokens.ensureUnusedCapacity(pp.comp.gpa, 2 * embed_bytes.len - 1); // N bytes and N-1 commas // TODO: We currently only support systems with CHAR_BIT == 8 // If the target's CHAR_BIT is not 8, we need to write out correctly-sized embed_bytes // and correctly account for the target's endianness - const writer = pp.comp.generated_buf.writer(); + const writer = pp.comp.generated_buf.writer(pp.gpa); { const byte = embed_bytes[0]; @@ -2431,7 +2867,9 @@ fn embed(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!void { pp.tokens.appendAssumeCapacity(.{ .id = .comma, .loc = .{ .id = .generated, .byte_offset = @intCast(start) } }); pp.tokens.appendAssumeCapacity(try pp.makeGeneratedToken(start + 1, .embed_byte, filename_tok)); } - try pp.comp.generated_buf.append('\n'); + try pp.comp.generated_buf.append(pp.gpa, '\n'); + + try Range.expand(suffix, pp, tokenizer); } // Handle a #include directive. @@ -2446,7 +2884,7 @@ fn include(pp: *Preprocessor, tokenizer: *Tokenizer, which: Compilation.WhichInc pp.include_depth += 1; defer pp.include_depth -= 1; if (pp.include_depth > max_include_depth) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .too_many_includes, .loc = .{ .id = first.source, .byte_offset = first.start, .line = first.line }, }, &.{}); @@ -2534,7 +2972,7 @@ fn pragma(pp: *Preprocessor, tokenizer: *Tokenizer, pragma_tok: RawToken, operat else => |e| return e, }; } - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .unknown_pragma, .loc = pragma_name_tok.loc, }, pragma_name_tok.expansionSlice()); @@ -2564,7 +3002,7 @@ fn findIncludeFilenameToken( else => {}, } } - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .header_str_closing, .loc = .{ .id = first.source, .byte_offset = tokenizer.index, .line = first.line }, }, &.{}); @@ -2629,7 +3067,23 @@ fn printLinemarker( try w.writeByte('#'); if (pp.linemarkers == .line_directives) try w.writeAll("line"); // line_no is 0 indexed - try w.print(" {d} \"{s}\"", .{ line_no + 1, source.path }); + try w.print(" {d} \"", .{line_no + 1}); + for (source.path) |byte| switch (byte) { + '\n' => try w.writeAll("\\n"), + '\r' => try w.writeAll("\\r"), + '\t' => try w.writeAll("\\t"), + '\\' => try w.writeAll("\\\\"), + '"' => try w.writeAll("\\\""), + ' ', '!', '#'...'&', '('...'[', ']'...'~' => try w.writeByte(byte), + // Use hex escapes for any non-ASCII/unprintable characters. + // This ensures that the parsed version of this string will end up + // containing the same bytes as the input regardless of encoding. + else => { + try w.writeAll("\\x"); + try std.fmt.formatInt(byte, 16, .lower, .{ .width = 2, .fill = '0' }, w); + }, + }; + try w.writeByte('"'); if (pp.linemarkers == .numeric_directives) { switch (start_resume) { .none => {}, @@ -2869,7 +3323,7 @@ test "Include guards" { fn skippable(tok_id: RawToken.Id) bool { return switch (tok_id) { - .keyword_defined, .keyword_va_args, .keyword_endif => true, + .keyword_defined, .keyword_va_args, .keyword_va_opt, .keyword_endif => true, else => false, }; } diff --git a/deps/aro/Source.zig b/deps/aro/aro/Source.zig similarity index 99% rename from deps/aro/Source.zig rename to deps/aro/aro/Source.zig index 6986f88b23..06e58ecb16 100644 --- a/deps/aro/Source.zig +++ b/deps/aro/aro/Source.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const Source = @This(); pub const Id = enum(u32) { unused = 0, @@ -27,6 +26,8 @@ pub const Location = struct { } }; +const Source = @This(); + path: []const u8, buf: []const u8, id: Id, diff --git a/deps/aro/StringInterner.zig b/deps/aro/aro/StringInterner.zig similarity index 89% rename from deps/aro/StringInterner.zig rename to deps/aro/aro/StringInterner.zig index b0ae2b347a..b6e0cd79a5 100644 --- a/deps/aro/StringInterner.zig +++ b/deps/aro/aro/StringInterner.zig @@ -1,7 +1,6 @@ const std = @import("std"); const mem = std.mem; - -const StringInterner = @This(); +const Compilation = @import("Compilation.zig"); const StringToIdMap = std.StringHashMapUnmanaged(StringId); @@ -43,6 +42,8 @@ pub const TypeMapper = struct { } }; +const StringInterner = @This(); + string_table: StringToIdMap = .{}, next_id: StringId = @enumFromInt(@intFromEnum(StringId.empty) + 1), @@ -50,7 +51,11 @@ pub fn deinit(self: *StringInterner, allocator: mem.Allocator) void { self.string_table.deinit(allocator); } -pub fn intern(self: *StringInterner, allocator: mem.Allocator, str: []const u8) !StringId { +pub fn intern(comp: *Compilation, str: []const u8) !StringId { + return comp.string_interner.internExtra(comp.gpa, str); +} + +pub fn internExtra(self: *StringInterner, allocator: mem.Allocator, str: []const u8) !StringId { if (str.len == 0) return .empty; const gop = try self.string_table.getOrPut(allocator, str); diff --git a/deps/aro/SymbolStack.zig b/deps/aro/aro/SymbolStack.zig similarity index 100% rename from deps/aro/SymbolStack.zig rename to deps/aro/aro/SymbolStack.zig index f45317744a..77c6e2f3b2 100644 --- a/deps/aro/SymbolStack.zig +++ b/deps/aro/aro/SymbolStack.zig @@ -11,8 +11,6 @@ const Parser = @import("Parser.zig"); const Value = @import("Value.zig"); const StringId = @import("StringInterner.zig").StringId; -const SymbolStack = @This(); - pub const Symbol = struct { name: StringId, ty: Type, @@ -33,6 +31,8 @@ pub const Kind = enum { constexpr, }; +const SymbolStack = @This(); + syms: std.MultiArrayList(Symbol) = .{}, scopes: std.ArrayListUnmanaged(u32) = .{}, diff --git a/deps/aro/Tokenizer.zig b/deps/aro/aro/Tokenizer.zig similarity index 97% rename from deps/aro/Tokenizer.zig rename to deps/aro/aro/Tokenizer.zig index 3c9a85a0ce..ca281ff936 100644 --- a/deps/aro/Tokenizer.zig +++ b/deps/aro/aro/Tokenizer.zig @@ -4,8 +4,6 @@ const Compilation = @import("Compilation.zig"); const Source = @import("Source.zig"); const LangOpts = @import("LangOpts.zig"); -const Tokenizer = @This(); - pub const Token = struct { id: Id, source: Source.Id, @@ -121,6 +119,8 @@ pub const Token = struct { macro_ws, /// Special token for implementing __has_attribute macro_param_has_attribute, + /// Special token for implementing __has_c_attribute + macro_param_has_c_attribute, /// Special token for implementing __has_declspec_attribute macro_param_has_declspec_attribute, /// Special token for implementing __has_warning @@ -135,6 +135,8 @@ pub const Token = struct { macro_param_has_include, /// Special token for implementing __has_include_next macro_param_has_include_next, + /// Special token for implementing __has_embed + macro_param_has_embed, /// Special token for implementing __is_identifier macro_param_is_identifier, /// Special token for implementing __FILE__ @@ -216,6 +218,7 @@ pub const Token = struct { keyword_true, keyword_false, keyword_nullptr, + keyword_typeof_unqual, // Preprocessor directives keyword_include, @@ -235,6 +238,7 @@ pub const Token = struct { keyword_pragma, keyword_line, keyword_va_args, + keyword_va_opt, // gcc keywords keyword_const1, @@ -255,7 +259,10 @@ pub const Token = struct { keyword_asm1, keyword_asm2, keyword_float80, - keyword_float128, + /// _Float128 + keyword_float128_1, + /// __float128 + keyword_float128_2, keyword_int128, keyword_imag1, keyword_imag2, @@ -335,6 +342,7 @@ pub const Token = struct { .keyword_pragma, .keyword_line, .keyword_va_args, + .keyword_va_opt, .macro_func, .macro_function, .macro_pretty_func, @@ -410,7 +418,8 @@ pub const Token = struct { .keyword_asm1, .keyword_asm2, .keyword_float80, - .keyword_float128, + .keyword_float128_1, + .keyword_float128_2, .keyword_int128, .keyword_imag1, .keyword_imag2, @@ -443,6 +452,7 @@ pub const Token = struct { .keyword_true, .keyword_false, .keyword_nullptr, + .keyword_typeof_unqual, => return true, else => return false, } @@ -469,6 +479,7 @@ pub const Token = struct { .keyword_pragma, .keyword_line, .keyword_va_args, + .keyword_va_opt, => id.* = .identifier, .keyword_defined => if (defined_to_identifier) { id.* = .identifier; @@ -485,9 +496,9 @@ pub const Token = struct { return switch (id) { .include_start, .include_resume, - .unterminated_comment, // Fatal error; parsing should not be attempted => unreachable, + .unterminated_comment, .invalid, .identifier, .extended_identifier, @@ -521,6 +532,7 @@ pub const Token = struct { .stringify_param, .stringify_va_args, .macro_param_has_attribute, + .macro_param_has_c_attribute, .macro_param_has_declspec_attribute, .macro_param_has_warning, .macro_param_has_feature, @@ -528,6 +540,7 @@ pub const Token = struct { .macro_param_has_builtin, .macro_param_has_include, .macro_param_has_include_next, + .macro_param_has_embed, .macro_param_is_identifier, .macro_file, .macro_line, @@ -647,6 +660,7 @@ pub const Token = struct { .keyword_true => "true", .keyword_false => "false", .keyword_nullptr => "nullptr", + .keyword_typeof_unqual => "typeof_unqual", .keyword_include => "include", .keyword_include_next => "include_next", .keyword_embed => "embed", @@ -664,6 +678,7 @@ pub const Token = struct { .keyword_pragma => "pragma", .keyword_line => "line", .keyword_va_args => "__VA_ARGS__", + .keyword_va_opt => "__VA_OPT__", .keyword_const1 => "__const", .keyword_const2 => "__const__", .keyword_inline1 => "__inline", @@ -688,7 +703,8 @@ pub const Token = struct { .keyword_asm1 => "__asm", .keyword_asm2 => "__asm__", .keyword_float80 => "__float80", - .keyword_float128 => "__float18", + .keyword_float128_1 => "_Float128", + .keyword_float128_2 => "__float128", .keyword_int128 => "__int128", .keyword_imag1 => "__imag", .keyword_imag2 => "__imag__", @@ -819,7 +835,7 @@ pub const Token = struct { return switch (kw) { .keyword_inline => if (standard.isGNU() or standard.atLeast(.c99)) kw else .identifier, .keyword_restrict => if (standard.atLeast(.c99)) kw else .identifier, - .keyword_typeof => if (standard.isGNU() or standard.atLeast(.c2x)) kw else .identifier, + .keyword_typeof => if (standard.isGNU() or standard.atLeast(.c23)) kw else .identifier, .keyword_asm => if (standard.isGNU()) kw else .identifier, .keyword_declspec => if (comp.langopts.declspec_attrs) kw else .identifier, @@ -832,9 +848,10 @@ pub const Token = struct { .keyword_true, .keyword_false, .keyword_nullptr, + .keyword_typeof_unqual, .keyword_elifdef, .keyword_elifndef, - => if (standard.atLeast(.c2x)) kw else .identifier, + => if (standard.atLeast(.c23)) kw else .identifier, .keyword_int64, .keyword_int64_2, @@ -918,6 +935,7 @@ pub const Token = struct { .{ "true", .keyword_true }, .{ "false", .keyword_false }, .{ "nullptr", .keyword_nullptr }, + .{ "typeof_unqual", .keyword_typeof_unqual }, // Preprocessor directives .{ "include", .keyword_include }, @@ -937,6 +955,7 @@ pub const Token = struct { .{ "pragma", .keyword_pragma }, .{ "line", .keyword_line }, .{ "__VA_ARGS__", .keyword_va_args }, + .{ "__VA_OPT__", .keyword_va_opt }, .{ "__func__", .macro_func }, .{ "__FUNCTION__", .macro_function }, .{ "__PRETTY_FUNCTION__", .macro_pretty_func }, @@ -961,7 +980,8 @@ pub const Token = struct { .{ "__asm", .keyword_asm1 }, .{ "__asm__", .keyword_asm2 }, .{ "__float80", .keyword_float80 }, - .{ "__float128", .keyword_float128 }, + .{ "_Float128", .keyword_float128_1 }, + .{ "__float128", .keyword_float128_2 }, .{ "__int128", .keyword_int128 }, .{ "__imag", .keyword_imag1 }, .{ "__imag__", .keyword_imag2 }, @@ -998,6 +1018,8 @@ pub const Token = struct { }); }; +const Tokenizer = @This(); + buf: []const u8, index: u32 = 0, source: Source.Id, @@ -1345,7 +1367,7 @@ pub fn next(self: *Tokenizer) Token { break; }, ':' => { - if (self.comp.langopts.standard.atLeast(.c2x)) { + if (self.comp.langopts.standard.atLeast(.c23)) { id = .colon_colon; self.index += 1; break; @@ -1651,7 +1673,7 @@ pub fn next(self: *Tokenizer) Token { '.', => {}, 'e', 'E', 'p', 'P' => state = .pp_num_exponent, - '\'' => if (self.comp.langopts.standard.atLeast(.c2x)) { + '\'' => if (self.comp.langopts.standard.atLeast(.c23)) { state = .pp_num_digit_separator; } else { id = .pp_num; @@ -1679,14 +1701,17 @@ pub fn next(self: *Tokenizer) Token { }, }, .pp_num_exponent => switch (c) { - 'a'...'z', - 'A'...'Z', + 'a'...'o', + 'q'...'z', + 'A'...'O', + 'Q'...'Z', '0'...'9', '_', '.', '+', '-', => state = .pp_num, + 'p', 'P' => {}, else => { id = .pp_num; break; @@ -1761,6 +1786,16 @@ pub fn nextNoWSComments(self: *Tokenizer) Token { return tok; } +/// Try to tokenize a '::' even if not supported by the current language standard. +pub fn colonColon(self: *Tokenizer) Token { + var tok = self.nextNoWS(); + if (tok.id == .colon and self.buf[self.index] == ':') { + self.index += 1; + tok.id = .colon_colon; + } + return tok; +} + test "operators" { try expectTokens( \\ ! != | || |= = == @@ -2091,7 +2126,7 @@ test "digraphs" { } test "C23 keywords" { - try expectTokensExtra("true false alignas alignof bool static_assert thread_local nullptr", &.{ + try expectTokensExtra("true false alignas alignof bool static_assert thread_local nullptr typeof_unqual", &.{ .keyword_true, .keyword_false, .keyword_c23_alignas, @@ -2100,7 +2135,8 @@ test "C23 keywords" { .keyword_c23_static_assert, .keyword_c23_thread_local, .keyword_nullptr, - }, .c2x); + .keyword_typeof_unqual, + }, .c23); } fn expectTokensExtra(contents: []const u8, expected_tokens: []const Token.Id, standard: ?LangOpts.Standard) !void { diff --git a/deps/aro/Toolchain.zig b/deps/aro/aro/Toolchain.zig similarity index 98% rename from deps/aro/Toolchain.zig rename to deps/aro/aro/Toolchain.zig index dcc4a51859..fb4472e5ae 100644 --- a/deps/aro/Toolchain.zig +++ b/deps/aro/aro/Toolchain.zig @@ -1,7 +1,6 @@ const std = @import("std"); const Driver = @import("Driver.zig"); const Compilation = @import("Compilation.zig"); -const util = @import("util.zig"); const mem = std.mem; const system_defaults = @import("system_defaults"); const target_util = @import("target.zig"); @@ -9,8 +8,6 @@ const Linux = @import("toolchains/Linux.zig"); const Multilib = @import("Driver/Multilib.zig"); const Filesystem = @import("Driver/Filesystem.zig").Filesystem; -const Toolchain = @This(); - pub const PathList = std.ArrayListUnmanaged([]const u8); pub const RuntimeLibKind = enum { @@ -49,6 +46,8 @@ const Inner = union(enum) { } }; +const Toolchain = @This(); + filesystem: Filesystem = .{ .real = {} }, driver: *Driver, arena: mem.Allocator, @@ -152,7 +151,7 @@ pub fn getLinkerPath(tc: *const Toolchain, buf: []u8) ![]const u8 { // to a relative path is surprising. This is more complex due to priorities // among -B, COMPILER_PATH and PATH. --ld-path= should be used instead. if (mem.indexOfScalar(u8, use_linker, '/') != null) { - try tc.driver.comp.diag.add(.{ .tag = .fuse_ld_path }, &.{}); + try tc.driver.comp.addDiagnostic(.{ .tag = .fuse_ld_path }, &.{}); } if (std.fs.path.isAbsolute(use_linker)) { @@ -402,7 +401,7 @@ fn getUnwindLibKind(tc: *const Toolchain) !UnwindLibKind { return .libgcc; } else if (mem.eql(u8, libname, "libunwind")) { if (tc.getRuntimeLibKind() == .libgcc) { - try tc.driver.comp.diag.add(.{ .tag = .incompatible_unwindlib }, &.{}); + try tc.driver.comp.addDiagnostic(.{ .tag = .incompatible_unwindlib }, &.{}); } return .compiler_rt; } else { @@ -479,7 +478,7 @@ pub fn addRuntimeLibs(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !v if (target_util.isKnownWindowsMSVCEnvironment(target)) { const rtlib_str = tc.driver.rtlib orelse system_defaults.rtlib; if (!mem.eql(u8, rtlib_str, "platform")) { - try tc.driver.comp.diag.add(.{ .tag = .unsupported_rtlib_gcc, .extra = .{ .str = "MSVC" } }, &.{}); + try tc.driver.comp.addDiagnostic(.{ .tag = .unsupported_rtlib_gcc, .extra = .{ .str = "MSVC" } }, &.{}); } } else { try tc.addLibGCC(argv); diff --git a/deps/aro/Tree.zig b/deps/aro/aro/Tree.zig similarity index 82% rename from deps/aro/Tree.zig rename to deps/aro/aro/Tree.zig index f633501440..86426de85f 100644 --- a/deps/aro/Tree.zig +++ b/deps/aro/aro/Tree.zig @@ -1,14 +1,14 @@ const std = @import("std"); +const Interner = @import("backend").Interner; const Type = @import("Type.zig"); const Tokenizer = @import("Tokenizer.zig"); +const CodeGen = @import("CodeGen.zig"); const Compilation = @import("Compilation.zig"); const Source = @import("Source.zig"); const Attribute = @import("Attribute.zig"); const Value = @import("Value.zig"); const StringInterner = @import("StringInterner.zig"); -const Tree = @This(); - pub const Token = struct { id: Id, flags: packed struct { @@ -79,7 +79,7 @@ pub const Token = struct { pub fn checkMsEof(tok: Token, source: Source, comp: *Compilation) !void { std.debug.assert(tok.id == .eof); if (source.buf.len > tok.loc.byte_offset and source.buf[tok.loc.byte_offset] == 0x1A) { - try comp.diag.add(.{ + try comp.addDiagnostic(.{ .tag = .ctrl_z_eof, .loc = .{ .id = source.id, @@ -98,6 +98,8 @@ pub const TokenIndex = u32; pub const NodeIndex = enum(u32) { none, _ }; pub const ValueMap = std.AutoHashMap(NodeIndex, Value); +const Tree = @This(); + comp: *Compilation, arena: std.heap.ArenaAllocator, generated: []const u8, @@ -105,13 +107,13 @@ tokens: Token.List.Slice, nodes: Node.List.Slice, data: []const NodeIndex, root_decls: []const NodeIndex, -strings: []const u8, value_map: ValueMap, +pub const genIr = CodeGen.genIr; + pub fn deinit(tree: *Tree) void { tree.comp.gpa.free(tree.root_decls); tree.comp.gpa.free(tree.data); - tree.comp.gpa.free(tree.strings); tree.nodes.deinit(tree.comp.gpa); tree.arena.deinit(); tree.value_map.deinit(); @@ -161,7 +163,7 @@ pub const Node = struct { int: u64, return_zero: bool, - pub fn forDecl(data: Data, tree: Tree) struct { + pub fn forDecl(data: Data, tree: *const Tree) struct { decls: []const NodeIndex, cond: NodeIndex, incr: NodeIndex, @@ -178,7 +180,7 @@ pub const Node = struct { }; } - pub fn forStmt(data: Data, tree: Tree) struct { + pub fn forStmt(data: Data, tree: *const Tree) struct { init: NodeIndex, cond: NodeIndex, incr: NodeIndex, @@ -495,12 +497,8 @@ pub const Tag = enum(u8) { int_literal, /// Same as int_literal, but originates from a char literal char_literal, - /// _Float16 literal - float16_literal, - /// f32 literal + /// a floating point literal float_literal, - /// f64 literal - double_literal, /// wraps a float or double literal: un imaginary_literal, /// tree.str[index..][0..len] @@ -540,6 +538,12 @@ pub const Tag = enum(u8) { union_init_expr, /// (ty){ un } compound_literal_expr, + /// (static ty){ un } + static_compound_literal_expr, + /// (thread_local ty){ un } + thread_local_compound_literal_expr, + /// (static thread_local ty){ un } + static_thread_local_compound_literal_expr, /// Inserted at the end of a function body if no return stmt is found. /// ty is the functions return type @@ -566,18 +570,18 @@ pub const Tag = enum(u8) { } }; -pub fn isBitfield(nodes: Node.List.Slice, node: NodeIndex) bool { - return bitfieldWidth(nodes, node, false) != null; +pub fn isBitfield(tree: *const Tree, node: NodeIndex) bool { + return tree.bitfieldWidth(node, false) != null; } /// Returns null if node is not a bitfield. If inspect_lval is true, this function will /// recurse into implicit lval_to_rval casts (useful for arithmetic conversions) -pub fn bitfieldWidth(nodes: Node.List.Slice, node: NodeIndex, inspect_lval: bool) ?u32 { +pub fn bitfieldWidth(tree: *const Tree, node: NodeIndex, inspect_lval: bool) ?u32 { if (node == .none) return null; - switch (nodes.items(.tag)[@intFromEnum(node)]) { + switch (tree.nodes.items(.tag)[@intFromEnum(node)]) { .member_access_expr, .member_access_ptr_expr => { - const member = nodes.items(.data)[@intFromEnum(node)].member; - var ty = nodes.items(.ty)[@intFromEnum(member.lhs)]; + const member = tree.nodes.items(.data)[@intFromEnum(node)].member; + var ty = tree.nodes.items(.ty)[@intFromEnum(member.lhs)]; if (ty.isPtr()) ty = ty.elemType(); const record_ty = ty.get(.@"struct") orelse ty.get(.@"union") orelse return null; const field = record_ty.data.record.fields[member.index]; @@ -586,9 +590,9 @@ pub fn bitfieldWidth(nodes: Node.List.Slice, node: NodeIndex, inspect_lval: bool .implicit_cast => { if (!inspect_lval) return null; - const data = nodes.items(.data)[@intFromEnum(node)]; + const data = tree.nodes.items(.data)[@intFromEnum(node)]; return switch (data.cast.kind) { - .lval_to_rval => bitfieldWidth(nodes, data.cast.operand, false), + .lval_to_rval => tree.bitfieldWidth(data.cast.operand, false), else => null, }; }, @@ -596,59 +600,63 @@ pub fn bitfieldWidth(nodes: Node.List.Slice, node: NodeIndex, inspect_lval: bool } } -pub fn isLval(nodes: Node.List.Slice, extra: []const NodeIndex, value_map: ValueMap, node: NodeIndex) bool { +pub fn isLval(tree: *const Tree, node: NodeIndex) bool { var is_const: bool = undefined; - return isLvalExtra(nodes, extra, value_map, node, &is_const); + return tree.isLvalExtra(node, &is_const); } -pub fn isLvalExtra(nodes: Node.List.Slice, extra: []const NodeIndex, value_map: ValueMap, node: NodeIndex, is_const: *bool) bool { +pub fn isLvalExtra(tree: *const Tree, node: NodeIndex, is_const: *bool) bool { is_const.* = false; - switch (nodes.items(.tag)[@intFromEnum(node)]) { - .compound_literal_expr => { - is_const.* = nodes.items(.ty)[@intFromEnum(node)].isConst(); + switch (tree.nodes.items(.tag)[@intFromEnum(node)]) { + .compound_literal_expr, + .static_compound_literal_expr, + .thread_local_compound_literal_expr, + .static_thread_local_compound_literal_expr, + => { + is_const.* = tree.nodes.items(.ty)[@intFromEnum(node)].isConst(); return true; }, .string_literal_expr => return true, .member_access_ptr_expr => { - const lhs_expr = nodes.items(.data)[@intFromEnum(node)].member.lhs; - const ptr_ty = nodes.items(.ty)[@intFromEnum(lhs_expr)]; + const lhs_expr = tree.nodes.items(.data)[@intFromEnum(node)].member.lhs; + const ptr_ty = tree.nodes.items(.ty)[@intFromEnum(lhs_expr)]; if (ptr_ty.isPtr()) is_const.* = ptr_ty.elemType().isConst(); return true; }, .array_access_expr => { - const lhs_expr = nodes.items(.data)[@intFromEnum(node)].bin.lhs; + const lhs_expr = tree.nodes.items(.data)[@intFromEnum(node)].bin.lhs; if (lhs_expr != .none) { - const array_ty = nodes.items(.ty)[@intFromEnum(lhs_expr)]; + const array_ty = tree.nodes.items(.ty)[@intFromEnum(lhs_expr)]; if (array_ty.isPtr() or array_ty.isArray()) is_const.* = array_ty.elemType().isConst(); } return true; }, .decl_ref_expr => { - const decl_ty = nodes.items(.ty)[@intFromEnum(node)]; + const decl_ty = tree.nodes.items(.ty)[@intFromEnum(node)]; is_const.* = decl_ty.isConst(); return true; }, .deref_expr => { - const data = nodes.items(.data)[@intFromEnum(node)]; - const operand_ty = nodes.items(.ty)[@intFromEnum(data.un)]; + const data = tree.nodes.items(.data)[@intFromEnum(node)]; + const operand_ty = tree.nodes.items(.ty)[@intFromEnum(data.un)]; if (operand_ty.isFunc()) return false; if (operand_ty.isPtr() or operand_ty.isArray()) is_const.* = operand_ty.elemType().isConst(); return true; }, .member_access_expr => { - const data = nodes.items(.data)[@intFromEnum(node)]; - return isLvalExtra(nodes, extra, value_map, data.member.lhs, is_const); + const data = tree.nodes.items(.data)[@intFromEnum(node)]; + return tree.isLvalExtra(data.member.lhs, is_const); }, .paren_expr => { - const data = nodes.items(.data)[@intFromEnum(node)]; - return isLvalExtra(nodes, extra, value_map, data.un, is_const); + const data = tree.nodes.items(.data)[@intFromEnum(node)]; + return tree.isLvalExtra(data.un, is_const); }, .builtin_choose_expr => { - const data = nodes.items(.data)[@intFromEnum(node)]; + const data = tree.nodes.items(.data)[@intFromEnum(node)]; - if (value_map.get(data.if3.cond)) |val| { - const offset = @intFromBool(val.isZero()); - return isLvalExtra(nodes, extra, value_map, extra[data.if3.body + offset], is_const); + if (tree.value_map.get(data.if3.cond)) |val| { + const offset = @intFromBool(val.isZero(tree.comp)); + return tree.isLvalExtra(tree.data[data.if3.body + offset], is_const); } return false; }, @@ -656,7 +664,7 @@ pub fn isLvalExtra(nodes: Node.List.Slice, extra: []const NodeIndex, value_map: } } -pub fn tokSlice(tree: Tree, tok_i: TokenIndex) []const u8 { +pub fn tokSlice(tree: *const Tree, tok_i: TokenIndex) []const u8 { if (tree.tokens.items(.id)[tok_i].lexeme()) |some| return some; const loc = tree.tokens.items(.loc)[tok_i]; var tmp_tokenizer = Tokenizer{ @@ -669,25 +677,25 @@ pub fn tokSlice(tree: Tree, tok_i: TokenIndex) []const u8 { return tmp_tokenizer.buf[tok.start..tok.end]; } -pub fn dump(tree: Tree, color: bool, writer: anytype) @TypeOf(writer).Error!void { +pub fn dump(tree: *const Tree, config: std.io.tty.Config, writer: anytype) !void { const mapper = tree.comp.string_interner.getFastTypeMapper(tree.comp.gpa) catch tree.comp.string_interner.getSlowTypeMapper(); defer mapper.deinit(tree.comp.gpa); for (tree.root_decls) |i| { - try tree.dumpNode(i, 0, mapper, color, writer); + try tree.dumpNode(i, 0, mapper, config, writer); try writer.writeByte('\n'); } } -fn dumpFieldAttributes(attributes: []const Attribute, level: u32, strings: []const u8, writer: anytype) !void { +fn dumpFieldAttributes(tree: *const Tree, attributes: []const Attribute, level: u32, writer: anytype) !void { for (attributes) |attr| { try writer.writeByteNTimes(' ', level); try writer.print("field attr: {s}", .{@tagName(attr.tag)}); - try dumpAttribute(attr, strings, writer); + try tree.dumpAttribute(attr, writer); } } -fn dumpAttribute(attr: Attribute, strings: []const u8, writer: anytype) !void { +fn dumpAttribute(tree: *const Tree, attr: Attribute, writer: anytype) !void { switch (attr.tag) { inline else => |tag| { const args = @field(attr.args, @tagName(tag)); @@ -705,8 +713,8 @@ fn dumpAttribute(attr: Attribute, strings: []const u8, writer: anytype) !void { try writer.writeAll(f.name); try writer.writeAll(": "); switch (f.type) { - Value.ByteRange => try writer.print("\"{s}\"", .{@field(args, f.name).slice(strings, .@"1")}), - ?Value.ByteRange => try writer.print("\"{?s}\"", .{if (@field(args, f.name)) |range| range.slice(strings, .@"1") else null}), + Interner.Ref => try writer.print("\"{s}\"", .{tree.interner.get(@field(args, f.name)).bytes}), + ?Interner.Ref => try writer.print("\"{?s}\"", .{if (@field(args, f.name)) |str| tree.interner.get(str).bytes else null}), else => switch (@typeInfo(f.type)) { .Enum => try writer.writeAll(@tagName(@field(args, f.name))), else => try writer.print("{any}", .{@field(args, f.name)}), @@ -719,16 +727,22 @@ fn dumpAttribute(attr: Attribute, strings: []const u8, writer: anytype) !void { } } -fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.TypeMapper, color: bool, w: anytype) @TypeOf(w).Error!void { +fn dumpNode( + tree: *const Tree, + node: NodeIndex, + level: u32, + mapper: StringInterner.TypeMapper, + config: std.io.tty.Config, + w: anytype, +) !void { const delta = 2; const half = delta / 2; - const util = @import("util.zig"); - const TYPE = util.Color.purple; - const TAG = util.Color.cyan; - const IMPLICIT = util.Color.blue; - const NAME = util.Color.red; - const LITERAL = util.Color.green; - const ATTRIBUTE = util.Color.yellow; + const TYPE = std.io.tty.Color.bright_magenta; + const TAG = std.io.tty.Color.bright_cyan; + const IMPLICIT = std.io.tty.Color.bright_blue; + const NAME = std.io.tty.Color.bright_red; + const LITERAL = std.io.tty.Color.bright_green; + const ATTRIBUTE = std.io.tty.Color.bright_yellow; std.debug.assert(node != .none); const tag = tree.nodes.items(.tag)[@intFromEnum(node)]; @@ -736,68 +750,68 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type const ty = tree.nodes.items(.ty)[@intFromEnum(node)]; try w.writeByteNTimes(' ', level); - if (color) util.setColor(if (tag.isImplicit()) IMPLICIT else TAG, w); + try config.setColor(w, if (tag.isImplicit()) IMPLICIT else TAG); try w.print("{s}: ", .{@tagName(tag)}); if (tag == .implicit_cast or tag == .explicit_cast) { - if (color) util.setColor(.white, w); + try config.setColor(w, .white); try w.print("({s}) ", .{@tagName(data.cast.kind)}); } - if (color) util.setColor(TYPE, w); + try config.setColor(w, TYPE); try w.writeByte('\''); try ty.dump(mapper, tree.comp.langopts, w); try w.writeByte('\''); - if (isLval(tree.nodes, tree.data, tree.value_map, node)) { - if (color) util.setColor(ATTRIBUTE, w); + if (tree.isLval(node)) { + try config.setColor(w, ATTRIBUTE); try w.writeAll(" lvalue"); } - if (isBitfield(tree.nodes, node)) { - if (color) util.setColor(ATTRIBUTE, w); + if (tree.isBitfield(node)) { + try config.setColor(w, ATTRIBUTE); try w.writeAll(" bitfield"); } if (tree.value_map.get(node)) |val| { - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.writeAll(" (value: "); - try val.dump(ty, tree.comp, tree.strings, w); + try val.print(ty, tree.comp, w); try w.writeByte(')'); } if (tag == .implicit_return and data.return_zero) { - if (color) util.setColor(IMPLICIT, w); + try config.setColor(w, IMPLICIT); try w.writeAll(" (value: 0)"); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); } try w.writeAll("\n"); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (ty.specifier == .attributed) { - if (color) util.setColor(ATTRIBUTE, w); + try config.setColor(w, ATTRIBUTE); for (ty.data.attributed.attributes) |attr| { try w.writeByteNTimes(' ', level + half); try w.print("attr: {s}", .{@tagName(attr.tag)}); - try dumpAttribute(attr, tree.strings, w); + try tree.dumpAttribute(attr, w); } - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); } switch (tag) { .invalid => unreachable, .file_scope_asm => { try w.writeByteNTimes(' ', level + 1); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); }, .gnu_asm_simple => { try w.writeByteNTimes(' ', level); - try tree.dumpNode(data.un, level, mapper, color, w); + try tree.dumpNode(data.un, level, mapper, config, w); }, .static_assert => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("condition:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); if (data.bin.rhs != .none) { try w.writeByteNTimes(' ', level + 1); try w.writeAll("diagnostic:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); } }, .fn_proto, @@ -807,9 +821,9 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); }, .fn_def, .static_fn_def, @@ -818,12 +832,12 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeByteNTimes(' ', level + half); try w.writeAll("body:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); }, .typedef, .@"var", @@ -836,39 +850,39 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (data.decl.node != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("init:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); } }, .enum_field_decl => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (data.decl.node != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("value:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); } }, .record_field_decl => { if (data.decl.name != 0) { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); } if (data.decl.node != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("bits:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); } }, .indirect_record_field_decl => {}, @@ -882,13 +896,13 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type const maybe_field_attributes = if (ty.getRecord()) |record| record.field_attributes else null; for (tree.data[data.range.start..data.range.end], 0..) |stmt, i| { if (i != 0) try w.writeByte('\n'); - try tree.dumpNode(stmt, level + delta, mapper, color, w); + try tree.dumpNode(stmt, level + delta, mapper, config, w); if (maybe_field_attributes) |field_attributes| { if (field_attributes[i].len == 0) continue; - if (color) util.setColor(ATTRIBUTE, w); - try dumpFieldAttributes(field_attributes[i], level + delta + half, tree.strings, w); - if (color) util.setColor(.reset, w); + try config.setColor(w, ATTRIBUTE); + try tree.dumpFieldAttributes(field_attributes[i], level + delta + half, w); + try config.setColor(w, .reset); } } }, @@ -903,91 +917,95 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type const empty: [][]const Attribute = &attr_array; const field_attributes = if (ty.getRecord()) |record| (record.field_attributes orelse empty.ptr) else empty.ptr; if (data.bin.lhs != .none) { - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); if (field_attributes[0].len > 0) { - if (color) util.setColor(ATTRIBUTE, w); - try dumpFieldAttributes(field_attributes[0], level + delta + half, tree.strings, w); - if (color) util.setColor(.reset, w); + try config.setColor(w, ATTRIBUTE); + try tree.dumpFieldAttributes(field_attributes[0], level + delta + half, w); + try config.setColor(w, .reset); } } if (data.bin.rhs != .none) { - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); if (field_attributes[1].len > 0) { - if (color) util.setColor(ATTRIBUTE, w); - try dumpFieldAttributes(field_attributes[1], level + delta + half, tree.strings, w); - if (color) util.setColor(.reset, w); + try config.setColor(w, ATTRIBUTE); + try tree.dumpFieldAttributes(field_attributes[1], level + delta + half, w); + try config.setColor(w, .reset); } } }, .union_init_expr => { try w.writeByteNTimes(' ', level + half); try w.writeAll("field index: "); - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.print("{d}\n", .{data.union_init.field_index}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (data.union_init.node != .none) { - try tree.dumpNode(data.union_init.node, level + delta, mapper, color, w); + try tree.dumpNode(data.union_init.node, level + delta, mapper, config, w); } }, - .compound_literal_expr => { - try tree.dumpNode(data.un, level + half, mapper, color, w); + .compound_literal_expr, + .static_compound_literal_expr, + .thread_local_compound_literal_expr, + .static_thread_local_compound_literal_expr, + => { + try tree.dumpNode(data.un, level + half, mapper, config, w); }, .labeled_stmt => { try w.writeByteNTimes(' ', level + half); try w.writeAll("label: "); - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (data.decl.node != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("stmt:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); } }, .case_stmt => { try w.writeByteNTimes(' ', level + half); try w.writeAll("value:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); if (data.bin.rhs != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("stmt:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); } }, .case_range_stmt => { try w.writeByteNTimes(' ', level + half); try w.writeAll("range start:\n"); - try tree.dumpNode(tree.data[data.if3.body], level + delta, mapper, color, w); + try tree.dumpNode(tree.data[data.if3.body], level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + half); try w.writeAll("range end:\n"); - try tree.dumpNode(tree.data[data.if3.body + 1], level + delta, mapper, color, w); + try tree.dumpNode(tree.data[data.if3.body + 1], level + delta, mapper, config, w); if (data.if3.cond != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("stmt:\n"); - try tree.dumpNode(data.if3.cond, level + delta, mapper, color, w); + try tree.dumpNode(data.if3.cond, level + delta, mapper, config, w); } }, .default_stmt => { if (data.un != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("stmt:\n"); - try tree.dumpNode(data.un, level + delta, mapper, color, w); + try tree.dumpNode(data.un, level + delta, mapper, config, w); } }, .binary_cond_expr, .cond_expr, .if_then_else_stmt, .builtin_choose_expr => { try w.writeByteNTimes(' ', level + half); try w.writeAll("cond:\n"); - try tree.dumpNode(data.if3.cond, level + delta, mapper, color, w); + try tree.dumpNode(data.if3.cond, level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + half); try w.writeAll("then:\n"); - try tree.dumpNode(tree.data[data.if3.body], level + delta, mapper, color, w); + try tree.dumpNode(tree.data[data.if3.body], level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + half); try w.writeAll("else:\n"); - try tree.dumpNode(tree.data[data.if3.body + 1], level + delta, mapper, color, w); + try tree.dumpNode(tree.data[data.if3.body + 1], level + delta, mapper, config, w); }, .builtin_types_compatible_p => { std.debug.assert(tree.nodes.items(.tag)[@intFromEnum(data.bin.lhs)] == .invalid); @@ -997,40 +1015,40 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type try w.writeAll("lhs: "); const lhs_ty = tree.nodes.items(.ty)[@intFromEnum(data.bin.lhs)]; - if (color) util.setColor(TYPE, w); + try config.setColor(w, TYPE); try lhs_ty.dump(mapper, tree.comp.langopts, w); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeByte('\n'); try w.writeByteNTimes(' ', level + half); try w.writeAll("rhs: "); const rhs_ty = tree.nodes.items(.ty)[@intFromEnum(data.bin.rhs)]; - if (color) util.setColor(TYPE, w); + try config.setColor(w, TYPE); try rhs_ty.dump(mapper, tree.comp.langopts, w); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeByte('\n'); }, .if_then_stmt => { try w.writeByteNTimes(' ', level + half); try w.writeAll("cond:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); if (data.bin.rhs != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("then:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); } }, .switch_stmt, .while_stmt, .do_while_stmt => { try w.writeByteNTimes(' ', level + half); try w.writeAll("cond:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); if (data.bin.rhs != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("body:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); } }, .for_decl_stmt => { @@ -1039,30 +1057,30 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type try w.writeByteNTimes(' ', level + half); try w.writeAll("decl:\n"); for (for_decl.decls) |decl| { - try tree.dumpNode(decl, level + delta, mapper, color, w); + try tree.dumpNode(decl, level + delta, mapper, config, w); try w.writeByte('\n'); } if (for_decl.cond != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("cond:\n"); - try tree.dumpNode(for_decl.cond, level + delta, mapper, color, w); + try tree.dumpNode(for_decl.cond, level + delta, mapper, config, w); } if (for_decl.incr != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("incr:\n"); - try tree.dumpNode(for_decl.incr, level + delta, mapper, color, w); + try tree.dumpNode(for_decl.incr, level + delta, mapper, config, w); } if (for_decl.body != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("body:\n"); - try tree.dumpNode(for_decl.body, level + delta, mapper, color, w); + try tree.dumpNode(for_decl.body, level + delta, mapper, config, w); } }, .forever_stmt => { if (data.un != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("body:\n"); - try tree.dumpNode(data.un, level + delta, mapper, color, w); + try tree.dumpNode(data.un, level + delta, mapper, config, w); } }, .for_stmt => { @@ -1071,91 +1089,91 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type if (for_stmt.init != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("init:\n"); - try tree.dumpNode(for_stmt.init, level + delta, mapper, color, w); + try tree.dumpNode(for_stmt.init, level + delta, mapper, config, w); } if (for_stmt.cond != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("cond:\n"); - try tree.dumpNode(for_stmt.cond, level + delta, mapper, color, w); + try tree.dumpNode(for_stmt.cond, level + delta, mapper, config, w); } if (for_stmt.incr != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("incr:\n"); - try tree.dumpNode(for_stmt.incr, level + delta, mapper, color, w); + try tree.dumpNode(for_stmt.incr, level + delta, mapper, config, w); } if (for_stmt.body != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("body:\n"); - try tree.dumpNode(for_stmt.body, level + delta, mapper, color, w); + try tree.dumpNode(for_stmt.body, level + delta, mapper, config, w); } }, .goto_stmt, .addr_of_label => { try w.writeByteNTimes(' ', level + half); try w.writeAll("label: "); - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.print("{s}\n", .{tree.tokSlice(data.decl_ref)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); }, .continue_stmt, .break_stmt, .implicit_return, .null_stmt => {}, .return_stmt => { if (data.un != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("expr:\n"); - try tree.dumpNode(data.un, level + delta, mapper, color, w); + try tree.dumpNode(data.un, level + delta, mapper, config, w); } }, .call_expr => { try w.writeByteNTimes(' ', level + half); try w.writeAll("lhs:\n"); - try tree.dumpNode(tree.data[data.range.start], level + delta, mapper, color, w); + try tree.dumpNode(tree.data[data.range.start], level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + half); try w.writeAll("args:\n"); - for (tree.data[data.range.start + 1 .. data.range.end]) |arg| try tree.dumpNode(arg, level + delta, mapper, color, w); + for (tree.data[data.range.start + 1 .. data.range.end]) |arg| try tree.dumpNode(arg, level + delta, mapper, config, w); }, .call_expr_one => { try w.writeByteNTimes(' ', level + half); try w.writeAll("lhs:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); if (data.bin.rhs != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("arg:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); } }, .builtin_call_expr => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(@intFromEnum(tree.data[data.range.start]))}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeByteNTimes(' ', level + half); try w.writeAll("args:\n"); - for (tree.data[data.range.start + 1 .. data.range.end]) |arg| try tree.dumpNode(arg, level + delta, mapper, color, w); + for (tree.data[data.range.start + 1 .. data.range.end]) |arg| try tree.dumpNode(arg, level + delta, mapper, config, w); }, .builtin_call_expr_one => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (data.decl.node != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("arg:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); } }, .special_builtin_call_one => { try w.writeByteNTimes(' ', level + half); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl.name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); if (data.decl.node != .none) { try w.writeByteNTimes(' ', level + half); try w.writeAll("arg:\n"); - try tree.dumpNode(data.decl.node, level + delta, mapper, color, w); + try tree.dumpNode(data.decl.node, level + delta, mapper, config, w); } }, .comma_expr, @@ -1191,12 +1209,12 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("lhs:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + 1); try w.writeAll("rhs:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); }, - .explicit_cast, .implicit_cast => try tree.dumpNode(data.cast.operand, level + delta, mapper, color, w), + .explicit_cast, .implicit_cast => try tree.dumpNode(data.cast.operand, level + delta, mapper, config, w), .addr_of_expr, .computed_goto_stmt, .deref_expr, @@ -1214,35 +1232,33 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("operand:\n"); - try tree.dumpNode(data.un, level + delta, mapper, color, w); + try tree.dumpNode(data.un, level + delta, mapper, config, w); }, .decl_ref_expr => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl_ref)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); }, .enumeration_ref => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{tree.tokSlice(data.decl_ref)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); }, .bool_literal, .nullptr_literal, .int_literal, .char_literal, - .float16_literal, .float_literal, - .double_literal, .string_literal_expr, => {}, .member_access_expr, .member_access_ptr_expr => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("lhs:\n"); - try tree.dumpNode(data.member.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.member.lhs, level + delta, mapper, config, w); var lhs_ty = tree.nodes.items(.ty)[@intFromEnum(data.member.lhs)]; if (lhs_ty.isPtr()) lhs_ty = lhs_ty.elemType(); @@ -1250,60 +1266,60 @@ fn dumpNode(tree: Tree, node: NodeIndex, level: u32, mapper: StringInterner.Type try w.writeByteNTimes(' ', level + 1); try w.writeAll("name: "); - if (color) util.setColor(NAME, w); + try config.setColor(w, NAME); try w.print("{s}\n", .{mapper.lookup(lhs_ty.data.record.fields[data.member.index].name)}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); }, .array_access_expr => { if (data.bin.lhs != .none) { try w.writeByteNTimes(' ', level + 1); try w.writeAll("lhs:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); } try w.writeByteNTimes(' ', level + 1); try w.writeAll("index:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); }, .sizeof_expr, .alignof_expr => { if (data.un != .none) { try w.writeByteNTimes(' ', level + 1); try w.writeAll("expr:\n"); - try tree.dumpNode(data.un, level + delta, mapper, color, w); + try tree.dumpNode(data.un, level + delta, mapper, config, w); } }, .generic_expr_one => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("controlling:\n"); - try tree.dumpNode(data.bin.lhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.lhs, level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + 1); if (data.bin.rhs != .none) { try w.writeAll("chosen:\n"); - try tree.dumpNode(data.bin.rhs, level + delta, mapper, color, w); + try tree.dumpNode(data.bin.rhs, level + delta, mapper, config, w); } }, .generic_expr => { const nodes = tree.data[data.range.start..data.range.end]; try w.writeByteNTimes(' ', level + 1); try w.writeAll("controlling:\n"); - try tree.dumpNode(nodes[0], level + delta, mapper, color, w); + try tree.dumpNode(nodes[0], level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + 1); try w.writeAll("chosen:\n"); - try tree.dumpNode(nodes[1], level + delta, mapper, color, w); + try tree.dumpNode(nodes[1], level + delta, mapper, config, w); try w.writeByteNTimes(' ', level + 1); try w.writeAll("rest:\n"); for (nodes[2..]) |expr| { - try tree.dumpNode(expr, level + delta, mapper, color, w); + try tree.dumpNode(expr, level + delta, mapper, config, w); } }, .generic_association_expr, .generic_default_expr, .stmt_expr, .imaginary_literal => { - try tree.dumpNode(data.un, level + delta, mapper, color, w); + try tree.dumpNode(data.un, level + delta, mapper, config, w); }, .array_filler_expr => { try w.writeByteNTimes(' ', level + 1); try w.writeAll("count: "); - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.print("{d}\n", .{data.int}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); }, .struct_forward_decl, .union_forward_decl, diff --git a/deps/aro/Type.zig b/deps/aro/aro/Type.zig similarity index 97% rename from deps/aro/Type.zig rename to deps/aro/aro/Type.zig index f844e474a3..ef6e99cdd4 100644 --- a/deps/aro/Type.zig +++ b/deps/aro/aro/Type.zig @@ -10,8 +10,6 @@ const StringId = StringInterner.StringId; const target_util = @import("target.zig"); const LangOpts = @import("LangOpts.zig"); -const Type = @This(); - pub const Qualifiers = packed struct { @"const": bool = false, atomic: bool = false, @@ -104,22 +102,20 @@ pub const Func = struct { name_tok: TokenIndex, }; - fn eql(a: *const Func, b: *const Func, a_var_args: bool, b_var_args: bool, comp: *const Compilation) bool { + fn eql(a: *const Func, b: *const Func, a_spec: Specifier, b_spec: Specifier, comp: *const Compilation) bool { // return type cannot have qualifiers if (!a.return_type.eql(b.return_type, comp, false)) return false; if (a.params.len != b.params.len) { - const a_no_proto = a_var_args and a.params.len == 0 and !comp.langopts.standard.atLeast(.c2x); - const b_no_proto = b_var_args and b.params.len == 0 and !comp.langopts.standard.atLeast(.c2x); - if (a_no_proto or b_no_proto) { - const maybe_has_params = if (a_no_proto) b else a; + if (a_spec == .old_style_func or b_spec == .old_style_func) { + const maybe_has_params = if (a_spec == .old_style_func) b else a; for (maybe_has_params.params) |param| { if (param.ty.undergoesDefaultArgPromotion(comp)) return false; } return true; } } - if (a_var_args != b_var_args) return false; + if ((a_spec == .func) != (b_spec == .func)) return false; // TODO validate this for (a.params, b.params) |param, b_qual| { var a_unqual = param.ty; @@ -149,10 +145,10 @@ pub const Attributed = struct { base: Type, pub fn create(allocator: std.mem.Allocator, base: Type, existing_attributes: []const Attribute, attributes: []const Attribute) !*Attributed { - var attributed_type = try allocator.create(Attributed); + const attributed_type = try allocator.create(Attributed); errdefer allocator.destroy(attributed_type); - var all_attrs = try allocator.alloc(Attribute, existing_attributes.len + attributes.len); + const all_attrs = try allocator.alloc(Attribute, existing_attributes.len + attributes.len); std.mem.copy(Attribute, all_attrs, existing_attributes); std.mem.copy(Attribute, all_attrs[existing_attributes.len..], attributes); @@ -312,6 +308,8 @@ pub const Specifier = enum { /// GNU auto type /// This is a placeholder specifier - it must be replaced by the actual type specifier (determined by the initializer) auto_type, + /// C23 auto, behaves like auto_type + c23_auto, void, bool, @@ -411,6 +409,8 @@ pub const Specifier = enum { nullptr_t, }; +const Type = @This(); + /// All fields of Type except data may be mutated data: union { sub_type: *Type, @@ -422,7 +422,7 @@ data: union { attributed: *Attributed, none: void, int: struct { - bits: u8, + bits: u16, signedness: std.builtin.Signedness, }, } = .{ .none = {} }, @@ -623,17 +623,21 @@ pub fn isConst(ty: Type) bool { } pub fn isUnsignedInt(ty: Type, comp: *const Compilation) bool { + return ty.signedness(comp) == .unsigned; +} + +pub fn signedness(ty: Type, comp: *const Compilation) std.builtin.Signedness { return switch (ty.specifier) { // zig fmt: off - .char, .complex_char => return comp.getCharSignedness() == .unsigned, + .char, .complex_char => return comp.getCharSignedness(), .uchar, .ushort, .uint, .ulong, .ulong_long, .bool, .complex_uchar, .complex_ushort, - .complex_uint, .complex_ulong, .complex_ulong_long, .complex_uint128 => true, + .complex_uint, .complex_ulong, .complex_ulong_long, .complex_uint128 => .unsigned, // zig fmt: on - .bit_int, .complex_bit_int => return ty.data.int.signedness == .unsigned, - .typeof_type => ty.data.sub_type.isUnsignedInt(comp), - .typeof_expr => ty.data.expr.ty.isUnsignedInt(comp), - .attributed => ty.data.attributed.base.isUnsignedInt(comp), - else => false, + .bit_int, .complex_bit_int => ty.data.int.signedness, + .typeof_type => ty.data.sub_type.signedness(comp), + .typeof_expr => ty.data.expr.ty.signedness(comp), + .attributed => ty.data.attributed.base.signedness(comp), + else => .signed, }; } @@ -760,7 +764,7 @@ pub fn getRecord(ty: Type) ?*const Type.Record { }; } -fn compareIntegerRanks(a: Type, b: Type, comp: *const Compilation) std.math.Order { +pub fn compareIntegerRanks(a: Type, b: Type, comp: *const Compilation) std.math.Order { std.debug.assert(a.isInt() and b.isInt()); if (a.eql(b, comp, false)) return .eq; @@ -898,7 +902,7 @@ pub fn bitfieldPromotion(ty: Type, comp: *Compilation, width: u32) ?Type { pub fn hasIncompleteSize(ty: Type) bool { return switch (ty.specifier) { - .void, .incomplete_array, .invalid => true, + .void, .incomplete_array => true, .@"enum" => ty.data.@"enum".isIncomplete() and !ty.data.@"enum".fixed, .@"struct", .@"union" => ty.data.record.isIncomplete(), .array, .static_array => ty.data.array.elem.hasIncompleteSize(), @@ -958,6 +962,7 @@ pub fn hasField(ty: Type, name: StringId) bool { return false; } +// TODO handle bitints pub fn minInt(ty: Type, comp: *const Compilation) i64 { std.debug.assert(ty.isInt()); if (ty.isUnsignedInt(comp)) return 0; @@ -970,6 +975,7 @@ pub fn minInt(ty: Type, comp: *const Compilation) i64 { }; } +// TODO handle bitints pub fn maxInt(ty: Type, comp: *const Compilation) u64 { std.debug.assert(ty.isInt()); return switch (ty.sizeof(comp).?) { @@ -1001,7 +1007,7 @@ pub fn sizeCompare(a: Type, b: Type, comp: *Compilation) TypeSizeOrder { /// Size of type as reported by sizeof pub fn sizeof(ty: Type, comp: *const Compilation) ?u64 { return switch (ty.specifier) { - .auto_type => unreachable, + .auto_type, .c23_auto => unreachable, .variable_len_array, .unspecified_variable_len_array => return null, .incomplete_array => return if (comp.langopts.emulate == .msvc) @as(?u64, 0) else null, .func, .var_args_func, .old_style_func, .void, .bool => 1, @@ -1104,7 +1110,7 @@ pub fn alignof(ty: Type, comp: *const Compilation) u29 { return switch (ty.specifier) { .invalid => unreachable, - .auto_type => unreachable, + .auto_type, .c23_auto => unreachable, .variable_len_array, .incomplete_array, @@ -1271,7 +1277,7 @@ pub fn eql(a_param: Type, b_param: Type, comp: *const Compilation, check_qualifi .func, .var_args_func, .old_style_func, - => if (!a.data.func.eql(b.data.func, a.specifier == .var_args_func, b.specifier == .var_args_func, comp)) return false, + => if (!a.data.func.eql(b.data.func, a.specifier, b.specifier, comp)) return false, .array, .static_array, @@ -1418,7 +1424,7 @@ pub fn combine(inner: *Type, outer: Type) Parser.Error!void { .decayed_typeof_type, .decayed_typeof_expr, => unreachable, // type should not be able to decay before being combined - .void => inner.* = outer, + .void, .invalid => inner.* = outer, else => unreachable, } } @@ -1496,6 +1502,8 @@ pub const Builder = struct { void, /// GNU __auto_type extension auto_type, + /// C23 auto + c23_auto, nullptr_t, bool, char, @@ -1557,12 +1565,12 @@ pub const Builder = struct { complex_int128, complex_sint128, complex_uint128, - bit_int: i16, - sbit_int: i16, - ubit_int: i16, - complex_bit_int: i16, - complex_sbit_int: i16, - complex_ubit_int: i16, + bit_int: u64, + sbit_int: u64, + ubit_int: u64, + complex_bit_int: u64, + complex_sbit_int: u64, + complex_ubit_int: u64, fp16, float16, @@ -1608,8 +1616,9 @@ pub const Builder = struct { .none => unreachable, .void => "void", .auto_type => "__auto_type", + .c23_auto => "auto", .nullptr_t => "nullptr_t", - .bool => if (langopts.standard.atLeast(.c2x)) "bool" else "_Bool", + .bool => if (langopts.standard.atLeast(.c23)) "bool" else "_Bool", .char => "char", .schar => "signed char", .uchar => "unsigned char", @@ -1706,7 +1715,7 @@ pub const Builder = struct { // TODO this really should be easier switch (ty.specifier) { .array, .static_array, .incomplete_array => { - var old = ty.data.array; + const old = ty.data.array; ty.data.array = try p.arena.create(Array); ty.data.array.* = .{ .len = old.len, @@ -1714,7 +1723,7 @@ pub const Builder = struct { }; }, .variable_len_array, .unspecified_variable_len_array => { - var old = ty.data.expr; + const old = ty.data.expr; ty.data.expr = try p.arena.create(Expr); ty.data.expr.* = .{ .node = old.node, @@ -1738,8 +1747,8 @@ pub const Builder = struct { ty = typeof; } else { ty.specifier = .int; - if (p.comp.langopts.standard.atLeast(.c2x)) { - try p.err(.missing_type_specifier_c2x); + if (p.comp.langopts.standard.atLeast(.c23)) { + try p.err(.missing_type_specifier_c23); } else { try p.err(.missing_type_specifier); } @@ -1747,6 +1756,7 @@ pub const Builder = struct { }, .void => ty.specifier = .void, .auto_type => ty.specifier = .auto_type, + .c23_auto => ty.specifier = .c23_auto, .nullptr_t => unreachable, // nullptr_t can only be accessed via typeof(nullptr) .bool => ty.specifier = .bool, .char => ty.specifier = .char, @@ -1785,17 +1795,17 @@ pub const Builder = struct { if (unsigned) { if (bits < 1) { try p.errStr(.unsigned_bit_int_too_small, b.bit_int_tok.?, b.specifier.str(p.comp.langopts).?); - return error.ParsingFailed; + return Type.invalid; } } else { if (bits < 2) { try p.errStr(.signed_bit_int_too_small, b.bit_int_tok.?, b.specifier.str(p.comp.langopts).?); - return error.ParsingFailed; + return Type.invalid; } } if (bits > Compilation.bit_int_max_bits) { try p.errStr(.bit_int_too_big, b.bit_int_tok.?, b.specifier.str(p.comp.langopts).?); - return error.ParsingFailed; + return Type.invalid; } ty.specifier = if (b.complex_tok != null) .complex_bit_int else .bit_int; ty.data = .{ .int = .{ @@ -2175,6 +2185,10 @@ pub const Builder = struct { .none => .auto_type, else => return b.cannotCombine(p, source_tok), }, + .c23_auto => b.specifier = switch (b.specifier) { + .none => .c23_auto, + else => return b.cannotCombine(p, source_tok), + }, .fp16 => b.specifier = switch (b.specifier) { .none => .fp16, else => return b.cannotCombine(p, source_tok), @@ -2292,6 +2306,7 @@ pub const Builder = struct { return switch (ty.specifier) { .void => .void, .auto_type => .auto_type, + .c23_auto => .c23_auto, .nullptr_t => .nullptr_t, .bool => .bool, .char => .char, @@ -2606,7 +2621,10 @@ pub fn dump(ty: Type, mapper: StringInterner.TypeMapper, langopts: LangOpts, w: try ty.data.sub_type.dump(mapper, langopts, w); }, .func, .var_args_func, .old_style_func => { - try w.writeAll("fn ("); + if (ty.specifier == .old_style_func) + try w.writeAll("kr (") + else + try w.writeAll("fn ("); for (ty.data.func.params, 0..) |param, i| { if (i != 0) try w.writeAll(", "); if (param.name != .empty) try w.print("{s}: ", .{mapper.lookup(param.name)}); @@ -2620,7 +2638,7 @@ pub fn dump(ty: Type, mapper: StringInterner.TypeMapper, langopts: LangOpts, w: try ty.data.func.return_type.dump(mapper, langopts, w); }, .array, .static_array, .decayed_array, .decayed_static_array => { - if (ty.specifier == .decayed_array or ty.specifier == .decayed_static_array) try w.writeByte('d'); + if (ty.specifier == .decayed_array or ty.specifier == .decayed_static_array) try w.writeAll("*d"); try w.writeByte('['); if (ty.specifier == .static_array or ty.specifier == .decayed_static_array) try w.writeAll("static "); try w.print("{d}]", .{ty.data.array.len}); @@ -2632,7 +2650,7 @@ pub fn dump(ty: Type, mapper: StringInterner.TypeMapper, langopts: LangOpts, w: try w.writeAll(")"); }, .incomplete_array, .decayed_incomplete_array => { - if (ty.specifier == .decayed_incomplete_array) try w.writeByte('d'); + if (ty.specifier == .decayed_incomplete_array) try w.writeAll("*d"); try w.writeAll("[]"); try ty.data.array.elem.dump(mapper, langopts, w); }, @@ -2655,12 +2673,12 @@ pub fn dump(ty: Type, mapper: StringInterner.TypeMapper, langopts: LangOpts, w: if (dump_detailed_containers) try dumpRecord(ty.data.record, mapper, langopts, w); }, .unspecified_variable_len_array, .decayed_unspecified_variable_len_array => { - if (ty.specifier == .decayed_unspecified_variable_len_array) try w.writeByte('d'); + if (ty.specifier == .decayed_unspecified_variable_len_array) try w.writeAll("*d"); try w.writeAll("[*]"); try ty.data.sub_type.dump(mapper, langopts, w); }, .variable_len_array, .decayed_variable_len_array => { - if (ty.specifier == .decayed_variable_len_array) try w.writeByte('d'); + if (ty.specifier == .decayed_variable_len_array) try w.writeAll("*d"); try w.writeAll("[]"); try ty.data.expr.ty.dump(mapper, langopts, w); }, diff --git a/deps/aro/aro/Value.zig b/deps/aro/aro/Value.zig new file mode 100644 index 0000000000..ea97125b76 --- /dev/null +++ b/deps/aro/aro/Value.zig @@ -0,0 +1,726 @@ +const std = @import("std"); +const assert = std.debug.assert; +const BigIntConst = std.math.big.int.Const; +const BigIntMutable = std.math.big.int.Mutable; +const backend = @import("backend"); +const Interner = backend.Interner; +const BigIntSpace = Interner.Tag.Int.BigIntSpace; +const Compilation = @import("Compilation.zig"); +const Type = @import("Type.zig"); +const target_util = @import("target.zig"); + +const Value = @This(); + +opt_ref: Interner.OptRef = .none, + +pub const zero = Value{ .opt_ref = .zero }; +pub const one = Value{ .opt_ref = .one }; +pub const @"null" = Value{ .opt_ref = .null }; + +pub fn intern(comp: *Compilation, k: Interner.Key) !Value { + const r = try comp.interner.put(comp.gpa, k); + return .{ .opt_ref = @enumFromInt(@intFromEnum(r)) }; +} + +pub fn int(i: anytype, comp: *Compilation) !Value { + const info = @typeInfo(@TypeOf(i)); + if (info == .ComptimeInt or info.Int.signedness == .unsigned) { + return intern(comp, .{ .int = .{ .u64 = i } }); + } else { + return intern(comp, .{ .int = .{ .i64 = i } }); + } +} + +pub fn ref(v: Value) Interner.Ref { + std.debug.assert(v.opt_ref != .none); + return @enumFromInt(@intFromEnum(v.opt_ref)); +} + +pub fn is(v: Value, tag: std.meta.Tag(Interner.Key), comp: *const Compilation) bool { + if (v.opt_ref == .none) return false; + return comp.interner.get(v.ref()) == tag; +} + +/// Number of bits needed to hold `v`. +/// Asserts that `v` is not negative +pub fn minUnsignedBits(v: Value, comp: *const Compilation) usize { + var space: BigIntSpace = undefined; + const big = v.toBigInt(&space, comp); + assert(big.positive); + return big.bitCountAbs(); +} + +test "minUnsignedBits" { + const Test = struct { + fn checkIntBits(comp: *Compilation, v: u64, expected: usize) !void { + const val = try intern(comp, .{ .int = .{ .u64 = v } }); + try std.testing.expectEqual(expected, val.minUnsignedBits(comp)); + } + }; + + var comp = Compilation.init(std.testing.allocator); + defer comp.deinit(); + comp.target = (try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-linux-gnu" })).toTarget(); + + try Test.checkIntBits(&comp, 0, 0); + try Test.checkIntBits(&comp, 1, 1); + try Test.checkIntBits(&comp, 2, 2); + try Test.checkIntBits(&comp, std.math.maxInt(i8), 7); + try Test.checkIntBits(&comp, std.math.maxInt(u8), 8); + try Test.checkIntBits(&comp, std.math.maxInt(i16), 15); + try Test.checkIntBits(&comp, std.math.maxInt(u16), 16); + try Test.checkIntBits(&comp, std.math.maxInt(i32), 31); + try Test.checkIntBits(&comp, std.math.maxInt(u32), 32); + try Test.checkIntBits(&comp, std.math.maxInt(i64), 63); + try Test.checkIntBits(&comp, std.math.maxInt(u64), 64); +} + +/// Minimum number of bits needed to represent `v` in 2's complement notation +/// Asserts that `v` is negative. +pub fn minSignedBits(v: Value, comp: *const Compilation) usize { + var space: BigIntSpace = undefined; + const big = v.toBigInt(&space, comp); + assert(!big.positive); + return big.bitCountTwosComp(); +} + +test "minSignedBits" { + const Test = struct { + fn checkIntBits(comp: *Compilation, v: i64, expected: usize) !void { + const val = try intern(comp, .{ .int = .{ .i64 = v } }); + try std.testing.expectEqual(expected, val.minSignedBits(comp)); + } + }; + + var comp = Compilation.init(std.testing.allocator); + defer comp.deinit(); + comp.target = (try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-linux-gnu" })).toTarget(); + + try Test.checkIntBits(&comp, -1, 1); + try Test.checkIntBits(&comp, -2, 2); + try Test.checkIntBits(&comp, -10, 5); + try Test.checkIntBits(&comp, -101, 8); + try Test.checkIntBits(&comp, std.math.minInt(i8), 8); + try Test.checkIntBits(&comp, std.math.minInt(i16), 16); + try Test.checkIntBits(&comp, std.math.minInt(i32), 32); + try Test.checkIntBits(&comp, std.math.minInt(i64), 64); +} + +pub const FloatToIntChangeKind = enum { + /// value did not change + none, + /// floating point number too small or large for destination integer type + out_of_range, + /// tried to convert a NaN or Infinity + overflow, + /// fractional value was converted to zero + nonzero_to_zero, + /// fractional part truncated + value_changed, +}; + +/// Converts the stored value from a float to an integer. +/// `.none` value remains unchanged. +pub fn floatToInt(v: *Value, dest_ty: Type, comp: *Compilation) !FloatToIntChangeKind { + if (v.opt_ref == .none) return .none; + + const float_val = v.toFloat(f128, comp); + const was_zero = float_val == 0; + + if (dest_ty.is(.bool)) { + const was_one = float_val == 1.0; + v.* = fromBool(!was_zero); + if (was_zero or was_one) return .none; + return .value_changed; + } else if (dest_ty.isUnsignedInt(comp) and v.compare(.lt, zero, comp)) { + v.* = zero; + return .out_of_range; + } + + const had_fraction = @rem(float_val, 1) != 0; + const is_negative = std.math.signbit(float_val); + const floored = @floor(@abs(float_val)); + + var rational = try std.math.big.Rational.init(comp.gpa); + defer rational.deinit(); + rational.setFloat(f128, floored) catch |err| switch (err) { + error.NonFiniteFloat => { + v.* = .{}; + return .overflow; + }, + error.OutOfMemory => return error.OutOfMemory, + }; + + // The float is reduced in rational.setFloat, so we assert that denominator is equal to one + const big_one = std.math.big.int.Const{ .limbs = &.{1}, .positive = true }; + assert(rational.q.toConst().eqlAbs(big_one)); + + if (is_negative) { + rational.negate(); + } + + const signedness = dest_ty.signedness(comp); + const bits: usize = @intCast(dest_ty.bitSizeof(comp).?); + + // rational.p.truncate(rational.p.toConst(), signedness: Signedness, bit_count: usize) + const fits = rational.p.fitsInTwosComp(signedness, bits); + v.* = try intern(comp, .{ .int = .{ .big_int = rational.p.toConst() } }); + try rational.p.truncate(&rational.p, signedness, bits); + + if (!was_zero and v.isZero(comp)) return .nonzero_to_zero; + if (!fits) return .out_of_range; + if (had_fraction) return .value_changed; + return .none; +} + +/// Converts the stored value from an integer to a float. +/// `.none` value remains unchanged. +pub fn intToFloat(v: *Value, dest_ty: Type, comp: *Compilation) !void { + if (v.opt_ref == .none) return; + const bits = dest_ty.bitSizeof(comp).?; + return switch (comp.interner.get(v.ref()).int) { + inline .u64, .i64 => |data| { + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = @floatFromInt(data) }, + 32 => .{ .f32 = @floatFromInt(data) }, + 64 => .{ .f64 = @floatFromInt(data) }, + 80 => .{ .f80 = @floatFromInt(data) }, + 128 => .{ .f128 = @floatFromInt(data) }, + else => unreachable, + }; + v.* = try intern(comp, .{ .float = f }); + }, + .big_int => |data| { + const big_f = bigIntToFloat(data.limbs, data.positive); + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = @floatCast(big_f) }, + 32 => .{ .f32 = @floatCast(big_f) }, + 64 => .{ .f64 = @floatCast(big_f) }, + 80 => .{ .f80 = @floatCast(big_f) }, + 128 => .{ .f128 = @floatCast(big_f) }, + else => unreachable, + }; + v.* = try intern(comp, .{ .float = f }); + }, + }; +} + +/// Truncates or extends bits based on type. +/// `.none` value remains unchanged. +pub fn intCast(v: *Value, dest_ty: Type, comp: *Compilation) !void { + if (v.opt_ref == .none) return; + const bits: usize = @intCast(dest_ty.bitSizeof(comp).?); + var space: BigIntSpace = undefined; + const big = v.toBigInt(&space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(bits), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.truncate(big, dest_ty.signedness(comp), bits); + + v.* = try intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); +} + +/// Converts the stored value from an integer to a float. +/// `.none` value remains unchanged. +pub fn floatCast(v: *Value, dest_ty: Type, comp: *Compilation) !void { + if (v.opt_ref == .none) return; + // TODO complex values + const bits = dest_ty.makeReal().bitSizeof(comp).?; + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = v.toFloat(f16, comp) }, + 32 => .{ .f32 = v.toFloat(f32, comp) }, + 64 => .{ .f64 = v.toFloat(f64, comp) }, + 80 => .{ .f80 = v.toFloat(f80, comp) }, + 128 => .{ .f128 = v.toFloat(f128, comp) }, + else => unreachable, + }; + v.* = try intern(comp, .{ .float = f }); +} + +pub fn toFloat(v: Value, comptime T: type, comp: *const Compilation) T { + return switch (comp.interner.get(v.ref())) { + .int => |repr| switch (repr) { + inline .u64, .i64 => |data| @floatFromInt(data), + .big_int => |data| @floatCast(bigIntToFloat(data.limbs, data.positive)), + }, + .float => |repr| switch (repr) { + inline else => |data| @floatCast(data), + }, + else => unreachable, + }; +} + +fn bigIntToFloat(limbs: []const std.math.big.Limb, positive: bool) f128 { + if (limbs.len == 0) return 0; + + const base = std.math.maxInt(std.math.big.Limb) + 1; + var result: f128 = 0; + var i: usize = limbs.len; + while (i != 0) { + i -= 1; + const limb: f128 = @as(f128, @floatFromInt(limbs[i])); + result = @mulAdd(f128, base, result, limb); + } + if (positive) { + return result; + } else { + return -result; + } +} + +pub fn toBigInt(val: Value, space: *BigIntSpace, comp: *const Compilation) BigIntConst { + return switch (comp.interner.get(val.ref()).int) { + inline .u64, .i64 => |x| BigIntMutable.init(&space.limbs, x).toConst(), + .big_int => |b| b, + }; +} + +pub fn isZero(v: Value, comp: *const Compilation) bool { + if (v.opt_ref == .none) return false; + switch (v.ref()) { + .zero => return true, + .one => return false, + .null => return target_util.nullRepr(comp.target) == 0, + else => {}, + } + const key = comp.interner.get(v.ref()); + switch (key) { + .float => |repr| switch (repr) { + inline else => |data| return data == 0, + }, + .int => |repr| switch (repr) { + inline .i64, .u64 => |data| return data == 0, + .big_int => |data| return data.eqlZero(), + }, + .bytes => return false, + else => unreachable, + } +} + +/// Converts value to zero or one; +/// `.none` value remains unchanged. +pub fn boolCast(v: *Value, comp: *const Compilation) void { + if (v.opt_ref == .none) return; + v.* = fromBool(v.toBool(comp)); +} + +pub fn fromBool(b: bool) Value { + return if (b) one else zero; +} + +pub fn toBool(v: Value, comp: *const Compilation) bool { + return !v.isZero(comp); +} + +pub fn toInt(v: Value, comptime T: type, comp: *const Compilation) ?T { + if (v.opt_ref == .none) return null; + if (comp.interner.get(v.ref()) != .int) return null; + var space: BigIntSpace = undefined; + const big_int = v.toBigInt(&space, comp); + return big_int.to(T) catch null; +} + +pub fn add(res: *Value, lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !bool { + const bits: usize = @intCast(ty.bitSizeof(comp).?); + if (ty.isFloat()) { + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = lhs.toFloat(f16, comp) + rhs.toFloat(f16, comp) }, + 32 => .{ .f32 = lhs.toFloat(f32, comp) + rhs.toFloat(f32, comp) }, + 64 => .{ .f64 = lhs.toFloat(f64, comp) + rhs.toFloat(f64, comp) }, + 80 => .{ .f80 = lhs.toFloat(f80, comp) + rhs.toFloat(f80, comp) }, + 128 => .{ .f128 = lhs.toFloat(f128, comp) + rhs.toFloat(f128, comp) }, + else => unreachable, + }; + res.* = try intern(comp, .{ .float = f }); + return false; + } else { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(bits), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + const overflowed = result_bigint.addWrap(lhs_bigint, rhs_bigint, ty.signedness(comp), bits); + res.* = try intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); + return overflowed; + } +} + +pub fn sub(res: *Value, lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !bool { + const bits: usize = @intCast(ty.bitSizeof(comp).?); + if (ty.isFloat()) { + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = lhs.toFloat(f16, comp) - rhs.toFloat(f16, comp) }, + 32 => .{ .f32 = lhs.toFloat(f32, comp) - rhs.toFloat(f32, comp) }, + 64 => .{ .f64 = lhs.toFloat(f64, comp) - rhs.toFloat(f64, comp) }, + 80 => .{ .f80 = lhs.toFloat(f80, comp) - rhs.toFloat(f80, comp) }, + 128 => .{ .f128 = lhs.toFloat(f128, comp) - rhs.toFloat(f128, comp) }, + else => unreachable, + }; + res.* = try intern(comp, .{ .float = f }); + return false; + } else { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(bits), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + const overflowed = result_bigint.subWrap(lhs_bigint, rhs_bigint, ty.signedness(comp), bits); + res.* = try intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); + return overflowed; + } +} + +pub fn mul(res: *Value, lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !bool { + const bits: usize = @intCast(ty.bitSizeof(comp).?); + if (ty.isFloat()) { + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = lhs.toFloat(f16, comp) * rhs.toFloat(f16, comp) }, + 32 => .{ .f32 = lhs.toFloat(f32, comp) * rhs.toFloat(f32, comp) }, + 64 => .{ .f64 = lhs.toFloat(f64, comp) * rhs.toFloat(f64, comp) }, + 80 => .{ .f80 = lhs.toFloat(f80, comp) * rhs.toFloat(f80, comp) }, + 128 => .{ .f128 = lhs.toFloat(f128, comp) * rhs.toFloat(f128, comp) }, + else => unreachable, + }; + res.* = try intern(comp, .{ .float = f }); + return false; + } else { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len + rhs_bigint.limbs.len, + ); + defer comp.gpa.free(limbs); + var result_bigint = BigIntMutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + const limbs_buffer = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcMulLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len, 1), + ); + defer comp.gpa.free(limbs_buffer); + + result_bigint.mul(lhs_bigint, rhs_bigint, limbs_buffer, comp.gpa); + + const signedness = ty.signedness(comp); + const overflowed = !result_bigint.toConst().fitsInTwosComp(signedness, bits); + if (overflowed) { + result_bigint.truncate(result_bigint.toConst(), signedness, bits); + } + res.* = try intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); + return overflowed; + } +} + +/// caller guarantees rhs != 0 +pub fn div(res: *Value, lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !bool { + const bits: usize = @intCast(ty.bitSizeof(comp).?); + if (ty.isFloat()) { + const f: Interner.Key.Float = switch (bits) { + 16 => .{ .f16 = lhs.toFloat(f16, comp) / rhs.toFloat(f16, comp) }, + 32 => .{ .f32 = lhs.toFloat(f32, comp) / rhs.toFloat(f32, comp) }, + 64 => .{ .f64 = lhs.toFloat(f64, comp) / rhs.toFloat(f64, comp) }, + 80 => .{ .f80 = lhs.toFloat(f80, comp) / rhs.toFloat(f80, comp) }, + 128 => .{ .f128 = lhs.toFloat(f128, comp) / rhs.toFloat(f128, comp) }, + else => unreachable, + }; + res.* = try intern(comp, .{ .float = f }); + return false; + } else { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs_q = try comp.gpa.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + defer comp.gpa.free(limbs_q); + var result_q = BigIntMutable{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + + const limbs_r = try comp.gpa.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + defer comp.gpa.free(limbs_r); + var result_r = BigIntMutable{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + + const limbs_buffer = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + defer comp.gpa.free(limbs_buffer); + + result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buffer); + + res.* = try intern(comp, .{ .int = .{ .big_int = result_q.toConst() } }); + return !result_q.toConst().fitsInTwosComp(ty.signedness(comp), bits); + } +} + +/// caller guarantees rhs != 0 +/// caller guarantees lhs != std.math.minInt(T) OR rhs != -1 +pub fn rem(lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !Value { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const signedness = ty.signedness(comp); + if (signedness == .signed) { + var spaces: [3]BigIntSpace = undefined; + const min_val = BigIntMutable.init(&spaces[0].limbs, ty.minInt(comp)).toConst(); + const negative = BigIntMutable.init(&spaces[1].limbs, -1).toConst(); + const big_one = BigIntMutable.init(&spaces[2].limbs, 1).toConst(); + if (lhs_bigint.eql(min_val) and rhs_bigint.eql(negative)) { + return .{}; + } else if (rhs_bigint.order(big_one).compare(.lt)) { + // lhs - @divTrunc(lhs, rhs) * rhs + var tmp: Value = undefined; + _ = try tmp.div(lhs, rhs, ty, comp); + _ = try tmp.mul(tmp, rhs, ty, comp); + _ = try tmp.sub(lhs, tmp, ty, comp); + return tmp; + } + } + + const limbs_q = try comp.gpa.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + defer comp.gpa.free(limbs_q); + var result_q = BigIntMutable{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + + const limbs_r = try comp.gpa.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + defer comp.gpa.free(limbs_r); + var result_r = BigIntMutable{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + + const limbs_buffer = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + defer comp.gpa.free(limbs_buffer); + + result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buffer); + return intern(comp, .{ .int = .{ .big_int = result_r.toConst() } }); +} + +pub fn bitOr(lhs: Value, rhs: Value, comp: *Compilation) !Value { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + result_bigint.bitOr(lhs_bigint, rhs_bigint); + return intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); +} + +pub fn bitXor(lhs: Value, rhs: Value, comp: *Compilation) !Value { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + result_bigint.bitXor(lhs_bigint, rhs_bigint); + return intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); +} + +pub fn bitAnd(lhs: Value, rhs: Value, comp: *Compilation) !Value { + var lhs_space: BigIntSpace = undefined; + var rhs_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + result_bigint.bitAnd(lhs_bigint, rhs_bigint); + return intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); +} + +pub fn bitNot(val: Value, ty: Type, comp: *Compilation) !Value { + const bits: usize = @intCast(ty.bitSizeof(comp).?); + var val_space: Value.BigIntSpace = undefined; + const val_bigint = val.toBigInt(&val_space, comp); + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(bits), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + result_bigint.bitNotWrap(val_bigint, ty.signedness(comp), bits); + return intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); +} + +pub fn shl(res: *Value, lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !bool { + var lhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const shift = rhs.toInt(usize, comp) orelse std.math.maxInt(usize); + + const bits: usize = @intCast(ty.bitSizeof(comp).?); + if (shift > bits) { + if (lhs_bigint.positive) { + res.* = try intern(comp, .{ .int = .{ .u64 = ty.maxInt(comp) } }); + } else { + res.* = try intern(comp, .{ .int = .{ .i64 = ty.minInt(comp) } }); + } + return true; + } + + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len + (shift / (@sizeOf(std.math.big.Limb) * 8)) + 1, + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + result_bigint.shiftLeft(lhs_bigint, shift); + const signedness = ty.signedness(comp); + const overflowed = !result_bigint.toConst().fitsInTwosComp(signedness, bits); + if (overflowed) { + result_bigint.truncate(result_bigint.toConst(), signedness, bits); + } + res.* = try intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); + return overflowed; +} + +pub fn shr(lhs: Value, rhs: Value, ty: Type, comp: *Compilation) !Value { + var lhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, comp); + const shift = rhs.toInt(usize, comp) orelse return zero; + + const result_limbs = lhs_bigint.limbs.len -| (shift / (@sizeOf(std.math.big.Limb) * 8)); + if (result_limbs == 0) { + // The shift is enough to remove all the bits from the number, which means the + // result is 0 or -1 depending on the sign. + if (lhs_bigint.positive) { + return zero; + } else { + return intern(comp, .{ .int = .{ .i64 = -1 } }); + } + } + + const bits: usize = @intCast(ty.bitSizeof(comp).?); + const limbs = try comp.gpa.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(bits), + ); + defer comp.gpa.free(limbs); + var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; + + result_bigint.shiftRight(lhs_bigint, shift); + return intern(comp, .{ .int = .{ .big_int = result_bigint.toConst() } }); +} + +pub fn compare(lhs: Value, op: std.math.CompareOperator, rhs: Value, comp: *const Compilation) bool { + if (op == .eq) { + return lhs.opt_ref == rhs.opt_ref; + } else if (lhs.opt_ref == rhs.opt_ref) { + return std.math.Order.eq.compare(op); + } + + const lhs_key = comp.interner.get(lhs.ref()); + const rhs_key = comp.interner.get(rhs.ref()); + if (lhs_key == .float or rhs_key == .float) { + const lhs_f128 = lhs.toFloat(f128, comp); + const rhs_f128 = rhs.toFloat(f128, comp); + return std.math.compare(lhs_f128, op, rhs_f128); + } + + var lhs_bigint_space: BigIntSpace = undefined; + var rhs_bigint_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_bigint_space, comp); + const rhs_bigint = rhs.toBigInt(&rhs_bigint_space, comp); + return lhs_bigint.order(rhs_bigint).compare(op); +} + +pub fn print(v: Value, ty: Type, comp: *const Compilation, w: anytype) @TypeOf(w).Error!void { + if (ty.is(.bool)) { + return w.writeAll(if (v.isZero(comp)) "false" else "true"); + } + const key = comp.interner.get(v.ref()); + switch (key) { + .null => return w.writeAll("nullptr_t"), + .int => |repr| switch (repr) { + inline else => |x| return w.print("{d}", .{x}), + }, + .float => |repr| switch (repr) { + .f16 => |x| return w.print("{d}", .{@round(@as(f64, @floatCast(x)) * 1000) / 1000}), + .f32 => |x| return w.print("{d}", .{@round(@as(f64, @floatCast(x)) * 1000000) / 1000000}), + inline else => |x| return w.print("{d}", .{@as(f64, @floatCast(x))}), + }, + .bytes => |b| return printString(b, ty, comp, w), + else => unreachable, // not a value + } +} + +pub fn printString(bytes: []const u8, ty: Type, comp: *const Compilation, w: anytype) @TypeOf(w).Error!void { + const size: Compilation.CharUnitSize = @enumFromInt(ty.elemType().sizeof(comp).?); + const without_null = bytes[0 .. bytes.len - @intFromEnum(size)]; + switch (size) { + inline .@"1", .@"2" => |sz| { + const data_slice: []const sz.Type() = @alignCast(std.mem.bytesAsSlice(sz.Type(), without_null)); + const formatter = if (sz == .@"1") std.zig.fmtEscapes(data_slice) else std.unicode.fmtUtf16le(data_slice); + try w.print("\"{}\"", .{formatter}); + }, + .@"4" => { + try w.writeByte('"'); + const data_slice = std.mem.bytesAsSlice(u32, without_null); + var buf: [4]u8 = undefined; + for (data_slice) |item| { + if (item <= std.math.maxInt(u21) and std.unicode.utf8ValidCodepoint(@intCast(item))) { + const codepoint: u21 = @intCast(item); + const written = std.unicode.utf8Encode(codepoint, &buf) catch unreachable; + try w.print("{s}", .{buf[0..written]}); + } else { + try w.print("\\x{x}", .{item}); + } + } + try w.writeByte('"'); + }, + } +} diff --git a/deps/aro/aro/char_info.zig b/deps/aro/aro/char_info.zig new file mode 100644 index 0000000000..c2134efa98 --- /dev/null +++ b/deps/aro/aro/char_info.zig @@ -0,0 +1,1111 @@ +//! This module provides functions for classifying characters according to +//! various C standards. All classification routines *do not* consider +//! characters from the basic character set; it is assumed those will be +//! checked separately +//! isXidStart and isXidContinue are adapted from https://github.com/dtolnay/unicode-ident + +const assert = @import("std").debug.assert; +const tables = @import("char_info/identifier_tables.zig"); + +/// C11 Standard Annex D +pub fn isC11IdChar(codepoint: u21) bool { + assert(codepoint > 0x7F); + return switch (codepoint) { + // 1 + 0x00A8, + 0x00AA, + 0x00AD, + 0x00AF, + 0x00B2...0x00B5, + 0x00B7...0x00BA, + 0x00BC...0x00BE, + 0x00C0...0x00D6, + 0x00D8...0x00F6, + 0x00F8...0x00FF, + + // 2 + 0x0100...0x167F, + 0x1681...0x180D, + 0x180F...0x1FFF, + + // 3 + 0x200B...0x200D, + 0x202A...0x202E, + 0x203F...0x2040, + 0x2054, + 0x2060...0x206F, + + // 4 + 0x2070...0x218F, + 0x2460...0x24FF, + 0x2776...0x2793, + 0x2C00...0x2DFF, + 0x2E80...0x2FFF, + + // 5 + 0x3004...0x3007, + 0x3021...0x302F, + 0x3031...0x303F, + + // 6 + 0x3040...0xD7FF, + + // 7 + 0xF900...0xFD3D, + 0xFD40...0xFDCF, + 0xFDF0...0xFE44, + 0xFE47...0xFFFD, + + // 8 + 0x10000...0x1FFFD, + 0x20000...0x2FFFD, + 0x30000...0x3FFFD, + 0x40000...0x4FFFD, + 0x50000...0x5FFFD, + 0x60000...0x6FFFD, + 0x70000...0x7FFFD, + 0x80000...0x8FFFD, + 0x90000...0x9FFFD, + 0xA0000...0xAFFFD, + 0xB0000...0xBFFFD, + 0xC0000...0xCFFFD, + 0xD0000...0xDFFFD, + 0xE0000...0xEFFFD, + => true, + else => false, + }; +} + +/// C99 Standard Annex D +pub fn isC99IdChar(codepoint: u21) bool { + assert(codepoint > 0x7F); + return switch (codepoint) { + // Latin + 0x00AA, + 0x00BA, + 0x00C0...0x00D6, + 0x00D8...0x00F6, + 0x00F8...0x01F5, + 0x01FA...0x0217, + 0x0250...0x02A8, + 0x1E00...0x1E9B, + 0x1EA0...0x1EF9, + 0x207F, + + // Greek + 0x0386, + 0x0388...0x038A, + 0x038C, + 0x038E...0x03A1, + 0x03A3...0x03CE, + 0x03D0...0x03D6, + 0x03DA, + 0x03DC, + 0x03DE, + 0x03E0, + 0x03E2...0x03F3, + 0x1F00...0x1F15, + 0x1F18...0x1F1D, + 0x1F20...0x1F45, + 0x1F48...0x1F4D, + 0x1F50...0x1F57, + 0x1F59, + 0x1F5B, + 0x1F5D, + 0x1F5F...0x1F7D, + 0x1F80...0x1FB4, + 0x1FB6...0x1FBC, + 0x1FC2...0x1FC4, + 0x1FC6...0x1FCC, + 0x1FD0...0x1FD3, + 0x1FD6...0x1FDB, + 0x1FE0...0x1FEC, + 0x1FF2...0x1FF4, + 0x1FF6...0x1FFC, + + // Cyrillic + 0x0401...0x040C, + 0x040E...0x044F, + 0x0451...0x045C, + 0x045E...0x0481, + 0x0490...0x04C4, + 0x04C7...0x04C8, + 0x04CB...0x04CC, + 0x04D0...0x04EB, + 0x04EE...0x04F5, + 0x04F8...0x04F9, + + // Armenian + 0x0531...0x0556, + 0x0561...0x0587, + + // Hebrew + 0x05B0...0x05B9, + 0x05BB...0x05BD, + 0x05BF, + 0x05C1...0x05C2, + 0x05D0...0x05EA, + 0x05F0...0x05F2, + + // Arabic + 0x0621...0x063A, + 0x0640...0x0652, + 0x0670...0x06B7, + 0x06BA...0x06BE, + 0x06C0...0x06CE, + 0x06D0...0x06DC, + 0x06E5...0x06E8, + 0x06EA...0x06ED, + + // Devanagari + 0x0901...0x0903, + 0x0905...0x0939, + 0x093E...0x094D, + 0x0950...0x0952, + 0x0958...0x0963, + + // Bengali + 0x0981...0x0983, + 0x0985...0x098C, + 0x098F...0x0990, + 0x0993...0x09A8, + 0x09AA...0x09B0, + 0x09B2, + 0x09B6...0x09B9, + 0x09BE...0x09C4, + 0x09C7...0x09C8, + 0x09CB...0x09CD, + 0x09DC...0x09DD, + 0x09DF...0x09E3, + 0x09F0...0x09F1, + + // Gurmukhi + 0x0A02, + 0x0A05...0x0A0A, + 0x0A0F...0x0A10, + 0x0A13...0x0A28, + 0x0A2A...0x0A30, + 0x0A32...0x0A33, + 0x0A35...0x0A36, + 0x0A38...0x0A39, + 0x0A3E...0x0A42, + 0x0A47...0x0A48, + 0x0A4B...0x0A4D, + 0x0A59...0x0A5C, + 0x0A5E, + 0x0A74, + + // Gujarati + 0x0A81...0x0A83, + 0x0A85...0x0A8B, + 0x0A8D, + 0x0A8F...0x0A91, + 0x0A93...0x0AA8, + 0x0AAA...0x0AB0, + 0x0AB2...0x0AB3, + 0x0AB5...0x0AB9, + 0x0ABD...0x0AC5, + 0x0AC7...0x0AC9, + 0x0ACB...0x0ACD, + 0x0AD0, + 0x0AE0, + + // Oriya + 0x0B01...0x0B03, + 0x0B05...0x0B0C, + 0x0B0F...0x0B10, + 0x0B13...0x0B28, + 0x0B2A...0x0B30, + 0x0B32...0x0B33, + 0x0B36...0x0B39, + 0x0B3E...0x0B43, + 0x0B47...0x0B48, + 0x0B4B...0x0B4D, + 0x0B5C...0x0B5D, + 0x0B5F...0x0B61, + + // Tamil + 0x0B82...0x0B83, + 0x0B85...0x0B8A, + 0x0B8E...0x0B90, + 0x0B92...0x0B95, + 0x0B99...0x0B9A, + 0x0B9C, + 0x0B9E...0x0B9F, + 0x0BA3...0x0BA4, + 0x0BA8...0x0BAA, + 0x0BAE...0x0BB5, + 0x0BB7...0x0BB9, + 0x0BBE...0x0BC2, + 0x0BC6...0x0BC8, + 0x0BCA...0x0BCD, + + // Telugu + 0x0C01...0x0C03, + 0x0C05...0x0C0C, + 0x0C0E...0x0C10, + 0x0C12...0x0C28, + 0x0C2A...0x0C33, + 0x0C35...0x0C39, + 0x0C3E...0x0C44, + 0x0C46...0x0C48, + 0x0C4A...0x0C4D, + 0x0C60...0x0C61, + + // Kannada + 0x0C82...0x0C83, + 0x0C85...0x0C8C, + 0x0C8E...0x0C90, + 0x0C92...0x0CA8, + 0x0CAA...0x0CB3, + 0x0CB5...0x0CB9, + 0x0CBE...0x0CC4, + 0x0CC6...0x0CC8, + 0x0CCA...0x0CCD, + 0x0CDE, + 0x0CE0...0x0CE1, + + // Malayalam + 0x0D02...0x0D03, + 0x0D05...0x0D0C, + 0x0D0E...0x0D10, + 0x0D12...0x0D28, + 0x0D2A...0x0D39, + 0x0D3E...0x0D43, + 0x0D46...0x0D48, + 0x0D4A...0x0D4D, + 0x0D60...0x0D61, + + // Thai (excluding digits 0x0E50...0x0E59; originally 0x0E01...0x0E3A and 0x0E40...0x0E5B + 0x0E01...0x0E3A, + 0x0E40...0x0E4F, + 0x0E5A...0x0E5B, + + // Lao + 0x0E81...0x0E82, + 0x0E84, + 0x0E87...0x0E88, + 0x0E8A, + 0x0E8D, + 0x0E94...0x0E97, + 0x0E99...0x0E9F, + 0x0EA1...0x0EA3, + 0x0EA5, + 0x0EA7, + 0x0EAA...0x0EAB, + 0x0EAD...0x0EAE, + 0x0EB0...0x0EB9, + 0x0EBB...0x0EBD, + 0x0EC0...0x0EC4, + 0x0EC6, + 0x0EC8...0x0ECD, + 0x0EDC...0x0EDD, + + // Tibetan + 0x0F00, + 0x0F18...0x0F19, + 0x0F35, + 0x0F37, + 0x0F39, + 0x0F3E...0x0F47, + 0x0F49...0x0F69, + 0x0F71...0x0F84, + 0x0F86...0x0F8B, + 0x0F90...0x0F95, + 0x0F97, + 0x0F99...0x0FAD, + 0x0FB1...0x0FB7, + 0x0FB9, + + // Georgian + 0x10A0...0x10C5, + 0x10D0...0x10F6, + + // Hiragana + 0x3041...0x3093, + 0x309B...0x309C, + + // Katakana + 0x30A1...0x30F6, + 0x30FB...0x30FC, + + // Bopomofo + 0x3105...0x312C, + + // CJK Unified Ideographs + 0x4E00...0x9FA5, + + // Hangul + 0xAC00...0xD7A3, + + // Digits + 0x0660...0x0669, + 0x06F0...0x06F9, + 0x0966...0x096F, + 0x09E6...0x09EF, + 0x0A66...0x0A6F, + 0x0AE6...0x0AEF, + 0x0B66...0x0B6F, + 0x0BE7...0x0BEF, + 0x0C66...0x0C6F, + 0x0CE6...0x0CEF, + 0x0D66...0x0D6F, + 0x0E50...0x0E59, + 0x0ED0...0x0ED9, + 0x0F20...0x0F33, + + // Special characters + 0x00B5, + 0x00B7, + 0x02B0...0x02B8, + 0x02BB, + 0x02BD...0x02C1, + 0x02D0...0x02D1, + 0x02E0...0x02E4, + 0x037A, + 0x0559, + 0x093D, + 0x0B3D, + 0x1FBE, + 0x203F...0x2040, + 0x2102, + 0x2107, + 0x210A...0x2113, + 0x2115, + 0x2118...0x211D, + 0x2124, + 0x2126, + 0x2128, + 0x212A...0x2131, + 0x2133...0x2138, + 0x2160...0x2182, + 0x3005...0x3007, + 0x3021...0x3029, + => true, + else => false, + }; +} + +/// C11 standard Annex D +pub fn isC11DisallowedInitialIdChar(codepoint: u21) bool { + assert(codepoint > 0x7F); + return switch (codepoint) { + 0x0300...0x036F, + 0x1DC0...0x1DFF, + 0x20D0...0x20FF, + 0xFE20...0xFE2F, + => true, + else => false, + }; +} + +/// These are "digit" characters; C99 disallows them as the first +/// character of an identifier +pub fn isC99DisallowedInitialIDChar(codepoint: u21) bool { + assert(codepoint > 0x7F); + return switch (codepoint) { + 0x0660...0x0669, + 0x06F0...0x06F9, + 0x0966...0x096F, + 0x09E6...0x09EF, + 0x0A66...0x0A6F, + 0x0AE6...0x0AEF, + 0x0B66...0x0B6F, + 0x0BE7...0x0BEF, + 0x0C66...0x0C6F, + 0x0CE6...0x0CEF, + 0x0D66...0x0D6F, + 0x0E50...0x0E59, + 0x0ED0...0x0ED9, + 0x0F20...0x0F33, + => true, + else => false, + }; +} + +pub fn isInvisible(codepoint: u21) bool { + assert(codepoint > 0x7F); + return switch (codepoint) { + 0x00ad, // SOFT HYPHEN + 0x200b, // ZERO WIDTH SPACE + 0x200c, // ZERO WIDTH NON-JOINER + 0x200d, // ZERO WIDTH JOINER + 0x2060, // WORD JOINER + 0x2061, // FUNCTION APPLICATION + 0x2062, // INVISIBLE TIMES + 0x2063, // INVISIBLE SEPARATOR + 0x2064, // INVISIBLE PLUS + 0xfeff, // ZERO WIDTH NO-BREAK SPACE + => true, + else => false, + }; +} + +/// Checks for identifier characters which resemble non-identifier characters +pub fn homoglyph(codepoint: u21) ?u21 { + assert(codepoint > 0x7F); + return switch (codepoint) { + 0x01c3 => '!', // LATIN LETTER RETROFLEX CLICK + 0x037e => ';', // GREEK QUESTION MARK + 0x2212 => '-', // MINUS SIGN + 0x2215 => '/', // DIVISION SLASH + 0x2216 => '\\', // SET MINUS + 0x2217 => '*', // ASTERISK OPERATOR + 0x2223 => '|', // DIVIDES + 0x2227 => '^', // LOGICAL AND + 0x2236 => ':', // RATIO + 0x223c => '~', // TILDE OPERATOR + 0xa789 => ':', // MODIFIER LETTER COLON + 0xff01 => '!', // FULLWIDTH EXCLAMATION MARK + 0xff03 => '#', // FULLWIDTH NUMBER SIGN + 0xff04 => '$', // FULLWIDTH DOLLAR SIGN + 0xff05 => '%', // FULLWIDTH PERCENT SIGN + 0xff06 => '&', // FULLWIDTH AMPERSAND + 0xff08 => '(', // FULLWIDTH LEFT PARENTHESIS + 0xff09 => ')', // FULLWIDTH RIGHT PARENTHESIS + 0xff0a => '*', // FULLWIDTH ASTERISK + 0xff0b => '+', // FULLWIDTH ASTERISK + 0xff0c => ',', // FULLWIDTH COMMA + 0xff0d => '-', // FULLWIDTH HYPHEN-MINUS + 0xff0e => '.', // FULLWIDTH FULL STOP + 0xff0f => '/', // FULLWIDTH SOLIDUS + 0xff1a => ':', // FULLWIDTH COLON + 0xff1b => ';', // FULLWIDTH SEMICOLON + 0xff1c => '<', // FULLWIDTH LESS-THAN SIGN + 0xff1d => '=', // FULLWIDTH EQUALS SIGN + 0xff1e => '>', // FULLWIDTH GREATER-THAN SIGN + 0xff1f => '?', // FULLWIDTH QUESTION MARK + 0xff20 => '@', // FULLWIDTH COMMERCIAL AT + 0xff3b => '[', // FULLWIDTH LEFT SQUARE BRACKET + 0xff3c => '\\', // FULLWIDTH REVERSE SOLIDUS + 0xff3d => ']', // FULLWIDTH RIGHT SQUARE BRACKET + 0xff3e => '^', // FULLWIDTH CIRCUMFLEX ACCENT + 0xff5b => '{', // FULLWIDTH LEFT CURLY BRACKET + 0xff5c => '|', // FULLWIDTH VERTICAL LINE + 0xff5d => '}', // FULLWIDTH RIGHT CURLY BRACKET + 0xff5e => '~', // FULLWIDTH TILDE + else => null, + }; +} + +pub fn isXidStart(c: u21) bool { + assert(c > 0x7F); + const idx = c / 8 / tables.chunk; + const chunk: usize = if (idx < tables.trie_start.len) tables.trie_start[idx] else 0; + const offset = chunk * tables.chunk / 2 + c / 8 % tables.chunk; + return (tables.leaf[offset] >> (@as(u3, @intCast(c % 8)))) & 1 != 0; +} + +pub fn isXidContinue(c: u21) bool { + assert(c > 0x7F); + const idx = c / 8 / tables.chunk; + const chunk: usize = if (idx < tables.trie_continue.len) tables.trie_continue[idx] else 0; + const offset = chunk * tables.chunk / 2 + c / 8 % tables.chunk; + return (tables.leaf[offset] >> (@as(u3, @intCast(c % 8)))) & 1 != 0; +} + +test "isXidStart / isXidContinue panic check" { + const std = @import("std"); + for (0x80..0x110000) |i| { + const c: u21 = @intCast(i); + if (std.unicode.utf8ValidCodepoint(c)) { + _ = isXidStart(c); + _ = isXidContinue(c); + } + } +} + +test isXidStart { + const std = @import("std"); + try std.testing.expect(!isXidStart('á ‘')); + try std.testing.expect(!isXidStart('â„¢')); + try std.testing.expect(!isXidStart('£')); + try std.testing.expect(!isXidStart('\u{1f914}')); // 🤔 +} + +test isXidContinue { + const std = @import("std"); + try std.testing.expect(isXidContinue('á ‘')); + try std.testing.expect(!isXidContinue('â„¢')); + try std.testing.expect(!isXidContinue('£')); + try std.testing.expect(!isXidContinue('\u{1f914}')); // 🤔 +} + +pub const NfcQuickCheck = enum { no, maybe, yes }; + +pub fn isNormalized(codepoint: u21) NfcQuickCheck { + return switch (codepoint) { + 0x0340...0x0341, + 0x0343...0x0344, + 0x0374, + 0x037E, + 0x0387, + 0x0958...0x095F, + 0x09DC...0x09DD, + 0x09DF, + 0x0A33, + 0x0A36, + 0x0A59...0x0A5B, + 0x0A5E, + 0x0B5C...0x0B5D, + 0x0F43, + 0x0F4D, + 0x0F52, + 0x0F57, + 0x0F5C, + 0x0F69, + 0x0F73, + 0x0F75...0x0F76, + 0x0F78, + 0x0F81, + 0x0F93, + 0x0F9D, + 0x0FA2, + 0x0FA7, + 0x0FAC, + 0x0FB9, + 0x1F71, + 0x1F73, + 0x1F75, + 0x1F77, + 0x1F79, + 0x1F7B, + 0x1F7D, + 0x1FBB, + 0x1FBE, + 0x1FC9, + 0x1FCB, + 0x1FD3, + 0x1FDB, + 0x1FE3, + 0x1FEB, + 0x1FEE...0x1FEF, + 0x1FF9, + 0x1FFB, + 0x1FFD, + 0x2000...0x2001, + 0x2126, + 0x212A...0x212B, + 0x2329, + 0x232A, + 0x2ADC, + 0xF900...0xFA0D, + 0xFA10, + 0xFA12, + 0xFA15...0xFA1E, + 0xFA20, + 0xFA22, + 0xFA25...0xFA26, + 0xFA2A...0xFA6D, + 0xFA70...0xFAD9, + 0xFB1D, + 0xFB1F, + 0xFB2A...0xFB36, + 0xFB38...0xFB3C, + 0xFB3E, + 0xFB40...0xFB41, + 0xFB43...0xFB44, + 0xFB46...0xFB4E, + 0x1D15E...0x1D164, + 0x1D1BB...0x1D1C0, + 0x2F800...0x2FA1D, + => .no, + 0x0300...0x0304, + 0x0306...0x030C, + 0x030F, + 0x0311, + 0x0313...0x0314, + 0x031B, + 0x0323...0x0328, + 0x032D...0x032E, + 0x0330...0x0331, + 0x0338, + 0x0342, + 0x0345, + 0x0653...0x0655, + 0x093C, + 0x09BE, + 0x09D7, + 0x0B3E, + 0x0B56, + 0x0B57, + 0x0BBE, + 0x0BD7, + 0x0C56, + 0x0CC2, + 0x0CD5...0x0CD6, + 0x0D3E, + 0x0D57, + 0x0DCA, + 0x0DCF, + 0x0DDF, + 0x102E, + 0x1161...0x1175, + 0x11A8...0x11C2, + 0x1B35, + 0x3099...0x309A, + 0x110BA, + 0x11127, + 0x1133E, + 0x11357, + 0x114B0, + 0x114BA, + 0x114BD, + 0x115AF, + => .maybe, + else => .yes, + }; +} + +pub const CanonicalCombiningClass = enum(u8) { + not_reordered = 0, + overlay = 1, + han_reading = 6, + nukta = 7, + kana_voicing = 8, + virama = 9, + ccc10 = 10, + ccc11 = 11, + ccc12 = 12, + ccc13 = 13, + ccc14 = 14, + ccc15 = 15, + ccc16 = 16, + ccc17 = 17, + ccc18 = 18, + ccc19 = 19, + ccc20 = 20, + ccc21 = 21, + ccc22 = 22, + ccc23 = 23, + ccc24 = 24, + ccc25 = 25, + ccc26 = 26, + ccc27 = 27, + ccc28 = 28, + ccc29 = 29, + ccc30 = 30, + ccc31 = 31, + ccc32 = 32, + ccc33 = 33, + ccc34 = 34, + ccc35 = 35, + ccc36 = 36, + ccc84 = 84, + ccc91 = 91, + ccc103 = 103, + ccc107 = 107, + ccc118 = 118, + ccc122 = 122, + ccc129 = 129, + ccc130 = 130, + ccc132 = 132, + attached_below = 202, + attached_above = 214, + attached_above_right = 216, + below_left = 218, + below = 220, + below_right = 222, + left = 224, + right = 226, + above_left = 228, + above = 230, + above_right = 232, + double_below = 233, + double_above = 234, + iota_subscript = 240, +}; + +pub fn getCanonicalClass(codepoint: u21) CanonicalCombiningClass { + return switch (codepoint) { + 0x300...0x314 => .above, + 0x315...0x315 => .above_right, + 0x316...0x319 => .below, + 0x31A...0x31A => .above_right, + 0x31B...0x31B => .attached_above_right, + 0x31C...0x320 => .below, + 0x321...0x322 => .attached_below, + 0x323...0x326 => .below, + 0x327...0x328 => .attached_below, + 0x329...0x333 => .below, + 0x334...0x338 => .overlay, + 0x339...0x33C => .below, + 0x33D...0x344 => .above, + 0x345...0x345 => .iota_subscript, + 0x346...0x346 => .above, + 0x347...0x349 => .below, + 0x34A...0x34C => .above, + 0x34D...0x34E => .below, + 0x350...0x352 => .above, + 0x353...0x356 => .below, + 0x357...0x357 => .above, + 0x358...0x358 => .above_right, + 0x359...0x35A => .below, + 0x35B...0x35B => .above, + 0x35C...0x35C => .double_below, + 0x35D...0x35E => .double_above, + 0x35F...0x35F => .double_below, + 0x360...0x361 => .double_above, + 0x362...0x362 => .double_below, + 0x363...0x36F => .above, + 0x483...0x487 => .above, + 0x591...0x591 => .below, + 0x592...0x595 => .above, + 0x596...0x596 => .below, + 0x597...0x599 => .above, + 0x59A...0x59A => .below_right, + 0x59B...0x59B => .below, + 0x59C...0x5A1 => .above, + 0x5A2...0x5A7 => .below, + 0x5A8...0x5A9 => .above, + 0x5AA...0x5AA => .below, + 0x5AB...0x5AC => .above, + 0x5AD...0x5AD => .below_right, + 0x5AE...0x5AE => .above_left, + 0x5AF...0x5AF => .above, + 0x5B0...0x5B0 => .ccc10, + 0x5B1...0x5B1 => .ccc11, + 0x5B2...0x5B2 => .ccc12, + 0x5B3...0x5B3 => .ccc13, + 0x5B4...0x5B4 => .ccc14, + 0x5B5...0x5B5 => .ccc15, + 0x5B6...0x5B6 => .ccc16, + 0x5B7...0x5B7 => .ccc17, + 0x5B8...0x5B8 => .ccc18, + 0x5B9...0x5BA => .ccc19, + 0x5BB...0x5BB => .ccc20, + 0x5BC...0x5BC => .ccc21, + 0x5BD...0x5BD => .ccc22, + 0x5BF...0x5BF => .ccc23, + 0x5C1...0x5C1 => .ccc24, + 0x5C2...0x5C2 => .ccc25, + 0x5C4...0x5C4 => .above, + 0x5C5...0x5C5 => .below, + 0x5C7...0x5C7 => .ccc18, + 0x610...0x617 => .above, + 0x618...0x618 => .ccc30, + 0x619...0x619 => .ccc31, + 0x61A...0x61A => .ccc32, + 0x64B...0x64B => .ccc27, + 0x64C...0x64C => .ccc28, + 0x64D...0x64D => .ccc29, + 0x64E...0x64E => .ccc30, + 0x64F...0x64F => .ccc31, + 0x650...0x650 => .ccc32, + 0x651...0x651 => .ccc33, + 0x652...0x652 => .ccc34, + 0x653...0x654 => .above, + 0x655...0x656 => .below, + 0x657...0x65B => .above, + 0x65C...0x65C => .below, + 0x65D...0x65E => .above, + 0x65F...0x65F => .below, + 0x670...0x670 => .ccc35, + 0x6D6...0x6DC => .above, + 0x6DF...0x6E2 => .above, + 0x6E3...0x6E3 => .below, + 0x6E4...0x6E4 => .above, + 0x6E7...0x6E8 => .above, + 0x6EA...0x6EA => .below, + 0x6EB...0x6EC => .above, + 0x6ED...0x6ED => .below, + 0x711...0x711 => .ccc36, + 0x730...0x730 => .above, + 0x731...0x731 => .below, + 0x732...0x733 => .above, + 0x734...0x734 => .below, + 0x735...0x736 => .above, + 0x737...0x739 => .below, + 0x73A...0x73A => .above, + 0x73B...0x73C => .below, + 0x73D...0x73D => .above, + 0x73E...0x73E => .below, + 0x73F...0x741 => .above, + 0x742...0x742 => .below, + 0x743...0x743 => .above, + 0x744...0x744 => .below, + 0x745...0x745 => .above, + 0x746...0x746 => .below, + 0x747...0x747 => .above, + 0x748...0x748 => .below, + 0x749...0x74A => .above, + 0x7EB...0x7F1 => .above, + 0x7F2...0x7F2 => .below, + 0x7F3...0x7F3 => .above, + 0x7FD...0x7FD => .below, + 0x816...0x819 => .above, + 0x81B...0x823 => .above, + 0x825...0x827 => .above, + 0x829...0x82D => .above, + 0x859...0x85B => .below, + 0x898...0x898 => .above, + 0x899...0x89B => .below, + 0x89C...0x89F => .above, + 0x8CA...0x8CE => .above, + 0x8CF...0x8D3 => .below, + 0x8D4...0x8E1 => .above, + 0x8E3...0x8E3 => .below, + 0x8E4...0x8E5 => .above, + 0x8E6...0x8E6 => .below, + 0x8E7...0x8E8 => .above, + 0x8E9...0x8E9 => .below, + 0x8EA...0x8EC => .above, + 0x8ED...0x8EF => .below, + 0x8F0...0x8F0 => .ccc27, + 0x8F1...0x8F1 => .ccc28, + 0x8F2...0x8F2 => .ccc29, + 0x8F3...0x8F5 => .above, + 0x8F6...0x8F6 => .below, + 0x8F7...0x8F8 => .above, + 0x8F9...0x8FA => .below, + 0x8FB...0x8FF => .above, + 0x93C...0x93C => .nukta, + 0x94D...0x94D => .virama, + 0x951...0x951 => .above, + 0x952...0x952 => .below, + 0x953...0x954 => .above, + 0x9BC...0x9BC => .nukta, + 0x9CD...0x9CD => .virama, + 0x9FE...0x9FE => .above, + 0xA3C...0xA3C => .nukta, + 0xA4D...0xA4D => .virama, + 0xABC...0xABC => .nukta, + 0xACD...0xACD => .virama, + 0xB3C...0xB3C => .nukta, + 0xB4D...0xB4D => .virama, + 0xBCD...0xBCD => .virama, + 0xC3C...0xC3C => .nukta, + 0xC4D...0xC4D => .virama, + 0xC55...0xC55 => .ccc84, + 0xC56...0xC56 => .ccc91, + 0xCBC...0xCBC => .nukta, + 0xCCD...0xCCD => .virama, + 0xD3B...0xD3C => .virama, + 0xD4D...0xD4D => .virama, + 0xDCA...0xDCA => .virama, + 0xE38...0xE39 => .ccc103, + 0xE3A...0xE3A => .virama, + 0xE48...0xE4B => .ccc107, + 0xEB8...0xEB9 => .ccc118, + 0xEBA...0xEBA => .virama, + 0xEC8...0xECB => .ccc122, + 0xF18...0xF19 => .below, + 0xF35...0xF35 => .below, + 0xF37...0xF37 => .below, + 0xF39...0xF39 => .attached_above_right, + 0xF71...0xF71 => .ccc129, + 0xF72...0xF72 => .ccc130, + 0xF74...0xF74 => .ccc132, + 0xF7A...0xF7D => .ccc130, + 0xF80...0xF80 => .ccc130, + 0xF82...0xF83 => .above, + 0xF84...0xF84 => .virama, + 0xF86...0xF87 => .above, + 0xFC6...0xFC6 => .below, + 0x1037...0x1037 => .nukta, + 0x1039...0x103A => .virama, + 0x108D...0x108D => .below, + 0x135D...0x135F => .above, + 0x1714...0x1715 => .virama, + 0x1734...0x1734 => .virama, + 0x17D2...0x17D2 => .virama, + 0x17DD...0x17DD => .above, + 0x18A9...0x18A9 => .above_left, + 0x1939...0x1939 => .below_right, + 0x193A...0x193A => .above, + 0x193B...0x193B => .below, + 0x1A17...0x1A17 => .above, + 0x1A18...0x1A18 => .below, + 0x1A60...0x1A60 => .virama, + 0x1A75...0x1A7C => .above, + 0x1A7F...0x1A7F => .below, + 0x1AB0...0x1AB4 => .above, + 0x1AB5...0x1ABA => .below, + 0x1ABB...0x1ABC => .above, + 0x1ABD...0x1ABD => .below, + 0x1ABF...0x1AC0 => .below, + 0x1AC1...0x1AC2 => .above, + 0x1AC3...0x1AC4 => .below, + 0x1AC5...0x1AC9 => .above, + 0x1ACA...0x1ACA => .below, + 0x1ACB...0x1ACE => .above, + 0x1B34...0x1B34 => .nukta, + 0x1B44...0x1B44 => .virama, + 0x1B6B...0x1B6B => .above, + 0x1B6C...0x1B6C => .below, + 0x1B6D...0x1B73 => .above, + 0x1BAA...0x1BAB => .virama, + 0x1BE6...0x1BE6 => .nukta, + 0x1BF2...0x1BF3 => .virama, + 0x1C37...0x1C37 => .nukta, + 0x1CD0...0x1CD2 => .above, + 0x1CD4...0x1CD4 => .overlay, + 0x1CD5...0x1CD9 => .below, + 0x1CDA...0x1CDB => .above, + 0x1CDC...0x1CDF => .below, + 0x1CE0...0x1CE0 => .above, + 0x1CE2...0x1CE8 => .overlay, + 0x1CED...0x1CED => .below, + 0x1CF4...0x1CF4 => .above, + 0x1CF8...0x1CF9 => .above, + 0x1DC0...0x1DC1 => .above, + 0x1DC2...0x1DC2 => .below, + 0x1DC3...0x1DC9 => .above, + 0x1DCA...0x1DCA => .below, + 0x1DCB...0x1DCC => .above, + 0x1DCD...0x1DCD => .double_above, + 0x1DCE...0x1DCE => .attached_above, + 0x1DCF...0x1DCF => .below, + 0x1DD0...0x1DD0 => .attached_below, + 0x1DD1...0x1DF5 => .above, + 0x1DF6...0x1DF6 => .above_right, + 0x1DF7...0x1DF8 => .above_left, + 0x1DF9...0x1DF9 => .below, + 0x1DFA...0x1DFA => .below_left, + 0x1DFB...0x1DFB => .above, + 0x1DFC...0x1DFC => .double_below, + 0x1DFD...0x1DFD => .below, + 0x1DFE...0x1DFE => .above, + 0x1DFF...0x1DFF => .below, + 0x20D0...0x20D1 => .above, + 0x20D2...0x20D3 => .overlay, + 0x20D4...0x20D7 => .above, + 0x20D8...0x20DA => .overlay, + 0x20DB...0x20DC => .above, + 0x20E1...0x20E1 => .above, + 0x20E5...0x20E6 => .overlay, + 0x20E7...0x20E7 => .above, + 0x20E8...0x20E8 => .below, + 0x20E9...0x20E9 => .above, + 0x20EA...0x20EB => .overlay, + 0x20EC...0x20EF => .below, + 0x20F0...0x20F0 => .above, + 0x2CEF...0x2CF1 => .above, + 0x2D7F...0x2D7F => .virama, + 0x2DE0...0x2DFF => .above, + 0x302A...0x302A => .below_left, + 0x302B...0x302B => .above_left, + 0x302C...0x302C => .above_right, + 0x302D...0x302D => .below_right, + 0x302E...0x302F => .left, + 0x3099...0x309A => .kana_voicing, + 0xA66F...0xA66F => .above, + 0xA674...0xA67D => .above, + 0xA69E...0xA69F => .above, + 0xA6F0...0xA6F1 => .above, + 0xA806...0xA806 => .virama, + 0xA82C...0xA82C => .virama, + 0xA8C4...0xA8C4 => .virama, + 0xA8E0...0xA8F1 => .above, + 0xA92B...0xA92D => .below, + 0xA953...0xA953 => .virama, + 0xA9B3...0xA9B3 => .nukta, + 0xA9C0...0xA9C0 => .virama, + 0xAAB0...0xAAB0 => .above, + 0xAAB2...0xAAB3 => .above, + 0xAAB4...0xAAB4 => .below, + 0xAAB7...0xAAB8 => .above, + 0xAABE...0xAABF => .above, + 0xAAC1...0xAAC1 => .above, + 0xAAF6...0xAAF6 => .virama, + 0xABED...0xABED => .virama, + 0xFB1E...0xFB1E => .ccc26, + 0xFE20...0xFE26 => .above, + 0xFE27...0xFE2D => .below, + 0xFE2E...0xFE2F => .above, + 0x101FD...0x101FD => .below, + 0x102E0...0x102E0 => .below, + 0x10376...0x1037A => .above, + 0x10A0D...0x10A0D => .below, + 0x10A0F...0x10A0F => .above, + 0x10A38...0x10A38 => .above, + 0x10A39...0x10A39 => .overlay, + 0x10A3A...0x10A3A => .below, + 0x10A3F...0x10A3F => .virama, + 0x10AE5...0x10AE5 => .above, + 0x10AE6...0x10AE6 => .below, + 0x10D24...0x10D27 => .above, + 0x10EAB...0x10EAC => .above, + 0x10EFD...0x10EFF => .below, + 0x10F46...0x10F47 => .below, + 0x10F48...0x10F4A => .above, + 0x10F4B...0x10F4B => .below, + 0x10F4C...0x10F4C => .above, + 0x10F4D...0x10F50 => .below, + 0x10F82...0x10F82 => .above, + 0x10F83...0x10F83 => .below, + 0x10F84...0x10F84 => .above, + 0x10F85...0x10F85 => .below, + 0x11046...0x11046 => .virama, + 0x11070...0x11070 => .virama, + 0x1107F...0x1107F => .virama, + 0x110B9...0x110B9 => .virama, + 0x110BA...0x110BA => .nukta, + 0x11100...0x11102 => .above, + 0x11133...0x11134 => .virama, + 0x11173...0x11173 => .nukta, + 0x111C0...0x111C0 => .virama, + 0x111CA...0x111CA => .nukta, + 0x11235...0x11235 => .virama, + 0x11236...0x11236 => .nukta, + 0x112E9...0x112E9 => .nukta, + 0x112EA...0x112EA => .virama, + 0x1133B...0x1133C => .nukta, + 0x1134D...0x1134D => .virama, + 0x11366...0x1136C => .above, + 0x11370...0x11374 => .above, + 0x11442...0x11442 => .virama, + 0x11446...0x11446 => .nukta, + 0x1145E...0x1145E => .above, + 0x114C2...0x114C2 => .virama, + 0x114C3...0x114C3 => .nukta, + 0x115BF...0x115BF => .virama, + 0x115C0...0x115C0 => .nukta, + 0x1163F...0x1163F => .virama, + 0x116B6...0x116B6 => .virama, + 0x116B7...0x116B7 => .nukta, + 0x1172B...0x1172B => .virama, + 0x11839...0x11839 => .virama, + 0x1183A...0x1183A => .nukta, + 0x1193D...0x1193E => .virama, + 0x11943...0x11943 => .nukta, + 0x119E0...0x119E0 => .virama, + 0x11A34...0x11A34 => .virama, + 0x11A47...0x11A47 => .virama, + 0x11A99...0x11A99 => .virama, + 0x11C3F...0x11C3F => .virama, + 0x11D42...0x11D42 => .nukta, + 0x11D44...0x11D45 => .virama, + 0x11D97...0x11D97 => .virama, + 0x11F41...0x11F42 => .virama, + 0x16AF0...0x16AF4 => .overlay, + 0x16B30...0x16B36 => .above, + 0x16FF0...0x16FF1 => .han_reading, + 0x1BC9E...0x1BC9E => .overlay, + 0x1D165...0x1D166 => .attached_above_right, + 0x1D167...0x1D169 => .overlay, + 0x1D16D...0x1D16D => .right, + 0x1D16E...0x1D172 => .attached_above_right, + 0x1D17B...0x1D182 => .below, + 0x1D185...0x1D189 => .above, + 0x1D18A...0x1D18B => .below, + 0x1D1AA...0x1D1AD => .above, + 0x1D242...0x1D244 => .above, + 0x1E000...0x1E006 => .above, + 0x1E008...0x1E018 => .above, + 0x1E01B...0x1E021 => .above, + 0x1E023...0x1E024 => .above, + 0x1E026...0x1E02A => .above, + 0x1E08F...0x1E08F => .above, + 0x1E130...0x1E136 => .above, + 0x1E2AE...0x1E2AE => .above, + 0x1E2EC...0x1E2EF => .above, + 0x1E4EC...0x1E4ED => .above_right, + 0x1E4EE...0x1E4EE => .below, + 0x1E4EF...0x1E4EF => .above, + 0x1E8D0...0x1E8D6 => .below, + 0x1E944...0x1E949 => .above, + 0x1E94A...0x1E94A => .nukta, + else => .not_reordered, + }; +} diff --git a/deps/aro/aro/char_info/identifier_tables.zig b/deps/aro/aro/char_info/identifier_tables.zig new file mode 100644 index 0000000000..dae796d8ce --- /dev/null +++ b/deps/aro/aro/char_info/identifier_tables.zig @@ -0,0 +1,627 @@ +//! Adapted from the `unicode-ident` crate: https://github.com/dtolnay/unicode-ident +//! and Unicode Standard Annex #31 https://www.unicode.org/reports/tr31/ +//! Licensed under the MIT License and the Unicode license + +pub const chunk = 64; + +pub const trie_start: [402]u8 align(8) = .{ + 0x04, 0x0B, 0x0F, 0x13, 0x17, 0x1B, 0x1F, 0x23, 0x27, 0x2D, 0x31, 0x34, 0x38, 0x3C, 0x40, 0x02, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x4D, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x51, 0x54, 0x58, 0x5C, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x60, 0x64, 0x66, + 0x6A, 0x6E, 0x72, 0x28, 0x76, 0x78, 0x7C, 0x80, 0x84, 0x88, 0x8C, 0x90, 0x94, 0x98, 0x9E, 0xA2, + 0x05, 0x2B, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x99, 0x05, 0x05, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x05, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0xB1, 0x00, 0xB5, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x32, 0x05, 0x05, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x43, 0xBB, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC8, 0x00, 0x00, 0x00, 0xAF, + 0xCE, 0xD2, 0xD6, 0xBC, 0xDA, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0xE0, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x52, 0xE3, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xE6, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0xE1, 0x05, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x05, 0xEB, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xE4, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0xE7, +}; + +pub const trie_continue: [1793]u8 align(8) = .{ + 0x08, 0x0D, 0x11, 0x15, 0x19, 0x1D, 0x21, 0x25, 0x2A, 0x2F, 0x31, 0x36, 0x3A, 0x3E, 0x42, 0x02, + 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x4F, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x51, 0x56, 0x5A, 0x5E, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62, 0x64, 0x68, + 0x6C, 0x70, 0x74, 0x28, 0x76, 0x7A, 0x7E, 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9B, 0xA0, 0xA4, + 0x05, 0x2B, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x99, 0x05, 0x05, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x05, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0xB3, 0x00, 0xB7, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x32, 0x05, 0x05, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x43, 0xBB, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xAC, 0xC4, 0xC6, 0xCA, 0x00, 0xCC, 0x00, 0xAF, + 0xD0, 0xD4, 0xD8, 0xBC, 0xDC, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0xE0, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x52, 0xE3, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xE6, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0xE1, 0x05, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x05, 0xEB, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xE4, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC2, +}; + +pub const leaf: [7584]u8 align(64) = .{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xAA, 0xFF, 0xFF, 0xFF, 0x3F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x5F, 0xDC, 0x1F, 0xCF, 0x0F, 0xFF, 0x1F, 0xDC, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA0, 0x04, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0x03, 0x00, 0x1F, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0xB8, + 0x40, 0xD7, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0x03, 0x00, 0x1F, 0x50, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xB8, + 0xC0, 0xD7, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x03, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x87, 0x07, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFB, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xB6, 0x00, 0xFF, 0xFF, 0xFF, 0x87, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xC0, 0xFE, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0x60, 0xC0, 0x00, 0x9C, + 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x02, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x07, 0x30, 0x04, + 0x00, 0x00, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x9F, 0xFF, 0xFD, 0xFF, 0x9F, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x24, + 0xFF, 0xFF, 0x3F, 0x04, 0x10, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0x07, 0xFF, 0xFF, + 0xFF, 0x7E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x01, 0xFF, 0x03, 0x00, 0xFE, 0xFF, + 0xE1, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xC5, 0x23, 0x00, 0x40, 0x00, 0xB0, 0x03, 0x00, 0x03, 0x10, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x07, 0xFF, 0xFF, + 0xFF, 0x7E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0xFF, + 0xEF, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xC5, 0xF3, 0x9F, 0x79, 0x80, 0xB0, 0xCF, 0xFF, 0x03, 0x50, + 0xE0, 0x87, 0xF9, 0xFF, 0xFF, 0xFD, 0x6D, 0x03, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x1C, 0x00, + 0xE0, 0xBF, 0xFB, 0xFF, 0xFF, 0xFD, 0xED, 0x23, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, + 0xE0, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0x23, 0x00, 0x00, 0x00, 0xB0, 0x03, 0x00, 0x02, 0x00, + 0xE8, 0xC7, 0x3D, 0xD6, 0x18, 0xC7, 0xFF, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xEE, 0x87, 0xF9, 0xFF, 0xFF, 0xFD, 0x6D, 0xD3, 0x87, 0x39, 0x02, 0x5E, 0xC0, 0xFF, 0x3F, 0x00, + 0xEE, 0xBF, 0xFB, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0xBF, 0x3B, 0x01, 0x00, 0xCF, 0xFF, 0x00, 0xFE, + 0xEE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0x9F, 0x39, 0xE0, 0xB0, 0xCF, 0xFF, 0x02, 0x00, + 0xEC, 0xC7, 0x3D, 0xD6, 0x18, 0xC7, 0xFF, 0xC3, 0xC7, 0x3D, 0x81, 0x00, 0xC0, 0xFF, 0x00, 0x00, + 0xE0, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0x23, 0x00, 0x00, 0x00, 0x27, 0x03, 0x00, 0x00, 0x00, + 0xE1, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0x23, 0x00, 0x00, 0x00, 0x60, 0x03, 0x00, 0x06, 0x00, + 0xF0, 0xDF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x27, 0x00, 0x40, 0x70, 0x80, 0x03, 0x00, 0x00, 0xFC, + 0xE0, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFB, 0x2F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0xF3, 0xDF, 0x3D, 0x60, 0x27, 0xCF, 0xFF, 0x00, 0x00, + 0xEF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0xF3, 0xDF, 0x3D, 0x60, 0x60, 0xCF, 0xFF, 0x0E, 0x00, + 0xFF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x7D, 0xF0, 0x80, 0xCF, 0xFF, 0x00, 0xFC, + 0xEE, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFB, 0x2F, 0x7F, 0x84, 0x5F, 0xFF, 0xC0, 0xFF, 0x0C, 0x00, + 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xD6, 0xF7, 0xFF, 0xFF, 0xAF, 0xFF, 0x05, 0x20, 0x5F, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x7F, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xD6, 0xF7, 0xFF, 0xFF, 0xAF, 0xFF, 0xFF, 0x3F, 0x5F, 0x7F, 0xFF, 0xF3, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x03, 0xFF, 0x03, 0xA0, 0xC2, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0xFE, 0xFF, + 0xDF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x80, 0x00, 0x00, 0x3F, 0x3C, 0x62, 0xC0, 0xE1, 0xFF, + 0x03, 0x40, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x7F, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x7F, 0x3D, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x7F, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x7F, 0x3D, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x00, 0xFE, 0x03, 0x00, + 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, + 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, + 0xFE, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0x01, + 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xDF, 0x01, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, + 0xFE, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0x01, + 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xDF, 0x0D, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x30, 0xFF, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, + 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xB8, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, + 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x0F, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF8, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x9F, + 0xFF, 0x03, 0xFF, 0x03, 0x80, 0x00, 0xFF, 0xBF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03, 0x00, 0xF8, 0x0F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, + 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0x6F, 0x04, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, + 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x00, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x27, 0x00, 0xF0, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x84, 0xFC, 0x2F, 0x3F, 0x50, 0xFD, 0xFF, 0xF3, 0xE0, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x1F, 0xE2, 0xFF, 0x01, 0x00, + 0x84, 0xFC, 0x2F, 0x3F, 0x50, 0xFD, 0xFF, 0xF3, 0xE0, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x78, 0x0C, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, + 0xFF, 0xFF, 0x7F, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x0F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x80, + 0xFF, 0xFF, 0x7F, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, + 0xE0, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x3E, 0x1F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xE0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, + 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xE0, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x3E, 0x1F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xE6, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x1F, 0xFF, 0xFF, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x80, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xEB, 0x03, 0x00, 0x00, 0xFC, 0xFF, + 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xBF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, + 0x00, 0x00, 0x80, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xEB, 0x03, 0x00, 0x00, 0xFC, 0xFF, + 0xBB, 0xF7, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, + 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x68, + 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, + 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x80, 0x00, 0x00, 0xDF, 0xFF, 0x00, 0x7C, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xE8, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x7F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF7, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0xC4, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x62, 0x3E, 0x05, 0x00, 0x00, 0x38, 0xFF, 0x07, 0x1C, 0x00, + 0x7E, 0x7E, 0x7E, 0x00, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x03, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0x3F, 0xFF, 0x03, 0xFF, 0xFF, 0x7F, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x38, 0xFF, 0xFF, 0x7C, 0x00, + 0x7E, 0x7E, 0x7E, 0x00, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x03, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0x03, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0xF8, 0xA0, 0xFF, 0xFD, 0x7F, 0x5F, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0xF8, 0xE0, 0xFF, 0xFD, 0x7F, 0x5F, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xAA, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07, 0xC0, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0xFC, 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xAA, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, + 0x00, 0x00, 0xFF, 0x03, 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0xFC, 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xEF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xB7, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xEF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xB7, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xF7, + 0xFF, 0xF7, 0xB7, 0xFF, 0xFB, 0xFF, 0xFB, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xF7, + 0xFF, 0xF7, 0xB7, 0xFF, 0xFB, 0xFF, 0xFB, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x91, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x7F, 0x00, + 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x37, 0x00, + 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xEF, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, + 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x07, 0x00, + 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6F, 0xF0, 0xEF, 0xFE, 0xFF, 0xFF, 0x3F, 0x87, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, + 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x07, 0x00, + 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, + 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, + 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, + 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, + 0xF8, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x90, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x47, 0x00, + 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x3F, 0x80, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x04, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0x03, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xDE, 0xFF, 0x17, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x0F, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0xBD, 0xFF, 0xBF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0x23, 0x00, 0x00, 0x01, 0xE0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0xBD, 0xFF, 0xBF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x03, + 0xEF, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0xFB, 0x9F, 0x39, 0x81, 0xE0, 0xCF, 0x1F, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x80, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xC3, 0x03, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x01, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x11, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0x0F, 0xFF, 0x03, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, + 0x7F, 0xF2, 0x6F, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x80, + 0x7F, 0xF2, 0x6F, 0xFF, 0xFF, 0xFF, 0xBF, 0xF9, 0x0F, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x1B, 0x00, 0x00, 0x00, + 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x04, 0x00, 0x00, 0x01, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x03, 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x6F, + 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0xBF, 0xFD, 0xFF, 0xFF, + 0xFF, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x01, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0xFF, + 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xB4, 0xFF, 0x00, 0xFF, 0x03, 0xBF, 0xFD, 0xFF, 0xFF, + 0xFF, 0x7F, 0xFB, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0x00, + 0xF4, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, + 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x07, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE3, 0x07, 0xF8, + 0xE7, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xE0, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x03, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0xE0, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x03, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x6F, 0xFF, 0x7F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F, + 0xFF, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F, + 0xFF, 0x01, 0xFF, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xDF, 0x64, 0xDE, 0xFF, 0xEB, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xBF, 0xE7, 0xDF, 0xDF, 0xFF, 0xFF, 0xFF, 0x7B, 0x5F, 0xFC, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7, + 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, + 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7, + 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, + 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x20, 0x00, + 0x10, 0x00, 0x00, 0xF8, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x3F, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0xFF, 0xFF, 0xF9, 0xDB, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x3F, 0xFF, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xEF, 0xFF, 0xFF, 0xFF, 0x96, 0xFE, 0xF7, 0x0A, 0x84, 0xEA, 0x96, 0xAA, 0x96, 0xF7, 0xF7, 0x5E, + 0xFF, 0xFB, 0xFF, 0x0F, 0xEE, 0xFB, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/deps/aro/features.zig b/deps/aro/aro/features.zig similarity index 100% rename from deps/aro/features.zig rename to deps/aro/aro/features.zig diff --git a/deps/aro/number_affixes.zig b/deps/aro/aro/number_affixes.zig similarity index 100% rename from deps/aro/number_affixes.zig rename to deps/aro/aro/number_affixes.zig diff --git a/deps/aro/pragmas/gcc.zig b/deps/aro/aro/pragmas/gcc.zig similarity index 86% rename from deps/aro/pragmas/gcc.zig rename to deps/aro/aro/pragmas/gcc.zig index 22bef7cfb4..f55b3a1a00 100644 --- a/deps/aro/pragmas/gcc.zig +++ b/deps/aro/aro/pragmas/gcc.zig @@ -38,18 +38,18 @@ const Directive = enum { fn beforePreprocess(pragma: *Pragma, comp: *Compilation) void { var self = @fieldParentPtr(GCC, "pragma", pragma); - self.original_options = comp.diag.options; + self.original_options = comp.diagnostics.options; } fn beforeParse(pragma: *Pragma, comp: *Compilation) void { var self = @fieldParentPtr(GCC, "pragma", pragma); - comp.diag.options = self.original_options; + comp.diagnostics.options = self.original_options; self.options_stack.items.len = 0; } fn afterParse(pragma: *Pragma, comp: *Compilation) void { var self = @fieldParentPtr(GCC, "pragma", pragma); - comp.diag.options = self.original_options; + comp.diagnostics.options = self.original_options; self.options_stack.items.len = 0; } @@ -76,7 +76,7 @@ fn diagnosticHandler(self: *GCC, pp: *Preprocessor, start_idx: TokenIndex) Pragm .ignored, .warning, .@"error", .fatal => { const str = Pragma.pasteTokens(pp, start_idx + 1) catch |err| switch (err) { error.ExpectedStringLiteral => { - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .pragma_requires_string_literal, .loc = diagnostic_tok.loc, .extra = .{ .str = "GCC diagnostic" }, @@ -86,24 +86,24 @@ fn diagnosticHandler(self: *GCC, pp: *Preprocessor, start_idx: TokenIndex) Pragm }; if (!mem.startsWith(u8, str, "-W")) { const next = pp.tokens.get(start_idx + 1); - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .malformed_warning_check, .loc = next.loc, .extra = .{ .str = "GCC diagnostic" }, }, next.expansionSlice()); } - const new_kind = switch (diagnostic) { - .ignored => Diagnostics.Kind.off, - .warning => Diagnostics.Kind.warning, - .@"error" => Diagnostics.Kind.@"error", - .fatal => Diagnostics.Kind.@"fatal error", + const new_kind: Diagnostics.Kind = switch (diagnostic) { + .ignored => .off, + .warning => .warning, + .@"error" => .@"error", + .fatal => .@"fatal error", else => unreachable, }; - try pp.comp.diag.set(str[2..], new_kind); + try pp.comp.diagnostics.set(str[2..], new_kind); }, - .push => try self.options_stack.append(pp.comp.gpa, pp.comp.diag.options), - .pop => pp.comp.diag.options = self.options_stack.popOrNull() orelse self.original_options, + .push => try self.options_stack.append(pp.comp.gpa, pp.comp.diagnostics.options), + .pop => pp.comp.diagnostics.options = self.options_stack.popOrNull() orelse self.original_options, } } @@ -113,7 +113,7 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex if (directive_tok.id == .nl) return; const gcc_pragma = std.meta.stringToEnum(Directive, pp.expandedSlice(directive_tok)) orelse - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .unknown_gcc_pragma, .loc = directive_tok.loc, }, directive_tok.expansionSlice()); @@ -122,7 +122,7 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex .warning, .@"error" => { const text = Pragma.pasteTokens(pp, start_idx + 2) catch |err| switch (err) { error.ExpectedStringLiteral => { - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .pragma_requires_string_literal, .loc = directive_tok.loc, .extra = .{ .str = @tagName(gcc_pragma) }, @@ -130,9 +130,9 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex }, else => |e| return e, }; - const extra = Diagnostics.Message.Extra{ .str = try pp.comp.diag.arena.allocator().dupe(u8, text) }; + const extra = Diagnostics.Message.Extra{ .str = try pp.comp.diagnostics.arena.allocator().dupe(u8, text) }; const diagnostic_tag: Diagnostics.Tag = if (gcc_pragma == .warning) .pragma_warning_message else .pragma_error_message; - return pp.comp.diag.add( + return pp.comp.addDiagnostic( .{ .tag = diagnostic_tag, .loc = directive_tok.loc, .extra = extra }, directive_tok.expansionSlice(), ); @@ -140,7 +140,7 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex .diagnostic => return self.diagnosticHandler(pp, start_idx + 2) catch |err| switch (err) { error.UnknownPragma => { const tok = pp.tokens.get(start_idx + 2); - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .unknown_gcc_pragma_directive, .loc = tok.loc, }, tok.expansionSlice()); @@ -154,14 +154,14 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex if (tok.id == .nl) break; if (!tok.id.isMacroIdentifier()) { - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .pragma_poison_identifier, .loc = tok.loc, }, tok.expansionSlice()); } const str = pp.expandedSlice(tok); if (pp.defines.get(str) != null) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .pragma_poison_macro, .loc = tok.loc, }, tok.expansionSlice()); diff --git a/deps/aro/pragmas/message.zig b/deps/aro/aro/pragmas/message.zig similarity index 85% rename from deps/aro/pragmas/message.zig rename to deps/aro/aro/pragmas/message.zig index 42752516c3..7786c20540 100644 --- a/deps/aro/pragmas/message.zig +++ b/deps/aro/aro/pragmas/message.zig @@ -22,7 +22,7 @@ pub fn init(allocator: mem.Allocator) !*Pragma { } fn deinit(pragma: *Pragma, comp: *Compilation) void { - var self = @fieldParentPtr(Message, "pragma", pragma); + const self = @fieldParentPtr(Message, "pragma", pragma); comp.gpa.destroy(self); } @@ -32,7 +32,7 @@ fn preprocessorHandler(_: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pra const str = Pragma.pasteTokens(pp, start_idx + 1) catch |err| switch (err) { error.ExpectedStringLiteral => { - return pp.comp.diag.add(.{ + return pp.comp.addDiagnostic(.{ .tag = .pragma_requires_string_literal, .loc = message_tok.loc, .extra = .{ .str = "message" }, @@ -45,6 +45,6 @@ fn preprocessorHandler(_: *Pragma, pp: *Preprocessor, start_idx: TokenIndex) Pra message_expansion_locs[message_expansion_locs.len - 1] else message_tok.loc; - const extra = Diagnostics.Message.Extra{ .str = try pp.comp.diag.arena.allocator().dupe(u8, str) }; - return pp.comp.diag.add(.{ .tag = .pragma_message, .loc = loc, .extra = extra }, &.{}); + const extra = Diagnostics.Message.Extra{ .str = try pp.comp.diagnostics.arena.allocator().dupe(u8, str) }; + return pp.comp.addDiagnostic(.{ .tag = .pragma_message, .loc = loc, .extra = extra }, &.{}); } diff --git a/deps/aro/pragmas/once.zig b/deps/aro/aro/pragmas/once.zig similarity index 98% rename from deps/aro/pragmas/once.zig rename to deps/aro/aro/pragmas/once.zig index c2de2efc1d..53b59bb1f8 100644 --- a/deps/aro/pragmas/once.zig +++ b/deps/aro/aro/pragmas/once.zig @@ -42,7 +42,7 @@ fn preprocessorHandler(pragma: *Pragma, pp: *Preprocessor, start_idx: TokenIndex const name_tok = pp.tokens.get(start_idx); const next = pp.tokens.get(start_idx + 1); if (next.id != .nl) { - try pp.comp.diag.add(.{ + try pp.comp.addDiagnostic(.{ .tag = .extra_tokens_directive_end, .loc = name_tok.loc, }, next.expansionSlice()); diff --git a/deps/aro/pragmas/pack.zig b/deps/aro/aro/pragmas/pack.zig similarity index 98% rename from deps/aro/pragmas/pack.zig rename to deps/aro/aro/pragmas/pack.zig index e0c1d2b13d..1fab0eca64 100644 --- a/deps/aro/pragmas/pack.zig +++ b/deps/aro/aro/pragmas/pack.zig @@ -34,7 +34,7 @@ fn parserHandler(pragma: *Pragma, p: *Parser, start_idx: TokenIndex) Compilation var idx = start_idx + 1; const l_paren = p.pp.tokens.get(idx); if (l_paren.id != .l_paren) { - return p.comp.diag.add(.{ + return p.comp.addDiagnostic(.{ .tag = .pragma_pack_lparen, .loc = l_paren.loc, }, l_paren.expansionSlice()); @@ -127,7 +127,7 @@ fn packInt(p: *Parser, tok_i: TokenIndex) Compilation.Error!?u8 { }, else => |e| return e, }; - const int = if (res.val.tag == .int) res.val.getInt(u64) else 99; + const int = res.val.toInt(u64, p.comp) orelse 99; switch (int) { 1, 2, 4, 8, 16 => return @intCast(int), else => { diff --git a/deps/aro/record_layout.zig b/deps/aro/aro/record_layout.zig similarity index 99% rename from deps/aro/record_layout.zig rename to deps/aro/aro/record_layout.zig index c24cfd9d46..2009a29bc9 100644 --- a/deps/aro/record_layout.zig +++ b/deps/aro/aro/record_layout.zig @@ -57,6 +57,7 @@ const SysVContext = struct { fn layoutFields(self: *SysVContext, rec: *const Record) void { for (rec.fields, 0..) |*fld, fld_indx| { + if (fld.ty.specifier == .invalid) continue; const type_layout = computeLayout(fld.ty, self.comp); var field_attrs: ?[]const Attribute = null; @@ -587,6 +588,7 @@ pub fn compute(rec: *Type.Record, ty: Type, comp: *const Compilation, pragma_pac .msvc => { var context = MsvcContext.init(ty, comp, pragma_pack); for (rec.fields, 0..) |*fld, fld_indx| { + if (fld.ty.specifier == .invalid) continue; var field_attrs: ?[]const Attribute = null; if (rec.field_attributes) |attrs| { field_attrs = attrs[fld_indx]; diff --git a/deps/aro/target.zig b/deps/aro/aro/target.zig similarity index 97% rename from deps/aro/target.zig rename to deps/aro/aro/target.zig index 526fce33d4..1e55f4bc5b 100644 --- a/deps/aro/target.zig +++ b/deps/aro/aro/target.zig @@ -1,7 +1,7 @@ const std = @import("std"); const LangOpts = @import("LangOpts.zig"); const Type = @import("Type.zig"); -const llvm = @import("zig").codegen.llvm; +const llvm = @import("root").codegen.llvm; const TargetSet = @import("Builtins/Properties.zig").TargetSet; /// intmax_t for this target @@ -258,6 +258,21 @@ pub fn systemCompiler(target: std.Target) LangOpts.Compiler { return .clang; } +pub fn hasFloat128(target: std.Target) bool { + if (target.cpu.arch.isWasm()) return true; + if (target.isDarwin()) return false; + if (target.cpu.arch.isPPC() or target.cpu.arch.isPPC64()) return std.Target.powerpc.featureSetHas(target.cpu.features, .float128); + return switch (target.os.tag) { + .dragonfly, + .haiku, + .linux, + .openbsd, + .solaris, + => target.cpu.arch.isX86(), + else => false, + }; +} + pub fn hasInt128(target: std.Target) bool { if (target.cpu.arch == .wasm32) return true; if (target.cpu.arch == .x86_64) return true; @@ -809,3 +824,8 @@ test "target size/align tests" { try std.testing.expectEqual(@as(u64, 1), ct.alignof(&comp)); try std.testing.expectEqual(true, ignoreNonZeroSizedBitfieldTypeAlignment(comp.target)); } + +/// The canonical integer representation of nullptr_t. +pub fn nullRepr(_: std.Target) u64 { + return 0; +} diff --git a/deps/aro/TextLiteral.zig b/deps/aro/aro/text_literal.zig similarity index 97% rename from deps/aro/TextLiteral.zig rename to deps/aro/aro/text_literal.zig index 4364a1d815..342a6b27d6 100644 --- a/deps/aro/TextLiteral.zig +++ b/deps/aro/aro/text_literal.zig @@ -132,7 +132,7 @@ pub const Kind = enum { }; } - /// Required alignment within aro (on compiler host) for writing to retained_strings + /// Required alignment within aro (on compiler host) for writing to Interner.strings. pub fn internalStorageAlignment(kind: Kind, comp: *const Compilation) usize { return switch (kind.charUnitSize(comp)) { inline else => |size| @alignOf(size.Type()), @@ -250,7 +250,7 @@ pub const Parser = struct { self.i += expected_len; if (overflowed) { - self.err(.escape_sequence_overflow, .{ .unsigned = start + self.prefixLen() }); + self.err(.escape_sequence_overflow, .{ .offset = start + self.prefixLen() }); return null; } @@ -260,7 +260,7 @@ pub const Parser = struct { } if (val > std.math.maxInt(u21) or !std.unicode.utf8ValidCodepoint(@intCast(val))) { - self.err(.invalid_universal_character, .{ .unsigned = start + self.prefixLen() }); + self.err(.invalid_universal_character, .{ .offset = start + self.prefixLen() }); return null; } @@ -270,7 +270,7 @@ pub const Parser = struct { } if (val < 0xA0 and (val != '$' and val != '@' and val != '`')) { - const is_error = !self.comp.langopts.standard.atLeast(.c2x); + const is_error = !self.comp.langopts.standard.atLeast(.c23); if (val >= 0x20 and val <= 0x7F) { if (is_error) { self.err(.ucn_basic_char_error, .{ .ascii = @intCast(val) }); @@ -347,7 +347,7 @@ pub const Parser = struct { count += 1; } if (overflowed or val > self.kind.maxInt(self.comp)) { - self.err(.escape_sequence_overflow, .{ .unsigned = start + self.prefixLen() }); + self.err(.escape_sequence_overflow, .{ .offset = start + self.prefixLen() }); return 0; } if (count == 0) { diff --git a/deps/aro/toolchains/Linux.zig b/deps/aro/aro/toolchains/Linux.zig similarity index 99% rename from deps/aro/toolchains/Linux.zig rename to deps/aro/aro/toolchains/Linux.zig index 7ec73204a7..ceafd965b3 100644 --- a/deps/aro/toolchains/Linux.zig +++ b/deps/aro/aro/toolchains/Linux.zig @@ -385,6 +385,7 @@ test Linux { comp.environment = .{ .path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", }; + defer comp.environment = .{}; const raw_triple = "x86_64-linux-gnu"; const cross = std.zig.CrossTarget.parse(.{ .arch_os_abi = raw_triple }) catch unreachable; diff --git a/deps/aro/aro/tracy.zig b/deps/aro/aro/tracy.zig new file mode 100644 index 0000000000..e3c4bb6725 --- /dev/null +++ b/deps/aro/aro/tracy.zig @@ -0,0 +1,310 @@ +//! Copied from https://github.com/ziglang/zig/blob/c9006d9479c619d9ed555164831e11a04d88d382/src/tracy.zig + +const std = @import("std"); +const builtin = @import("builtin"); +const build_options = @import("build_options"); + +pub const enable = if (builtin.is_test) false else build_options.enable_tracy; +pub const enable_allocation = enable and build_options.enable_tracy_allocation; +pub const enable_callstack = enable and build_options.enable_tracy_callstack; + +// TODO: make this configurable +const callstack_depth = 10; + +const ___tracy_c_zone_context = extern struct { + id: u32, + active: c_int, + + pub inline fn end(self: @This()) void { + ___tracy_emit_zone_end(self); + } + + pub inline fn addText(self: @This(), text: []const u8) void { + ___tracy_emit_zone_text(self, text.ptr, text.len); + } + + pub inline fn setName(self: @This(), name: []const u8) void { + ___tracy_emit_zone_name(self, name.ptr, name.len); + } + + pub inline fn setColor(self: @This(), color: u32) void { + ___tracy_emit_zone_color(self, color); + } + + pub inline fn setValue(self: @This(), value: u64) void { + ___tracy_emit_zone_value(self, value); + } +}; + +pub const Ctx = if (enable) ___tracy_c_zone_context else struct { + pub inline fn end(self: @This()) void { + _ = self; + } + + pub inline fn addText(self: @This(), text: []const u8) void { + _ = self; + _ = text; + } + + pub inline fn setName(self: @This(), name: []const u8) void { + _ = self; + _ = name; + } + + pub inline fn setColor(self: @This(), color: u32) void { + _ = self; + _ = color; + } + + pub inline fn setValue(self: @This(), value: u64) void { + _ = self; + _ = value; + } +}; + +pub inline fn trace(comptime src: std.builtin.SourceLocation) Ctx { + if (!enable) return .{}; + + if (enable_callstack) { + return ___tracy_emit_zone_begin_callstack(&.{ + .name = null, + .function = src.fn_name.ptr, + .file = src.file.ptr, + .line = src.line, + .color = 0, + }, callstack_depth, 1); + } else { + return ___tracy_emit_zone_begin(&.{ + .name = null, + .function = src.fn_name.ptr, + .file = src.file.ptr, + .line = src.line, + .color = 0, + }, 1); + } +} + +pub inline fn traceNamed(comptime src: std.builtin.SourceLocation, comptime name: [:0]const u8) Ctx { + if (!enable) return .{}; + + if (enable_callstack) { + return ___tracy_emit_zone_begin_callstack(&.{ + .name = name.ptr, + .function = src.fn_name.ptr, + .file = src.file.ptr, + .line = src.line, + .color = 0, + }, callstack_depth, 1); + } else { + return ___tracy_emit_zone_begin(&.{ + .name = name.ptr, + .function = src.fn_name.ptr, + .file = src.file.ptr, + .line = src.line, + .color = 0, + }, 1); + } +} + +pub fn tracyAllocator(allocator: std.mem.Allocator) TracyAllocator(null) { + return TracyAllocator(null).init(allocator); +} + +pub fn TracyAllocator(comptime name: ?[:0]const u8) type { + return struct { + parent_allocator: std.mem.Allocator, + + const Self = @This(); + + pub fn init(parent_allocator: std.mem.Allocator) Self { + return .{ + .parent_allocator = parent_allocator, + }; + } + + pub fn allocator(self: *Self) std.mem.Allocator { + return std.mem.Allocator.init(self, allocFn, resizeFn, freeFn); + } + + fn allocFn(self: *Self, len: usize, ptr_align: u29, len_align: u29, ret_addr: usize) std.mem.Allocator.Error![]u8 { + const result = self.parent_allocator.rawAlloc(len, ptr_align, len_align, ret_addr); + if (result) |data| { + if (data.len != 0) { + if (name) |n| { + allocNamed(data.ptr, data.len, n); + } else { + alloc(data.ptr, data.len); + } + } + } else |_| { + messageColor("allocation failed", 0xFF0000); + } + return result; + } + + fn resizeFn(self: *Self, buf: []u8, buf_align: u29, new_len: usize, len_align: u29, ret_addr: usize) ?usize { + if (self.parent_allocator.rawResize(buf, buf_align, new_len, len_align, ret_addr)) |resized_len| { + if (name) |n| { + freeNamed(buf.ptr, n); + allocNamed(buf.ptr, resized_len, n); + } else { + free(buf.ptr); + alloc(buf.ptr, resized_len); + } + + return resized_len; + } + + // during normal operation the compiler hits this case thousands of times due to this + // emitting messages for it is both slow and causes clutter + return null; + } + + fn freeFn(self: *Self, buf: []u8, buf_align: u29, ret_addr: usize) void { + self.parent_allocator.rawFree(buf, buf_align, ret_addr); + // this condition is to handle free being called on an empty slice that was never even allocated + // example case: `std.process.getSelfExeSharedLibPaths` can return `&[_][:0]u8{}` + if (buf.len != 0) { + if (name) |n| { + freeNamed(buf.ptr, n); + } else { + free(buf.ptr); + } + } + } + }; +} + +// This function only accepts comptime known strings, see `messageCopy` for runtime strings +pub inline fn message(comptime msg: [:0]const u8) void { + if (!enable) return; + ___tracy_emit_messageL(msg.ptr, if (enable_callstack) callstack_depth else 0); +} + +// This function only accepts comptime known strings, see `messageColorCopy` for runtime strings +pub inline fn messageColor(comptime msg: [:0]const u8, color: u32) void { + if (!enable) return; + ___tracy_emit_messageLC(msg.ptr, color, if (enable_callstack) callstack_depth else 0); +} + +pub inline fn messageCopy(msg: []const u8) void { + if (!enable) return; + ___tracy_emit_message(msg.ptr, msg.len, if (enable_callstack) callstack_depth else 0); +} + +pub inline fn messageColorCopy(msg: [:0]const u8, color: u32) void { + if (!enable) return; + ___tracy_emit_messageC(msg.ptr, msg.len, color, if (enable_callstack) callstack_depth else 0); +} + +pub inline fn frameMark() void { + if (!enable) return; + ___tracy_emit_frame_mark(null); +} + +pub inline fn frameMarkNamed(comptime name: [:0]const u8) void { + if (!enable) return; + ___tracy_emit_frame_mark(name.ptr); +} + +pub inline fn namedFrame(comptime name: [:0]const u8) Frame(name) { + frameMarkStart(name); + return .{}; +} + +pub fn Frame(comptime name: [:0]const u8) type { + return struct { + pub fn end(_: @This()) void { + frameMarkEnd(name); + } + }; +} + +inline fn frameMarkStart(comptime name: [:0]const u8) void { + if (!enable) return; + ___tracy_emit_frame_mark_start(name.ptr); +} + +inline fn frameMarkEnd(comptime name: [:0]const u8) void { + if (!enable) return; + ___tracy_emit_frame_mark_end(name.ptr); +} + +extern fn ___tracy_emit_frame_mark_start(name: [*:0]const u8) void; +extern fn ___tracy_emit_frame_mark_end(name: [*:0]const u8) void; + +inline fn alloc(ptr: [*]u8, len: usize) void { + if (!enable) return; + + if (enable_callstack) { + ___tracy_emit_memory_alloc_callstack(ptr, len, callstack_depth, 0); + } else { + ___tracy_emit_memory_alloc(ptr, len, 0); + } +} + +inline fn allocNamed(ptr: [*]u8, len: usize, comptime name: [:0]const u8) void { + if (!enable) return; + + if (enable_callstack) { + ___tracy_emit_memory_alloc_callstack_named(ptr, len, callstack_depth, 0, name.ptr); + } else { + ___tracy_emit_memory_alloc_named(ptr, len, 0, name.ptr); + } +} + +inline fn free(ptr: [*]u8) void { + if (!enable) return; + + if (enable_callstack) { + ___tracy_emit_memory_free_callstack(ptr, callstack_depth, 0); + } else { + ___tracy_emit_memory_free(ptr, 0); + } +} + +inline fn freeNamed(ptr: [*]u8, comptime name: [:0]const u8) void { + if (!enable) return; + + if (enable_callstack) { + ___tracy_emit_memory_free_callstack_named(ptr, callstack_depth, 0, name.ptr); + } else { + ___tracy_emit_memory_free_named(ptr, 0, name.ptr); + } +} + +extern fn ___tracy_emit_zone_begin( + srcloc: *const ___tracy_source_location_data, + active: c_int, +) ___tracy_c_zone_context; +extern fn ___tracy_emit_zone_begin_callstack( + srcloc: *const ___tracy_source_location_data, + depth: c_int, + active: c_int, +) ___tracy_c_zone_context; +extern fn ___tracy_emit_zone_text(ctx: ___tracy_c_zone_context, txt: [*]const u8, size: usize) void; +extern fn ___tracy_emit_zone_name(ctx: ___tracy_c_zone_context, txt: [*]const u8, size: usize) void; +extern fn ___tracy_emit_zone_color(ctx: ___tracy_c_zone_context, color: u32) void; +extern fn ___tracy_emit_zone_value(ctx: ___tracy_c_zone_context, value: u64) void; +extern fn ___tracy_emit_zone_end(ctx: ___tracy_c_zone_context) void; +extern fn ___tracy_emit_memory_alloc(ptr: *const anyopaque, size: usize, secure: c_int) void; +extern fn ___tracy_emit_memory_alloc_callstack(ptr: *const anyopaque, size: usize, depth: c_int, secure: c_int) void; +extern fn ___tracy_emit_memory_free(ptr: *const anyopaque, secure: c_int) void; +extern fn ___tracy_emit_memory_free_callstack(ptr: *const anyopaque, depth: c_int, secure: c_int) void; +extern fn ___tracy_emit_memory_alloc_named(ptr: *const anyopaque, size: usize, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_alloc_callstack_named(ptr: *const anyopaque, size: usize, depth: c_int, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_free_named(ptr: *const anyopaque, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_memory_free_callstack_named(ptr: *const anyopaque, depth: c_int, secure: c_int, name: [*:0]const u8) void; +extern fn ___tracy_emit_message(txt: [*]const u8, size: usize, callstack: c_int) void; +extern fn ___tracy_emit_messageL(txt: [*:0]const u8, callstack: c_int) void; +extern fn ___tracy_emit_messageC(txt: [*]const u8, size: usize, color: u32, callstack: c_int) void; +extern fn ___tracy_emit_messageLC(txt: [*:0]const u8, color: u32, callstack: c_int) void; +extern fn ___tracy_emit_frame_mark(name: ?[*:0]const u8) void; + +const ___tracy_source_location_data = extern struct { + name: ?[*:0]const u8, + function: [*:0]const u8, + file: [*:0]const u8, + line: u32, + color: u32, +}; diff --git a/deps/aro/backend.zig b/deps/aro/backend.zig new file mode 100644 index 0000000000..cf938b9531 --- /dev/null +++ b/deps/aro/backend.zig @@ -0,0 +1,13 @@ +pub const Interner = @import("backend/Interner.zig"); +pub const Ir = @import("backend/Ir.zig"); +pub const Object = @import("backend/Object.zig"); + +pub const CallingConvention = enum { + C, + stdcall, + thiscall, + vectorcall, +}; + +pub const version_str = @import("build_options").version_str; +pub const version = @import("std").SemanticVersion.parse(version_str) catch unreachable; diff --git a/deps/aro/backend/Interner.zig b/deps/aro/backend/Interner.zig new file mode 100644 index 0000000000..1c67fa25eb --- /dev/null +++ b/deps/aro/backend/Interner.zig @@ -0,0 +1,647 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; +const assert = std.debug.assert; +const BigIntConst = std.math.big.int.Const; +const BigIntMutable = std.math.big.int.Mutable; +const Hash = std.hash.Wyhash; +const Limb = std.math.big.Limb; + +const Interner = @This(); + +map: std.AutoArrayHashMapUnmanaged(void, void) = .{}, +items: std.MultiArrayList(struct { + tag: Tag, + data: u32, +}) = .{}, +extra: std.ArrayListUnmanaged(u32) = .{}, +limbs: std.ArrayListUnmanaged(Limb) = .{}, +strings: std.ArrayListUnmanaged(u8) = .{}, + +const KeyAdapter = struct { + interner: *const Interner, + + pub fn eql(adapter: KeyAdapter, a: Key, b_void: void, b_map_index: usize) bool { + _ = b_void; + return adapter.interner.get(@as(Ref, @enumFromInt(b_map_index))).eql(a); + } + + pub fn hash(adapter: KeyAdapter, a: Key) u32 { + _ = adapter; + return a.hash(); + } +}; + +pub const Key = union(enum) { + int_ty: u16, + float_ty: u16, + ptr_ty, + noreturn_ty, + void_ty, + func_ty, + array_ty: struct { + len: u64, + child: Ref, + }, + vector_ty: struct { + len: u32, + child: Ref, + }, + record_ty: []const Ref, + /// May not be zero + null, + int: union(enum) { + u64: u64, + i64: i64, + big_int: BigIntConst, + + pub fn toBigInt(repr: @This(), space: *Tag.Int.BigIntSpace) BigIntConst { + return switch (repr) { + .big_int => |x| x, + inline .u64, .i64 => |x| BigIntMutable.init(&space.limbs, x).toConst(), + }; + } + }, + float: Float, + bytes: []const u8, + + pub const Float = union(enum) { + f16: f16, + f32: f32, + f64: f64, + f80: f80, + f128: f128, + }; + + pub fn hash(key: Key) u32 { + var hasher = Hash.init(0); + const tag = std.meta.activeTag(key); + std.hash.autoHash(&hasher, tag); + switch (key) { + .bytes => |bytes| { + hasher.update(bytes); + }, + .record_ty => |elems| for (elems) |elem| { + std.hash.autoHash(&hasher, elem); + }, + .float => |repr| switch (repr) { + inline else => |data| std.hash.autoHash( + &hasher, + @as(std.meta.Int(.unsigned, @bitSizeOf(@TypeOf(data))), @bitCast(data)), + ), + }, + .int => |repr| { + var space: Tag.Int.BigIntSpace = undefined; + const big = repr.toBigInt(&space); + std.hash.autoHash(&hasher, big.positive); + for (big.limbs) |limb| std.hash.autoHash(&hasher, limb); + }, + inline else => |info| { + std.hash.autoHash(&hasher, info); + }, + } + return @truncate(hasher.final()); + } + + pub fn eql(a: Key, b: Key) bool { + const KeyTag = std.meta.Tag(Key); + const a_tag: KeyTag = a; + const b_tag: KeyTag = b; + if (a_tag != b_tag) return false; + switch (a) { + .record_ty => |a_elems| { + const b_elems = b.record_ty; + if (a_elems.len != b_elems.len) return false; + for (a_elems, b_elems) |a_elem, b_elem| { + if (a_elem != b_elem) return false; + } + return true; + }, + .bytes => |a_bytes| { + const b_bytes = b.bytes; + return std.mem.eql(u8, a_bytes, b_bytes); + }, + .int => |a_repr| { + var a_space: Tag.Int.BigIntSpace = undefined; + const a_big = a_repr.toBigInt(&a_space); + var b_space: Tag.Int.BigIntSpace = undefined; + const b_big = b.int.toBigInt(&b_space); + + return a_big.eql(b_big); + }, + inline else => |a_info, tag| { + const b_info = @field(b, @tagName(tag)); + return std.meta.eql(a_info, b_info); + }, + } + } + + fn toRef(key: Key) ?Ref { + switch (key) { + .int_ty => |bits| switch (bits) { + 1 => return .i1, + 8 => return .i8, + 16 => return .i16, + 32 => return .i32, + 64 => return .i64, + 128 => return .i128, + else => {}, + }, + .float_ty => |bits| switch (bits) { + 16 => return .f16, + 32 => return .f32, + 64 => return .f64, + 80 => return .f80, + 128 => return .f128, + else => unreachable, + }, + .ptr_ty => return .ptr, + .func_ty => return .func, + .noreturn_ty => return .noreturn, + .void_ty => return .void, + .int => |repr| { + var space: Tag.Int.BigIntSpace = undefined; + const big = repr.toBigInt(&space); + if (big.eqlZero()) return .zero; + const big_one = BigIntConst{ .limbs = &.{1}, .positive = true }; + if (big.eql(big_one)) return .one; + }, + .float => |repr| switch (repr) { + inline else => |data| { + if (std.math.isPositiveZero(data)) return .zero; + if (data == 1) return .one; + }, + }, + .null => return .null, + else => {}, + } + return null; + } +}; + +pub const Ref = enum(u32) { + const max = std.math.maxInt(u32); + + ptr = max - 1, + noreturn = max - 2, + void = max - 3, + i1 = max - 4, + i8 = max - 5, + i16 = max - 6, + i32 = max - 7, + i64 = max - 8, + i128 = max - 9, + f16 = max - 10, + f32 = max - 11, + f64 = max - 12, + f80 = max - 13, + f128 = max - 14, + func = max - 15, + zero = max - 16, + one = max - 17, + null = max - 18, + _, +}; + +pub const OptRef = enum(u32) { + const max = std.math.maxInt(u32); + + none = max - 0, + ptr = max - 1, + noreturn = max - 2, + void = max - 3, + i1 = max - 4, + i8 = max - 5, + i16 = max - 6, + i32 = max - 7, + i64 = max - 8, + i128 = max - 9, + f16 = max - 10, + f32 = max - 11, + f64 = max - 12, + f80 = max - 13, + f128 = max - 14, + func = max - 15, + zero = max - 16, + one = max - 17, + null = max - 18, + _, +}; + +pub const Tag = enum(u8) { + /// `data` is `u16` + int_ty, + /// `data` is `u16` + float_ty, + /// `data` is index to `Array` + array_ty, + /// `data` is index to `Vector` + vector_ty, + /// `data` is `u32` + u32, + /// `data` is `i32` + i32, + /// `data` is `Int` + int_positive, + /// `data` is `Int` + int_negative, + /// `data` is `f16` + f16, + /// `data` is `f32` + f32, + /// `data` is `F64` + f64, + /// `data` is `F80` + f80, + /// `data` is `F128` + f128, + /// `data` is `Bytes` + bytes, + /// `data` is `Record` + record_ty, + + pub const Array = struct { + len0: u32, + len1: u32, + child: Ref, + + pub fn getLen(a: Array) u64 { + return (PackedU64{ + .a = a.len0, + .b = a.len1, + }).get(); + } + }; + + pub const Vector = struct { + len: u32, + child: Ref, + }; + + pub const Int = struct { + limbs_index: u32, + limbs_len: u32, + + /// Big enough to fit any non-BigInt value + pub const BigIntSpace = struct { + /// The +1 is headroom so that operations such as incrementing once + /// or decrementing once are possible without using an allocator. + limbs: [(@sizeOf(u64) / @sizeOf(std.math.big.Limb)) + 1]std.math.big.Limb, + }; + }; + + pub const F64 = struct { + piece0: u32, + piece1: u32, + + pub fn get(self: F64) f64 { + const int_bits = @as(u64, self.piece0) | (@as(u64, self.piece1) << 32); + return @bitCast(int_bits); + } + + fn pack(val: f64) F64 { + const bits = @as(u64, @bitCast(val)); + return .{ + .piece0 = @as(u32, @truncate(bits)), + .piece1 = @as(u32, @truncate(bits >> 32)), + }; + } + }; + + pub const F80 = struct { + piece0: u32, + piece1: u32, + piece2: u32, // u16 part, top bits + + pub fn get(self: F80) f80 { + const int_bits = @as(u80, self.piece0) | + (@as(u80, self.piece1) << 32) | + (@as(u80, self.piece2) << 64); + return @bitCast(int_bits); + } + + fn pack(val: f80) F80 { + const bits = @as(u80, @bitCast(val)); + return .{ + .piece0 = @as(u32, @truncate(bits)), + .piece1 = @as(u32, @truncate(bits >> 32)), + .piece2 = @as(u16, @truncate(bits >> 64)), + }; + } + }; + + pub const F128 = struct { + piece0: u32, + piece1: u32, + piece2: u32, + piece3: u32, + + pub fn get(self: F128) f128 { + const int_bits = @as(u128, self.piece0) | + (@as(u128, self.piece1) << 32) | + (@as(u128, self.piece2) << 64) | + (@as(u128, self.piece3) << 96); + return @bitCast(int_bits); + } + + fn pack(val: f128) F128 { + const bits = @as(u128, @bitCast(val)); + return .{ + .piece0 = @as(u32, @truncate(bits)), + .piece1 = @as(u32, @truncate(bits >> 32)), + .piece2 = @as(u32, @truncate(bits >> 64)), + .piece3 = @as(u32, @truncate(bits >> 96)), + }; + } + }; + + pub const Bytes = struct { + strings_index: u32, + len: u32, + }; + + pub const Record = struct { + elements_len: u32, + // trailing + // [elements_len]Ref + }; +}; + +pub const PackedU64 = packed struct(u64) { + a: u32, + b: u32, + + pub fn get(x: PackedU64) u64 { + return @bitCast(x); + } + + pub fn init(x: u64) PackedU64 { + return @bitCast(x); + } +}; + +pub fn deinit(i: *Interner, gpa: Allocator) void { + i.map.deinit(gpa); + i.items.deinit(gpa); + i.extra.deinit(gpa); + i.limbs.deinit(gpa); + i.strings.deinit(gpa); +} + +pub fn put(i: *Interner, gpa: Allocator, key: Key) !Ref { + if (key.toRef()) |some| return some; + const adapter: KeyAdapter = .{ .interner = i }; + const gop = try i.map.getOrPutAdapted(gpa, key, adapter); + if (gop.found_existing) return @enumFromInt(gop.index); + try i.items.ensureUnusedCapacity(gpa, 1); + + switch (key) { + .int_ty => |bits| { + i.items.appendAssumeCapacity(.{ + .tag = .int_ty, + .data = bits, + }); + }, + .float_ty => |bits| { + i.items.appendAssumeCapacity(.{ + .tag = .float_ty, + .data = bits, + }); + }, + .array_ty => |info| { + const split_len = PackedU64.init(info.len); + i.items.appendAssumeCapacity(.{ + .tag = .array_ty, + .data = try i.addExtra(gpa, Tag.Array{ + .len0 = split_len.a, + .len1 = split_len.b, + .child = info.child, + }), + }); + }, + .vector_ty => |info| { + i.items.appendAssumeCapacity(.{ + .tag = .vector_ty, + .data = try i.addExtra(gpa, Tag.Vector{ + .len = info.len, + .child = info.child, + }), + }); + }, + .int => |repr| int: { + var space: Tag.Int.BigIntSpace = undefined; + const big = repr.toBigInt(&space); + switch (repr) { + .u64 => |data| if (std.math.cast(u32, data)) |small| { + i.items.appendAssumeCapacity(.{ + .tag = .u32, + .data = small, + }); + break :int; + }, + .i64 => |data| if (std.math.cast(i32, data)) |small| { + i.items.appendAssumeCapacity(.{ + .tag = .i32, + .data = @bitCast(small), + }); + break :int; + }, + .big_int => |data| { + if (data.fitsInTwosComp(.unsigned, 32)) { + i.items.appendAssumeCapacity(.{ + .tag = .u32, + .data = data.to(u32) catch unreachable, + }); + break :int; + } else if (data.fitsInTwosComp(.signed, 32)) { + i.items.appendAssumeCapacity(.{ + .tag = .i32, + .data = @bitCast(data.to(i32) catch unreachable), + }); + break :int; + } + }, + } + const limbs_index: u32 = @intCast(i.limbs.items.len); + try i.limbs.appendSlice(gpa, big.limbs); + i.items.appendAssumeCapacity(.{ + .tag = if (big.positive) .int_positive else .int_negative, + .data = try i.addExtra(gpa, Tag.Int{ + .limbs_index = limbs_index, + .limbs_len = @intCast(big.limbs.len), + }), + }); + }, + .float => |repr| switch (repr) { + .f16 => |data| i.items.appendAssumeCapacity(.{ + .tag = .f16, + .data = @as(u16, @bitCast(data)), + }), + .f32 => |data| i.items.appendAssumeCapacity(.{ + .tag = .f32, + .data = @as(u32, @bitCast(data)), + }), + .f64 => |data| i.items.appendAssumeCapacity(.{ + .tag = .f64, + .data = try i.addExtra(gpa, Tag.F64.pack(data)), + }), + .f80 => |data| i.items.appendAssumeCapacity(.{ + .tag = .f64, + .data = try i.addExtra(gpa, Tag.F80.pack(data)), + }), + .f128 => |data| i.items.appendAssumeCapacity(.{ + .tag = .f64, + .data = try i.addExtra(gpa, Tag.F128.pack(data)), + }), + }, + .bytes => |bytes| { + const strings_index: u32 = @intCast(i.strings.items.len); + try i.strings.appendSlice(gpa, bytes); + i.items.appendAssumeCapacity(.{ + .tag = .bytes, + .data = try i.addExtra(gpa, Tag.Bytes{ + .strings_index = strings_index, + .len = @intCast(bytes.len), + }), + }); + }, + .record_ty => |elems| { + try i.extra.ensureUnusedCapacity(gpa, @typeInfo(Tag.Record).Struct.fields.len + + elems.len); + i.items.appendAssumeCapacity(.{ + .tag = .record_ty, + .data = i.addExtraAssumeCapacity(Tag.Record{ + .elements_len = @intCast(elems.len), + }), + }); + i.extra.appendSliceAssumeCapacity(@ptrCast(elems)); + }, + .ptr_ty, + .noreturn_ty, + .void_ty, + .func_ty, + .null, + => unreachable, + } + + return @enumFromInt(gop.index); +} + +fn addExtra(i: *Interner, gpa: Allocator, extra: anytype) Allocator.Error!u32 { + const fields = @typeInfo(@TypeOf(extra)).Struct.fields; + try i.extra.ensureUnusedCapacity(gpa, fields.len); + return i.addExtraAssumeCapacity(extra); +} + +fn addExtraAssumeCapacity(i: *Interner, extra: anytype) u32 { + const result = @as(u32, @intCast(i.extra.items.len)); + inline for (@typeInfo(@TypeOf(extra)).Struct.fields) |field| { + i.extra.appendAssumeCapacity(switch (field.type) { + Ref => @intFromEnum(@field(extra, field.name)), + u32 => @field(extra, field.name), + else => @compileError("bad field type: " ++ @typeName(field.type)), + }); + } + return result; +} + +pub fn get(i: *const Interner, ref: Ref) Key { + switch (ref) { + .ptr => return .ptr_ty, + .func => return .func_ty, + .noreturn => return .noreturn_ty, + .void => return .void_ty, + .i1 => return .{ .int_ty = 1 }, + .i8 => return .{ .int_ty = 8 }, + .i16 => return .{ .int_ty = 16 }, + .i32 => return .{ .int_ty = 32 }, + .i64 => return .{ .int_ty = 64 }, + .i128 => return .{ .int_ty = 128 }, + .f16 => return .{ .float_ty = 16 }, + .f32 => return .{ .float_ty = 32 }, + .f64 => return .{ .float_ty = 64 }, + .f80 => return .{ .float_ty = 80 }, + .f128 => return .{ .float_ty = 128 }, + .zero => return .{ .int = .{ .u64 = 0 } }, + .one => return .{ .int = .{ .u64 = 1 } }, + .null => return .null, + else => {}, + } + + const item = i.items.get(@intFromEnum(ref)); + const data = item.data; + return switch (item.tag) { + .int_ty => .{ .int_ty = @intCast(data) }, + .float_ty => .{ .float_ty = @intCast(data) }, + .array_ty => { + const array_ty = i.extraData(Tag.Array, data); + return .{ .array_ty = .{ + .len = array_ty.getLen(), + .child = array_ty.child, + } }; + }, + .vector_ty => { + const vector_ty = i.extraData(Tag.Vector, data); + return .{ .vector_ty = .{ + .len = vector_ty.len, + .child = vector_ty.child, + } }; + }, + .u32 => .{ .int = .{ .u64 = data } }, + .i32 => .{ .int = .{ .i64 = @as(i32, @bitCast(data)) } }, + .int_positive, .int_negative => { + const int_info = i.extraData(Tag.Int, data); + const limbs = i.limbs.items[int_info.limbs_index..][0..int_info.limbs_len]; + return .{ .int = .{ + .big_int = .{ + .positive = item.tag == .int_positive, + .limbs = limbs, + }, + } }; + }, + .f16 => .{ .float = .{ .f16 = @bitCast(@as(u16, @intCast(data))) } }, + .f32 => .{ .float = .{ .f32 = @bitCast(data) } }, + .f64 => { + const float = i.extraData(Tag.F64, data); + return .{ .float = .{ .f64 = float.get() } }; + }, + .f80 => { + const float = i.extraData(Tag.F80, data); + return .{ .float = .{ .f80 = float.get() } }; + }, + .f128 => { + const float = i.extraData(Tag.F128, data); + return .{ .float = .{ .f128 = float.get() } }; + }, + .bytes => { + const bytes = i.extraData(Tag.Bytes, data); + return .{ .bytes = i.strings.items[bytes.strings_index..][0..bytes.len] }; + }, + .record_ty => { + const extra = i.extraDataTrail(Tag.Record, data); + return .{ + .record_ty = @ptrCast(i.extra.items[extra.end..][0..extra.data.elements_len]), + }; + }, + }; +} + +fn extraData(i: *const Interner, comptime T: type, index: usize) T { + return i.extraDataTrail(T, index).data; +} + +fn extraDataTrail(i: *const Interner, comptime T: type, index: usize) struct { data: T, end: u32 } { + var result: T = undefined; + const fields = @typeInfo(T).Struct.fields; + inline for (fields, 0..) |field, field_i| { + const int32 = i.extra.items[field_i + index]; + @field(result, field.name) = switch (field.type) { + Ref => @enumFromInt(int32), + u32 => int32, + else => @compileError("bad field type: " ++ @typeName(field.type)), + }; + } + return .{ + .data = result, + .end = @intCast(index + fields.len), + }; +} diff --git a/deps/aro/Ir.zig b/deps/aro/backend/Ir.zig similarity index 56% rename from deps/aro/Ir.zig rename to deps/aro/backend/Ir.zig index 4c45f78bb3..7a5ba064da 100644 --- a/deps/aro/Ir.zig +++ b/deps/aro/backend/Ir.zig @@ -1,51 +1,79 @@ const std = @import("std"); -const assert = std.debug.assert; const Allocator = std.mem.Allocator; -const Compilation = @import("Compilation.zig"); +const assert = std.debug.assert; const Interner = @import("Interner.zig"); -const StringId = @import("StringInterner.zig").StringId; -const Value = @import("Value.zig"); +const Object = @import("Object.zig"); const Ir = @This(); -pool: Interner, -strings: []const u8, -// decls: std.StringArrayHashMapUnmanaged(Decl), +interner: *Interner, +decls: std.StringArrayHashMapUnmanaged(Decl), -// pub const Decl = struct { -instructions: std.MultiArrayList(Inst), -body: std.ArrayListUnmanaged(Ref), -arena: std.heap.ArenaAllocator.State, -// }; +pub const Decl = struct { + instructions: std.MultiArrayList(Inst), + body: std.ArrayListUnmanaged(Ref), + arena: std.heap.ArenaAllocator.State, + + pub fn deinit(decl: *Decl, gpa: Allocator) void { + decl.instructions.deinit(gpa); + decl.body.deinit(gpa); + decl.arena.promote(gpa).deinit(); + } +}; pub const Builder = struct { gpa: Allocator, arena: std.heap.ArenaAllocator, + interner: *Interner, + + decls: std.StringArrayHashMapUnmanaged(Decl) = .{}, instructions: std.MultiArrayList(Ir.Inst) = .{}, body: std.ArrayListUnmanaged(Ref) = .{}, alloc_count: u32 = 0, arg_count: u32 = 0, - pool: Interner = .{}, current_label: Ref = undefined, pub fn deinit(b: *Builder) void { + for (b.decls.values()) |*decl| { + decl.deinit(b.gpa); + } b.arena.deinit(); b.instructions.deinit(b.gpa); b.body.deinit(b.gpa); - b.pool.deinit(b.gpa); b.* = undefined; } + pub fn finish(b: *Builder) Ir { + return .{ + .interner = b.interner, + .decls = b.decls.move(), + }; + } + pub fn startFn(b: *Builder) Allocator.Error!void { - b.alloc_count = 0; - b.arg_count = 0; - b.instructions.len = 0; - b.body.items.len = 0; const entry = try b.makeLabel("entry"); try b.body.append(b.gpa, entry); b.current_label = entry; } + pub fn finishFn(b: *Builder, name: []const u8) !void { + var duped_instructions = try b.instructions.clone(b.gpa); + errdefer duped_instructions.deinit(b.gpa); + var duped_body = try b.body.clone(b.gpa); + errdefer duped_body.deinit(b.gpa); + + try b.decls.put(b.gpa, name, .{ + .instructions = duped_instructions, + .body = duped_body, + .arena = b.arena.state, + }); + b.instructions.shrinkRetainingCapacity(0); + b.body.shrinkRetainingCapacity(0); + b.arena = std.heap.ArenaAllocator.init(b.gpa); + b.alloc_count = 0; + b.arg_count = 0; + } + pub fn startBlock(b: *Builder, label: Ref) !void { try b.body.append(b.gpa, label); b.current_label = label; @@ -116,15 +144,13 @@ pub const Builder = struct { _ = try b.addInst(.store, .{ .bin = .{ .lhs = ptr, .rhs = val } }, .void); } - pub fn addConstant(b: *Builder, val: Value, ty: Interner.Ref) Allocator.Error!Ref { + pub fn addConstant(b: *Builder, val: Interner.Ref, ty: Interner.Ref) Allocator.Error!Ref { const ref: Ref = @enumFromInt(b.instructions.len); - const key: Interner.Key = .{ - .value = val, - }; - const val_ref = try b.pool.put(b.gpa, key); - try b.instructions.append(b.gpa, .{ .tag = .constant, .data = .{ - .constant = val_ref, - }, .ty = ty }); + try b.instructions.append(b.gpa, .{ + .tag = .constant, + .data = .{ .constant = val }, + .ty = ty, + }); return ref; } @@ -148,6 +174,65 @@ pub const Builder = struct { } }; +pub const Renderer = struct { + gpa: Allocator, + obj: *Object, + ir: *const Ir, + errors: ErrorList = .{}, + + pub const ErrorList = std.StringArrayHashMapUnmanaged([]const u8); + + pub const Error = Allocator.Error || error{LowerFail}; + + pub fn deinit(r: *Renderer) void { + for (r.errors.values()) |msg| r.gpa.free(msg); + r.errors.deinit(r.gpa); + } + + pub fn render(r: *Renderer) !void { + switch (r.obj.target.cpu.arch) { + .x86, .x86_64 => return @import("Ir/x86/Renderer.zig").render(r), + else => unreachable, + } + } + + pub fn fail( + r: *Renderer, + name: []const u8, + comptime format: []const u8, + args: anytype, + ) Error { + try r.errors.ensureUnusedCapacity(r.gpa, 1); + r.errors.putAssumeCapacity(name, try std.fmt.allocPrint(r.gpa, format, args)); + return error.LowerFail; + } +}; + +pub fn render( + ir: *const Ir, + gpa: Allocator, + target: std.Target, + errors: ?*Renderer.ErrorList, +) !*Object { + const obj = try Object.create(gpa, target); + errdefer obj.deinit(); + + var renderer: Renderer = .{ + .gpa = gpa, + .obj = obj, + .ir = ir, + }; + defer { + if (errors) |some| { + some.* = renderer.errors.move(); + } + renderer.deinit(); + } + + try renderer.render(); + return obj; +} + pub const Ref = enum(u32) { none = std.math.maxInt(u32), _ }; pub const Inst = struct { @@ -281,23 +366,30 @@ pub const Inst = struct { }; pub fn deinit(ir: *Ir, gpa: std.mem.Allocator) void { - ir.arena.promote(gpa).deinit(); - ir.instructions.deinit(gpa); + for (ir.decls.values()) |*decl| { + decl.deinit(gpa); + } + ir.decls.deinit(gpa); ir.* = undefined; } -const util = @import("util.zig"); -const TYPE = util.Color.purple; -const INST = util.Color.cyan; -const REF = util.Color.blue; -const LITERAL = util.Color.green; -const ATTRIBUTE = util.Color.yellow; +const TYPE = std.io.tty.Color.bright_magenta; +const INST = std.io.tty.Color.bright_cyan; +const REF = std.io.tty.Color.bright_blue; +const LITERAL = std.io.tty.Color.bright_green; +const ATTRIBUTE = std.io.tty.Color.bright_yellow; const RefMap = std.AutoArrayHashMap(Ref, void); -pub fn dump(ir: Ir, gpa: Allocator, name: []const u8, color: bool, w: anytype) !void { - const tags = ir.instructions.items(.tag); - const data = ir.instructions.items(.data); +pub fn dump(ir: *const Ir, gpa: Allocator, config: std.io.tty.Config, w: anytype) !void { + for (ir.decls.keys(), ir.decls.values()) |name, *decl| { + try ir.dumpDecl(decl, gpa, name, config, w); + } +} + +fn dumpDecl(ir: *const Ir, decl: *const Decl, gpa: Allocator, name: []const u8, config: std.io.tty.Config, w: anytype) !void { + const tags = decl.instructions.items(.tag); + const data = decl.instructions.items(.data); var ref_map = RefMap.init(gpa); defer ref_map.deinit(); @@ -305,40 +397,40 @@ pub fn dump(ir: Ir, gpa: Allocator, name: []const u8, color: bool, w: anytype) ! var label_map = RefMap.init(gpa); defer label_map.deinit(); - const ret_inst = ir.body.items[ir.body.items.len - 1]; + const ret_inst = decl.body.items[decl.body.items.len - 1]; const ret_operand = data[@intFromEnum(ret_inst)].un; - const ret_ty = ir.instructions.items(.ty)[@intFromEnum(ret_operand)]; - try ir.writeType(ret_ty, color, w); - if (color) util.setColor(REF, w); + const ret_ty = decl.instructions.items(.ty)[@intFromEnum(ret_operand)]; + try ir.writeType(ret_ty, config, w); + try config.setColor(w, REF); try w.print(" @{s}", .{name}); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeAll("("); var arg_count: u32 = 0; while (true) : (arg_count += 1) { - const ref = ir.body.items[arg_count]; + const ref = decl.body.items[arg_count]; if (tags[@intFromEnum(ref)] != .arg) break; if (arg_count != 0) try w.writeAll(", "); try ref_map.put(ref, {}); - try ir.writeRef(&ref_map, ref, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, ref, config, w); + try config.setColor(w, .reset); } try w.writeAll(") {\n"); - for (ir.body.items[arg_count..]) |ref| { + for (decl.body.items[arg_count..]) |ref| { switch (tags[@intFromEnum(ref)]) { .label => try label_map.put(ref, {}), else => {}, } } - for (ir.body.items[arg_count..]) |ref| { + for (decl.body.items[arg_count..]) |ref| { const i = @intFromEnum(ref); const tag = tags[i]; switch (tag) { .arg, .constant, .symbol => unreachable, .label => { const label_index = label_map.getIndex(ref).?; - if (color) util.setColor(REF, w); + try config.setColor(w, REF); try w.print("{s}.{d}:\n", .{ data[i].label, label_index }); }, // .label_val => { @@ -347,35 +439,35 @@ pub fn dump(ir: Ir, gpa: Allocator, name: []const u8, color: bool, w: anytype) ! // }, .jmp => { const un = data[i].un; - if (color) util.setColor(INST, w); + try config.setColor(w, INST); try w.writeAll(" jmp "); - try ir.writeLabel(&label_map, un, color, w); + try writeLabel(decl, &label_map, un, config, w); try w.writeByte('\n'); }, .branch => { const br = data[i].branch; - if (color) util.setColor(INST, w); + try config.setColor(w, INST); try w.writeAll(" branch "); - try ir.writeRef(&ref_map, br.cond, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, br.cond, config, w); + try config.setColor(w, .reset); try w.writeAll(", "); - try ir.writeLabel(&label_map, br.then, color, w); - if (color) util.setColor(.reset, w); + try writeLabel(decl, &label_map, br.then, config, w); + try config.setColor(w, .reset); try w.writeAll(", "); - try ir.writeLabel(&label_map, br.@"else", color, w); + try writeLabel(decl, &label_map, br.@"else", config, w); try w.writeByte('\n'); }, .select => { const br = data[i].branch; - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.writeAll("select "); - try ir.writeRef(&ref_map, br.cond, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, br.cond, config, w); + try config.setColor(w, .reset); try w.writeAll(", "); - try ir.writeRef(&ref_map, br.then, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, br.then, config, w); + try config.setColor(w, .reset); try w.writeAll(", "); - try ir.writeRef(&ref_map, br.@"else", color, w); + try ir.writeRef(decl, &ref_map, br.@"else", config, w); try w.writeByte('\n'); }, // .jmp_val => { @@ -384,91 +476,91 @@ pub fn dump(ir: Ir, gpa: Allocator, name: []const u8, color: bool, w: anytype) ! // }, .@"switch" => { const @"switch" = data[i].@"switch"; - if (color) util.setColor(INST, w); + try config.setColor(w, INST); try w.writeAll(" switch "); - try ir.writeRef(&ref_map, @"switch".target, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, @"switch".target, config, w); + try config.setColor(w, .reset); try w.writeAll(" {"); for (@"switch".case_vals[0..@"switch".cases_len], @"switch".case_labels) |val_ref, label_ref| { try w.writeAll("\n "); - try ir.writeValue(val_ref, color, w); - if (color) util.setColor(.reset, w); + try ir.writeValue(val_ref, config, w); + try config.setColor(w, .reset); try w.writeAll(" => "); - try ir.writeLabel(&label_map, label_ref, color, w); - if (color) util.setColor(.reset, w); + try writeLabel(decl, &label_map, label_ref, config, w); + try config.setColor(w, .reset); } - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.writeAll("\n default "); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeAll("=> "); - try ir.writeLabel(&label_map, @"switch".default, color, w); - if (color) util.setColor(.reset, w); + try writeLabel(decl, &label_map, @"switch".default, config, w); + try config.setColor(w, .reset); try w.writeAll("\n }\n"); }, .call => { const call = data[i].call; - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.writeAll("call "); - try ir.writeRef(&ref_map, call.func, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, call.func, config, w); + try config.setColor(w, .reset); try w.writeAll("("); for (call.args(), 0..) |arg, arg_i| { if (arg_i != 0) try w.writeAll(", "); - try ir.writeRef(&ref_map, arg, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, arg, config, w); + try config.setColor(w, .reset); } try w.writeAll(")\n"); }, .alloc => { const alloc = data[i].alloc; - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.writeAll("alloc "); - if (color) util.setColor(ATTRIBUTE, w); + try config.setColor(w, ATTRIBUTE); try w.writeAll("size "); - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.print("{d}", .{alloc.size}); - if (color) util.setColor(ATTRIBUTE, w); + try config.setColor(w, ATTRIBUTE); try w.writeAll(" align "); - if (color) util.setColor(LITERAL, w); + try config.setColor(w, LITERAL); try w.print("{d}", .{alloc.@"align"}); try w.writeByte('\n'); }, .phi => { - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.writeAll("phi"); - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeAll(" {"); for (data[i].phi.inputs()) |input| { try w.writeAll("\n "); - try ir.writeLabel(&label_map, input.label, color, w); - if (color) util.setColor(.reset, w); + try writeLabel(decl, &label_map, input.label, config, w); + try config.setColor(w, .reset); try w.writeAll(" => "); - try ir.writeRef(&ref_map, input.value, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, input.value, config, w); + try config.setColor(w, .reset); } - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeAll("\n }\n"); }, .store => { const bin = data[i].bin; - if (color) util.setColor(INST, w); + try config.setColor(w, INST); try w.writeAll(" store "); - try ir.writeRef(&ref_map, bin.lhs, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, bin.lhs, config, w); + try config.setColor(w, .reset); try w.writeAll(", "); - try ir.writeRef(&ref_map, bin.rhs, color, w); + try ir.writeRef(decl, &ref_map, bin.rhs, config, w); try w.writeByte('\n'); }, .ret => { - if (color) util.setColor(INST, w); + try config.setColor(w, INST); try w.writeAll(" ret "); - if (data[i].un != .none) try ir.writeRef(&ref_map, data[i].un, color, w); + if (data[i].un != .none) try ir.writeRef(decl, &ref_map, data[i].un, config, w); try w.writeByte('\n'); }, .load => { - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.writeAll("load "); - try ir.writeRef(&ref_map, data[i].un, color, w); + try ir.writeRef(decl, &ref_map, data[i].un, config, w); try w.writeByte('\n'); }, .bit_or, @@ -489,12 +581,12 @@ pub fn dump(ir: Ir, gpa: Allocator, name: []const u8, color: bool, w: anytype) ! .mod, => { const bin = data[i].bin; - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.print("{s} ", .{@tagName(tag)}); - try ir.writeRef(&ref_map, bin.lhs, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, &ref_map, bin.lhs, config, w); + try config.setColor(w, .reset); try w.writeAll(", "); - try ir.writeRef(&ref_map, bin.rhs, color, w); + try ir.writeRef(decl, &ref_map, bin.rhs, config, w); try w.writeByte('\n'); }, .bit_not, @@ -504,98 +596,101 @@ pub fn dump(ir: Ir, gpa: Allocator, name: []const u8, color: bool, w: anytype) ! .sext, => { const un = data[i].un; - try ir.writeNewRef(&ref_map, ref, color, w); + try ir.writeNewRef(decl, &ref_map, ref, config, w); try w.print("{s} ", .{@tagName(tag)}); - try ir.writeRef(&ref_map, un, color, w); + try ir.writeRef(decl, &ref_map, un, config, w); try w.writeByte('\n'); }, .label_addr, .jmp_val => {}, } } - if (color) util.setColor(.reset, w); + try config.setColor(w, .reset); try w.writeAll("}\n\n"); } -fn writeType(ir: Ir, ty_ref: Interner.Ref, color: bool, w: anytype) !void { - const ty = ir.pool.get(ty_ref); - if (color) util.setColor(TYPE, w); +fn writeType(ir: Ir, ty_ref: Interner.Ref, config: std.io.tty.Config, w: anytype) !void { + const ty = ir.interner.get(ty_ref); + try config.setColor(w, TYPE); switch (ty) { - .value => unreachable, - .ptr, .noreturn, .void, .func => try w.writeAll(@tagName(ty)), - .int => |bits| try w.print("i{d}", .{bits}), - .float => |bits| try w.print("f{d}", .{bits}), - .array => |info| { + .ptr_ty, .noreturn_ty, .void_ty, .func_ty => try w.writeAll(@tagName(ty)), + .int_ty => |bits| try w.print("i{d}", .{bits}), + .float_ty => |bits| try w.print("f{d}", .{bits}), + .array_ty => |info| { try w.print("[{d} * ", .{info.len}); - try ir.writeType(info.child, false, w); + try ir.writeType(info.child, .no_color, w); try w.writeByte(']'); }, - .vector => |info| { + .vector_ty => |info| { try w.print("<{d} * ", .{info.len}); - try ir.writeType(info.child, false, w); + try ir.writeType(info.child, .no_color, w); try w.writeByte('>'); }, - .record => |info| { + .record_ty => |elems| { // TODO collect into buffer and only print once try w.writeAll("{ "); - for (info.elements, 0..) |elem, i| { + for (elems, 0..) |elem, i| { if (i != 0) try w.writeAll(", "); - try ir.writeType(elem, color, w); + try ir.writeType(elem, config, w); } try w.writeAll(" }"); }, + else => unreachable, // not a type } } -fn writeValue(ir: Ir, val_ref: Interner.Ref, color: bool, w: anytype) !void { - const v = ir.pool.get(val_ref).value; - if (color) util.setColor(LITERAL, w); - switch (v.tag) { - .unavailable => try w.writeAll(" unavailable"), - .int => try w.print("{d}", .{v.data.int}), - .bytes => try w.print("\"{s}\"", .{v.data.bytes.slice(ir.strings, .@"1")}), - // std.fmt does @as instead of @floatCast - .float => try w.print("{d}", .{@as(f64, @floatCast(v.data.float))}), - else => try w.print("({s})", .{@tagName(v.tag)}), +fn writeValue(ir: Ir, val: Interner.Ref, config: std.io.tty.Config, w: anytype) !void { + try config.setColor(w, LITERAL); + const key = ir.interner.get(val); + switch (key) { + .null => return w.writeAll("nullptr_t"), + .int => |repr| switch (repr) { + inline else => |x| return w.print("{d}", .{x}), + }, + .float => |repr| switch (repr) { + inline else => |x| return w.print("{d}", .{@as(f64, @floatCast(x))}), + }, + .bytes => |b| return std.zig.fmt.stringEscape(b, "", .{}, w), + else => unreachable, // not a value } } -fn writeRef(ir: Ir, ref_map: *RefMap, ref: Ref, color: bool, w: anytype) !void { +fn writeRef(ir: Ir, decl: *const Decl, ref_map: *RefMap, ref: Ref, config: std.io.tty.Config, w: anytype) !void { assert(ref != .none); const index = @intFromEnum(ref); - const ty_ref = ir.instructions.items(.ty)[index]; - if (ir.instructions.items(.tag)[index] == .constant) { - try ir.writeType(ty_ref, color, w); - const v_ref = ir.instructions.items(.data)[index].constant; + const ty_ref = decl.instructions.items(.ty)[index]; + if (decl.instructions.items(.tag)[index] == .constant) { + try ir.writeType(ty_ref, config, w); + const v_ref = decl.instructions.items(.data)[index].constant; try w.writeByte(' '); - try ir.writeValue(v_ref, color, w); + try ir.writeValue(v_ref, config, w); return; - } else if (ir.instructions.items(.tag)[index] == .symbol) { - const name = ir.instructions.items(.data)[index].label; - try ir.writeType(ty_ref, color, w); - if (color) util.setColor(REF, w); + } else if (decl.instructions.items(.tag)[index] == .symbol) { + const name = decl.instructions.items(.data)[index].label; + try ir.writeType(ty_ref, config, w); + try config.setColor(w, REF); try w.print(" @{s}", .{name}); return; } - try ir.writeType(ty_ref, color, w); - if (color) util.setColor(REF, w); + try ir.writeType(ty_ref, config, w); + try config.setColor(w, REF); const ref_index = ref_map.getIndex(ref).?; try w.print(" %{d}", .{ref_index}); } -fn writeNewRef(ir: Ir, ref_map: *RefMap, ref: Ref, color: bool, w: anytype) !void { +fn writeNewRef(ir: Ir, decl: *const Decl, ref_map: *RefMap, ref: Ref, config: std.io.tty.Config, w: anytype) !void { try ref_map.put(ref, {}); try w.writeAll(" "); - try ir.writeRef(ref_map, ref, color, w); - if (color) util.setColor(.reset, w); + try ir.writeRef(decl, ref_map, ref, config, w); + try config.setColor(w, .reset); try w.writeAll(" = "); - if (color) util.setColor(INST, w); + try config.setColor(w, INST); } -fn writeLabel(ir: Ir, label_map: *RefMap, ref: Ref, color: bool, w: anytype) !void { +fn writeLabel(decl: *const Decl, label_map: *RefMap, ref: Ref, config: std.io.tty.Config, w: anytype) !void { assert(ref != .none); const index = @intFromEnum(ref); - const label = ir.instructions.items(.data)[index].label; - if (color) util.setColor(REF, w); + const label = decl.instructions.items(.data)[index].label; + try config.setColor(w, REF); const label_index = label_map.getIndex(ref).?; try w.print("{s}.{d}", .{ label, label_index }); } diff --git a/deps/aro/backend/Ir/x86/Renderer.zig b/deps/aro/backend/Ir/x86/Renderer.zig new file mode 100644 index 0000000000..0726e63856 --- /dev/null +++ b/deps/aro/backend/Ir/x86/Renderer.zig @@ -0,0 +1,65 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; +const assert = std.debug.assert; +const Interner = @import("../../Interner.zig"); +const Ir = @import("../../Ir.zig"); +const BaseRenderer = Ir.Renderer; +const zig = @import("zig"); +const abi = zig.arch.x86_64.abi; +const bits = zig.arch.x86_64.bits; + +const Condition = bits.Condition; +const Immediate = bits.Immediate; +const Memory = bits.Memory; +const Register = bits.Register; +const RegisterLock = RegisterManager.RegisterLock; +const FrameIndex = bits.FrameIndex; + +const RegisterManager = zig.RegisterManager(Renderer, Register, Ir.Ref, abi.allocatable_regs); + +// Register classes +const RegisterBitSet = RegisterManager.RegisterBitSet; +const RegisterClass = struct { + const gp: RegisterBitSet = blk: { + var set = RegisterBitSet.initEmpty(); + for (abi.allocatable_regs, 0..) |reg, index| if (reg.class() == .general_purpose) set.set(index); + break :blk set; + }; + const x87: RegisterBitSet = blk: { + var set = RegisterBitSet.initEmpty(); + for (abi.allocatable_regs, 0..) |reg, index| if (reg.class() == .x87) set.set(index); + break :blk set; + }; + const sse: RegisterBitSet = blk: { + var set = RegisterBitSet.initEmpty(); + for (abi.allocatable_regs, 0..) |reg, index| if (reg.class() == .sse) set.set(index); + break :blk set; + }; +}; + +const Renderer = @This(); + +base: *BaseRenderer, +interner: *Interner, + +register_manager: RegisterManager = .{}, + +pub fn render(base: *BaseRenderer) !void { + var renderer: Renderer = .{ + .base = base, + .interner = base.ir.interner, + }; + + for (renderer.base.ir.decls.keys(), renderer.base.ir.decls.values()) |name, decl| { + renderer.renderFn(name, decl) catch |e| switch (e) { + error.OutOfMemory => return e, + error.LowerFail => continue, + }; + } + if (renderer.base.errors.entries.len != 0) return error.LowerFail; +} + +fn renderFn(r: *Renderer, name: []const u8, decl: Ir.Decl) !void { + _ = decl; + return r.base.fail(name, "TODO implement lowering functions", .{}); +} diff --git a/deps/aro/Object.zig b/deps/aro/backend/Object.zig similarity index 86% rename from deps/aro/Object.zig rename to deps/aro/backend/Object.zig index d739c16764..db88009905 100644 --- a/deps/aro/Object.zig +++ b/deps/aro/backend/Object.zig @@ -1,15 +1,15 @@ const std = @import("std"); -const Compilation = @import("Compilation.zig"); -const Elf = @import("object/Elf.zig"); +const Allocator = std.mem.Allocator; +const Elf = @import("Object/Elf.zig"); const Object = @This(); format: std.Target.ObjectFormat, -comp: *Compilation, +target: std.Target, -pub fn create(comp: *Compilation) !*Object { - switch (comp.target.ofmt) { - .elf => return Elf.create(comp), +pub fn create(gpa: Allocator, target: std.Target) !*Object { + switch (target.ofmt) { + .elf => return Elf.create(gpa, target), else => unreachable, } } diff --git a/deps/aro/object/Elf.zig b/deps/aro/backend/Object/Elf.zig similarity index 96% rename from deps/aro/object/Elf.zig rename to deps/aro/backend/Object/Elf.zig index b7e5c51656..a14830813f 100644 --- a/deps/aro/object/Elf.zig +++ b/deps/aro/backend/Object/Elf.zig @@ -1,9 +1,8 @@ const std = @import("std"); -const Compilation = @import("../Compilation.zig"); +const Allocator = std.mem.Allocator; +const Target = std.Target; const Object = @import("../Object.zig"); -const Elf = @This(); - const Section = struct { data: std.ArrayList(u8), relocations: std.ArrayListUnmanaged(Relocation) = .{}, @@ -34,6 +33,8 @@ const strtab_default = "\x00.strtab\x00.symtab\x00"; const strtab_name = 1; const symtab_name = "\x00.strtab\x00".len; +const Elf = @This(); + obj: Object, /// The keys are owned by the Codegen.tree sections: std.StringHashMapUnmanaged(*Section) = .{}, @@ -43,11 +44,11 @@ unnamed_symbol_mangle: u32 = 0, strtab_len: u64 = strtab_default.len, arena: std.heap.ArenaAllocator, -pub fn create(comp: *Compilation) !*Object { - const elf = try comp.gpa.create(Elf); +pub fn create(gpa: Allocator, target: Target) !*Object { + const elf = try gpa.create(Elf); elf.* = .{ - .obj = .{ .format = .elf, .comp = comp }, - .arena = std.heap.ArenaAllocator.init(comp.gpa), + .obj = .{ .format = .elf, .target = target }, + .arena = std.heap.ArenaAllocator.init(gpa), }; return &elf.obj; } @@ -195,10 +196,10 @@ pub fn finish(elf: *Elf, file: std.fs.File) !void { const sh_offset = strtab_offset + elf.strtab_len; const sh_offset_aligned = std.mem.alignForward(u64, sh_offset, 16); - var elf_header = std.elf.Elf64_Ehdr{ + const elf_header = std.elf.Elf64_Ehdr{ .e_ident = .{ 0x7F, 'E', 'L', 'F', 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, .e_type = std.elf.ET.REL, // we only produce relocatables - .e_machine = elf.obj.comp.target.cpu.arch.toElfMachine(), + .e_machine = elf.obj.target.cpu.arch.toElfMachine(), .e_version = 1, .e_entry = 0, // linker will handle this .e_phoff = 0, // no program header @@ -298,7 +299,7 @@ pub fn finish(elf: *Elf, file: std.fs.File) !void { // write strtab section header { - var sect_header = std.elf.Elf64_Shdr{ + const sect_header = std.elf.Elf64_Shdr{ .sh_name = strtab_name, .sh_type = std.elf.SHT_STRTAB, .sh_flags = 0, @@ -315,7 +316,7 @@ pub fn finish(elf: *Elf, file: std.fs.File) !void { // write symtab section header { - var sect_header = std.elf.Elf64_Shdr{ + const sect_header = std.elf.Elf64_Shdr{ .sh_name = symtab_name, .sh_type = std.elf.SHT_SYMTAB, .sh_flags = 0, diff --git a/deps/aro/build/GenerateDef.zig b/deps/aro/build/GenerateDef.zig index cb2238b542..129d65ebdf 100644 --- a/deps/aro/build/GenerateDef.zig +++ b/deps/aro/build/GenerateDef.zig @@ -1,25 +1,31 @@ const std = @import("std"); -const GenerateDef = @This(); const Step = std.Build.Step; const Allocator = std.mem.Allocator; const GeneratedFile = std.Build.GeneratedFile; +const GenerateDef = @This(); + step: Step, path: []const u8, +name: []const u8, +kind: Options.Kind, generated_file: GeneratedFile, pub const base_id: Step.Id = .custom; -pub fn add( - owner: *std.Build, - def_file_path: []const u8, - import_path: []const u8, - compile_step: *Step.Compile, - aro_module: *std.Build.Module, -) void { - const self = owner.allocator.create(GenerateDef) catch @panic("OOM"); +pub const Options = struct { + name: []const u8, + src_prefix: []const u8 = "src/aro", + kind: Kind = .dafsa, - const name = owner.fmt("GenerateDef {s}", .{def_file_path}); + pub const Kind = enum { dafsa, named }; +}; + +pub fn create(owner: *std.Build, options: Options) std.Build.ModuleDependency { + const self = owner.allocator.create(GenerateDef) catch @panic("OOM"); + const path = owner.pathJoin(&.{ options.src_prefix, options.name }); + + const name = owner.fmt("GenerateDef {s}", .{options.name}); self.* = .{ .step = Step.init(.{ .id = base_id, @@ -27,16 +33,18 @@ pub fn add( .owner = owner, .makeFn = make, }), - .path = def_file_path, + .path = path, + .name = options.name, + .kind = options.kind, .generated_file = .{ .step = &self.step }, }; - - const module = owner.createModule(.{ + const module = self.step.owner.createModule(.{ .source_file = .{ .generated = &self.generated_file }, }); - compile_step.addModule(import_path, module); - compile_step.step.dependOn(&self.step); - aro_module.dependencies.put(import_path, module) catch @panic("OOM"); + return .{ + .module = module, + .name = self.name, + }; } fn make(step: *Step, prog_node: *std.Progress.Node) !void { @@ -132,7 +140,7 @@ fn generate(self: *GenerateDef, input: []const u8) ![]const u8 { } { - var sorted_list = try arena.dupe([]const u8, values.keys()); + const sorted_list = try arena.dupe([]const u8, values.keys()); defer arena.free(sorted_list); std.mem.sort([]const u8, sorted_list, {}, struct { pub fn lessThan(_: void, a: []const u8, b: []const u8) bool { @@ -168,15 +176,6 @@ fn generate(self: *GenerateDef, input: []const u8) ![]const u8 { } } - var values_array = try arena.alloc(Value, values.count()); - defer arena.free(values_array); - - for (values.keys(), values.values()) |name, props| { - const unique_index = builder.getUniqueIndex(name).?; - const data_index = unique_index - 1; - values_array[data_index] = .{ .name = name, .properties = props }; - } - var out_buf = std.ArrayList(u8).init(arena); defer out_buf.deinit(); const writer = out_buf.writer(); @@ -193,6 +192,49 @@ fn generate(self: *GenerateDef, input: []const u8) ![]const u8 { for (headers.items) |line| { try writer.print("{s}\n", .{line}); } + if (self.kind == .named) { + try writer.writeAll("pub const Tag = enum {\n"); + for (values.keys()) |property| { + try writer.print(" {s},\n", .{std.zig.fmtId(property)}); + } + try writer.writeAll( + \\ + \\ pub fn property(tag: Tag) Properties { + \\ return named_data[@intFromEnum(tag)]; + \\ } + \\ + \\ const named_data = [_]Properties{ + \\ + ); + for (values.values()) |val_props| { + try writer.writeAll(" .{"); + for (val_props, 0..) |val_prop, j| { + if (j != 0) try writer.writeByte(','); + try writer.writeByte(' '); + try writer.writeAll(val_prop); + } + try writer.writeAll(" },\n"); + } + try writer.writeAll( + \\ }; + \\}; + \\}; + \\} + \\ + ); + + return out_buf.toOwnedSlice(); + } + + var values_array = try arena.alloc(Value, values.count()); + defer arena.free(values_array); + + for (values.keys(), values.values()) |name, props| { + const unique_index = builder.getUniqueIndex(name).?; + const data_index = unique_index - 1; + values_array[data_index] = .{ .name = name, .properties = props }; + } + try writer.writeAll( \\ \\tag: Tag, @@ -418,7 +460,7 @@ const DafsaBuilder = struct { var arena = std.heap.ArenaAllocator.init(allocator); errdefer arena.deinit(); - var root = try arena.allocator().create(Node); + const root = try arena.allocator().create(Node); root.* = .{}; return DafsaBuilder{ .root = root, @@ -498,7 +540,7 @@ const DafsaBuilder = struct { std.debug.assert(node.children[c] == null); var arena = self.arena.promote(self.allocator); - var child = try arena.allocator().create(Node); + const child = try arena.allocator().create(Node); self.arena = arena.state; child.* = .{}; diff --git a/deps/aro/codegen/x86_64.zig b/deps/aro/codegen/x86_64.zig deleted file mode 100644 index aa96b4dff5..0000000000 --- a/deps/aro/codegen/x86_64.zig +++ /dev/null @@ -1,221 +0,0 @@ -const std = @import("std"); -const Codegen = @import("../Codegen_legacy.zig"); -const Tree = @import("../Tree.zig"); -const NodeIndex = Tree.NodeIndex; -const x86_64 = @import("zig").codegen.x86_64; -const Register = x86_64.Register; -const RegisterManager = @import("zig").RegisterManager; - -const Fn = @This(); - -const Value = union(enum) { - symbol: []const u8, - immediate: i64, - register: Register, - none, -}; - -register_manager: RegisterManager(Fn, Register, &x86_64.callee_preserved_regs) = .{}, -data: *std.ArrayList(u8), -c: *Codegen, - -pub fn deinit(func: *Fn) void { - func.* = undefined; -} - -pub fn genFn(c: *Codegen, decl: NodeIndex, data: *std.ArrayList(u8)) Codegen.Error!void { - var func = Fn{ .data = data, .c = c }; - defer func.deinit(); - - // function prologue - try func.data.appendSlice(&.{ - 0x55, // push rbp - 0x48, 0x89, 0xe5, // mov rbp,rsp - }); - _ = try func.genNode(c.node_data[@intFromEnum(decl)].decl.node); - // all functions are guaranteed to end in a return statement so no extra work required here -} - -pub fn spillInst(f: *Fn, reg: Register, inst: u32) !void { - _ = inst; - _ = reg; - _ = f; -} - -fn setReg(func: *Fn, val: Value, reg: Register) !void { - switch (val) { - .none => unreachable, - .symbol => |sym| { - // lea address with 0 and add relocation - const encoder = try x86_64.Encoder.init(func.data, 8); - encoder.rex(.{ .w = true }); - encoder.opcode_1byte(0x8D); - encoder.modRm_RIPDisp32(reg.low_id()); - - const offset = func.data.items.len; - encoder.imm32(0); - - try func.c.obj.addRelocation(sym, .func, offset, -4); - }, - .immediate => |x| if (x == 0) { - // 32-bit moves zero-extend to 64-bit, so xoring the 32-bit - // register is the fastest way to zero a register. - // The encoding for `xor r32, r32` is `0x31 /r`. - const encoder = try x86_64.Encoder.init(func.data, 3); - - // If we're accessing e.g. r8d, we need to use a REX prefix before the actual operation. Since - // this is a 32-bit operation, the W flag is set to zero. X is also zero, as we're not using a SIB. - // Both R and B are set, as we're extending, in effect, the register bits *and* the operand. - encoder.rex(.{ .r = reg.isExtended(), .b = reg.isExtended() }); - encoder.opcode_1byte(0x31); - // Section 3.1.1.1 of the Intel x64 Manual states that "/r indicates that the - // ModR/M byte of the instruction contains a register operand and an r/m operand." - encoder.modRm_direct(reg.low_id(), reg.low_id()); - } else if (x <= std.math.maxInt(i32)) { - // Next best case: if we set the lower four bytes, the upper four will be zeroed. - // - // The encoding for `mov IMM32 -> REG` is (0xB8 + R) IMM. - - const encoder = try x86_64.Encoder.init(func.data, 6); - // Just as with XORing, we need a REX prefix. This time though, we only - // need the B bit set, as we're extending the opcode's register field, - // and there is no Mod R/M byte. - encoder.rex(.{ .b = reg.isExtended() }); - encoder.opcode_withReg(0xB8, reg.low_id()); - - // no ModR/M byte - - // IMM - encoder.imm32(@intCast(x)); - } else { - // Worst case: we need to load the 64-bit register with the IMM. GNU's assemblers calls - // this `movabs`, though this is officially just a different variant of the plain `mov` - // instruction. - // - // This encoding is, in fact, the *same* as the one used for 32-bit loads. The only - // difference is that we set REX.W before the instruction, which extends the load to - // 64-bit and uses the full bit-width of the register. - { - const encoder = try x86_64.Encoder.init(func.data, 10); - encoder.rex(.{ .w = true, .b = reg.isExtended() }); - encoder.opcode_withReg(0xB8, reg.low_id()); - encoder.imm64(@bitCast(x)); - } - }, - .register => |src_reg| { - // If the registers are the same, nothing to do. - if (src_reg.id() == reg.id()) - return; - - // This is a variant of 8B /r. - const encoder = try x86_64.Encoder.init(func.data, 3); - encoder.rex(.{ - .w = true, - .r = reg.isExtended(), - .b = src_reg.isExtended(), - }); - encoder.opcode_1byte(0x8B); - encoder.modRm_direct(reg.low_id(), src_reg.low_id()); - }, - } -} - -fn genNode(func: *Fn, node: NodeIndex) Codegen.Error!Value { - if (func.c.tree.value_map.get(node)) |some| { - if (some.tag == .int) - return Value{ .immediate = @bitCast(some.data.int) }; - } - - const data = func.c.node_data[@intFromEnum(node)]; - switch (func.c.node_tag[@intFromEnum(node)]) { - .static_assert => return Value{ .none = {} }, - .compound_stmt_two => { - if (data.bin.lhs != .none) _ = try func.genNode(data.bin.lhs); - if (data.bin.rhs != .none) _ = try func.genNode(data.bin.rhs); - return Value{ .none = {} }; - }, - .compound_stmt => { - for (func.c.tree.data[data.range.start..data.range.end]) |stmt| { - _ = try func.genNode(stmt); - } - return Value{ .none = {} }; - }, - .call_expr_one => if (data.bin.rhs != .none) - return func.genCall(data.bin.lhs, &.{data.bin.rhs}) - else - return func.genCall(data.bin.lhs, &.{}), - .call_expr => return func.genCall(func.c.tree.data[data.range.start], func.c.tree.data[data.range.start + 1 .. data.range.end]), - .explicit_cast, .implicit_cast => { - switch (data.cast.kind) { - .function_to_pointer, - .array_to_pointer, - => return func.genNode(data.cast.operand), // no-op - else => return func.c.comp.diag.fatalNoSrc("TODO x86_64 genNode for cast {s}\n", .{@tagName(data.cast.kind)}), - } - }, - .decl_ref_expr => { - // TODO locals and arguments - return Value{ .symbol = func.c.tree.tokSlice(data.decl_ref) }; - }, - .return_stmt => { - const value = try func.genNode(data.un); - try func.setReg(value, x86_64.c_abi_int_return_regs[0]); - try func.data.appendSlice(&.{ - 0x5d, // pop rbp - 0xc3, // ret - }); - return Value{ .none = {} }; - }, - .implicit_return => { - try func.setReg(.{ .immediate = 0 }, x86_64.c_abi_int_return_regs[0]); - try func.data.appendSlice(&.{ - 0x5d, // pop rbp - 0xc3, // ret - }); - return Value{ .none = {} }; - }, - .int_literal => return Value{ .immediate = @bitCast(data.int) }, - .string_literal_expr => { - const range = func.c.tree.value_map.get(node).?.data.bytes; - const str_bytes = range.slice(func.c.tree.strings, .@"1"); - const section = try func.c.obj.getSection(.strings); - const start = section.items.len; - try section.appendSlice(str_bytes); - const symbol_name = try func.c.obj.declareSymbol(.strings, null, .Internal, .variable, start, str_bytes.len); - return Value{ .symbol = symbol_name }; - }, - else => return func.c.comp.diag.fatalNoSrc("TODO x86_64 genNode {}\n", .{func.c.node_tag[@intFromEnum(node)]}), - } -} - -fn genCall(func: *Fn, lhs: NodeIndex, args: []const NodeIndex) Codegen.Error!Value { - if (args.len > x86_64.c_abi_int_param_regs.len) - return func.c.comp.diag.fatalNoSrc("TODO more than args {d}\n", .{x86_64.c_abi_int_param_regs.len}); - - const func_value = try func.genNode(lhs); - for (args, 0..) |arg, i| { - const value = try func.genNode(arg); - try func.setReg(value, x86_64.c_abi_int_param_regs[i]); - } - - switch (func_value) { - .none => unreachable, - .symbol => |sym| { - const encoder = try x86_64.Encoder.init(func.data, 5); - encoder.opcode_1byte(0xe8); - - const offset = func.data.items.len; - encoder.imm32(0); - - try func.c.obj.addRelocation(sym, .func, offset, -4); - }, - .immediate => return func.c.comp.diag.fatalNoSrc("TODO call immediate\n", .{}), - .register => return func.c.comp.diag.fatalNoSrc("TODO call reg\n", .{}), - } - return Value{ .register = x86_64.c_abi_int_return_regs[0] }; -} - -pub fn genVar(c: *Codegen, decl: NodeIndex) Codegen.Error!void { - _ = c; - _ = decl; -} diff --git a/deps/aro/lib.zig b/deps/aro/lib.zig deleted file mode 100644 index e19becb735..0000000000 --- a/deps/aro/lib.zig +++ /dev/null @@ -1,27 +0,0 @@ -/// Deprecated -pub const Codegen = @import("Codegen_legacy.zig"); -pub const CodeGen = @import("CodeGen.zig"); -pub const Compilation = @import("Compilation.zig"); -pub const Diagnostics = @import("Diagnostics.zig"); -pub const Driver = @import("Driver.zig"); -pub const Interner = @import("Interner.zig"); -pub const Ir = @import("Ir.zig"); -pub const Object = @import("Object.zig"); -pub const Parser = @import("Parser.zig"); -pub const Preprocessor = @import("Preprocessor.zig"); -pub const Source = @import("Source.zig"); -pub const Tokenizer = @import("Tokenizer.zig"); -pub const Tree = @import("Tree.zig"); -pub const Type = @import("Type.zig"); -pub const TypeMapper = @import("StringInterner.zig").TypeMapper; -pub const target_util = @import("target.zig"); - -pub const version_str = "0.0.0-dev"; -pub const version = @import("std").SemanticVersion.parse(version_str) catch unreachable; - -pub const CallingConvention = enum { - C, - stdcall, - thiscall, - vectorcall, -}; diff --git a/deps/aro/util.zig b/deps/aro/util.zig deleted file mode 100644 index 3f92f36a72..0000000000 --- a/deps/aro/util.zig +++ /dev/null @@ -1,83 +0,0 @@ -const std = @import("std"); -const mem = std.mem; -const builtin = @import("builtin"); -const is_windows = builtin.os.tag == .windows; - -pub const Color = enum { - reset, - red, - green, - blue, - cyan, - purple, - yellow, - white, -}; - -pub fn fileSupportsColor(file: std.fs.File) bool { - return file.supportsAnsiEscapeCodes() or (is_windows and file.isTty()); -} - -pub fn setColor(color: Color, w: anytype) void { - if (is_windows) { - const stderr_file = std.io.getStdErr(); - if (!stderr_file.isTty()) return; - const windows = std.os.windows; - const S = struct { - var attrs: windows.WORD = undefined; - var init_attrs = false; - }; - if (!S.init_attrs) { - S.init_attrs = true; - var info: windows.CONSOLE_SCREEN_BUFFER_INFO = undefined; - _ = windows.kernel32.GetConsoleScreenBufferInfo(stderr_file.handle, &info); - S.attrs = info.wAttributes; - _ = windows.kernel32.SetConsoleOutputCP(65001); - } - - // need to flush bufferedWriter - const T = if (@typeInfo(@TypeOf(w.context)) == .Pointer) @TypeOf(w.context.*) else @TypeOf(w.context); - if (T != void and @hasDecl(T, "flush")) w.context.flush() catch {}; - - switch (color) { - .reset => _ = windows.SetConsoleTextAttribute(stderr_file.handle, S.attrs) catch {}, - .red => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_RED | windows.FOREGROUND_INTENSITY) catch {}, - .green => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY) catch {}, - .blue => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY) catch {}, - .cyan => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY) catch {}, - .purple => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_RED | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY) catch {}, - .yellow => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY) catch {}, - .white => _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY) catch {}, - } - } else switch (color) { - .reset => w.writeAll("\x1b[0m") catch {}, - .red => w.writeAll("\x1b[31;1m") catch {}, - .green => w.writeAll("\x1b[32;1m") catch {}, - .blue => w.writeAll("\x1b[34;1m") catch {}, - .cyan => w.writeAll("\x1b[36;1m") catch {}, - .purple => w.writeAll("\x1b[35;1m") catch {}, - .yellow => w.writeAll("\x1b[93;1m") catch {}, - .white => w.writeAll("\x1b[0m\x1b[1m") catch {}, - } -} - -pub fn errorDescription(err: anyerror) []const u8 { - return switch (err) { - error.OutOfMemory => "ran out of memory", - error.FileNotFound => "file not found", - error.IsDir => "is a directory", - error.NotDir => "is not a directory", - error.NotOpenForReading => "file is not open for reading", - error.NotOpenForWriting => "file is not open for writing", - error.InvalidUtf8 => "input is not valid UTF-8", - error.FileBusy => "file is busy", - error.NameTooLong => "file name is too long", - error.AccessDenied => "access denied", - error.FileTooBig => "file is too big", - error.ProcessFdQuotaExceeded, error.SystemFdQuotaExceeded => "ran out of file descriptors", - error.SystemResources => "ran out of system resources", - error.FatalError => "a fatal error occurred", - error.Unexpected => "an unexpected error occurred", - else => @errorName(err), - }; -}