Merge pull request #17771 from ehaas/mingw-aro

mingw: Use aro instead of clang for preprocessing import libs
This commit is contained in:
Andrew Kelley
2023-11-07 14:47:05 -05:00
committed by GitHub
31 changed files with 19241 additions and 905 deletions
+5 -1
View File
@@ -645,6 +645,8 @@ set(ZIG_STAGE2_SOURCES
"${CMAKE_SOURCE_DIR}/src/value.zig"
"${CMAKE_SOURCE_DIR}/src/wasi_libc.zig"
"${CMAKE_SOURCE_DIR}/src/windows_sdk.zig"
"${CMAKE_SOURCE_DIR}/src/stubs/aro_builtins.zig"
"${CMAKE_SOURCE_DIR}/src/stubs/aro_names.zig"
)
if(MSVC)
@@ -815,7 +817,9 @@ set(BUILD_ZIG2_ARGS
-OReleaseSmall
--name zig2 -femit-bin="${ZIG2_C_SOURCE}"
--mod "build_options::${ZIG_CONFIG_ZIG_OUT}"
--mod "aro::deps/aro/lib.zig"
--mod "Builtins/Builtin.def::src/stubs/aro_builtins.zig"
--mod "Attribute/names.def::src/stubs/aro_names.zig"
--mod "aro:Builtins/Builtin.def,Attribute/names.def:deps/aro/lib.zig"
--deps build_options,aro
-target "${ZIG_HOST_TARGET_TRIPLE}"
)
+6 -1
View File
@@ -8,6 +8,7 @@ const io = std.io;
const fs = std.fs;
const InstallDirectoryOptions = std.Build.InstallDirectoryOptions;
const assert = std.debug.assert;
const GenerateDef = @import("deps/aro/build/GenerateDef.zig");
const zig_version = std.SemanticVersion{ .major = 0, .minor = 12, .patch = 0 };
const stack_size = 32 * 1024 * 1024;
@@ -589,9 +590,13 @@ fn addCompilerStep(
.max_rss = 7_000_000_000,
});
exe.stack_size = stack_size;
exe.addAnonymousModule("aro", .{
const aro_module = b.createModule(.{
.source_file = .{ .path = "deps/aro/lib.zig" },
});
GenerateDef.add(b, "deps/aro/Builtins/Builtin.def", "Builtins/Builtin.def", exe, aro_module);
GenerateDef.add(b, "deps/aro/Attribute/names.def", "Attribute/names.def", exe, aro_module);
exe.addModule("aro", aro_module);
return exe;
}
+228 -510
View File
@@ -60,7 +60,7 @@ pub const ArgumentType = enum {
fn fromType(comptime T: type) ArgumentType {
return switch (T) {
[]const u8 => .string,
Value.ByteRange => .string,
Identifier => .identifier,
u32 => .int,
Alignment => .alignment,
@@ -83,17 +83,13 @@ pub const ArgumentType = enum {
}
};
fn getArguments(comptime descriptor: type) []const ZigType.StructField {
return if (@hasDecl(descriptor, "Args")) std.meta.fields(descriptor.Args) else &.{};
}
/// number of required arguments
pub fn requiredArgCount(attr: Tag) u32 {
switch (attr) {
inline else => |tag| {
comptime var needed = 0;
comptime {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
for (fields) |arg_field| {
if (!mem.eql(u8, arg_field.name, "__name_tok") and @typeInfo(arg_field.type) != .Optional) needed += 1;
}
@@ -109,7 +105,7 @@ pub fn maxArgCount(attr: Tag) u32 {
inline else => |tag| {
comptime var max = 0;
comptime {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
for (fields) |arg_field| {
if (!mem.eql(u8, arg_field.name, "__name_tok")) max += 1;
}
@@ -128,13 +124,13 @@ fn UnwrapOptional(comptime T: type) type {
pub const Formatting = struct {
/// The quote char (single or double) to use when printing identifiers/strings corresponding
/// to the enum in the first field of the Args of `attr`. Identifier enums use single quotes, string enums
/// to the enum in the first field of the `attr`. Identifier enums use single quotes, string enums
/// use double quotes
fn quoteChar(attr: Tag) []const u8 {
switch (attr) {
.calling_convention => unreachable,
inline else => |tag| {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
if (fields.len == 0) unreachable;
const Unwrapped = UnwrapOptional(fields[0].type);
@@ -146,12 +142,12 @@ pub const Formatting = struct {
}
/// returns a comma-separated string of quoted enum values, representing the valid
/// choices for the string or identifier enum of the first field of the Args of `attr`.
/// choices for the string or identifier enum of the first field of the `attr`.
pub fn choices(attr: Tag) []const u8 {
switch (attr) {
.calling_convention => unreachable,
inline else => |tag| {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
if (fields.len == 0) unreachable;
const Unwrapped = UnwrapOptional(fields[0].type);
@@ -176,7 +172,7 @@ pub fn wantsIdentEnum(attr: Tag) bool {
switch (attr) {
.calling_convention => return false,
inline else => |tag| {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
if (fields.len == 0) return false;
const Unwrapped = UnwrapOptional(fields[0].type);
@@ -190,7 +186,7 @@ pub fn wantsIdentEnum(attr: Tag) bool {
pub fn diagnoseIdent(attr: Tag, arguments: *Arguments, ident: []const u8) ?Diagnostics.Message {
switch (attr) {
inline else => |tag| {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
if (fields.len == 0) unreachable;
const Unwrapped = UnwrapOptional(fields[0].type);
if (@typeInfo(Unwrapped) != .Enum) unreachable;
@@ -209,7 +205,7 @@ pub fn diagnoseIdent(attr: Tag, arguments: *Arguments, ident: []const u8) ?Diagn
pub fn wantsAlignment(attr: Tag, idx: usize) bool {
switch (attr) {
inline else => |tag| {
const fields = getArguments(@field(attributes, @tagName(tag)));
const fields = std.meta.fields(@field(attributes, @tagName(tag)));
if (fields.len == 0) return false;
return switch (idx) {
@@ -223,7 +219,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 {
switch (attr) {
inline else => |tag| {
const arg_fields = getArguments(@field(attributes, @tagName(tag)));
const arg_fields = std.meta.fields(@field(attributes, @tagName(tag)));
if (arg_fields.len == 0) unreachable;
switch (arg_idx) {
@@ -267,10 +263,17 @@ fn diagnoseField(
.bytes => {
const bytes = val.data.bytes.trim(1); // remove null terminator
if (wanted == Value.ByteRange) {
std.debug.assert(node.tag == .string_literal_expr);
if (!node.ty.elemType().is(.char) and !node.ty.elemType().is(.uchar)) {
return Diagnostics.Message{
.tag = .attribute_requires_string,
.extra = .{ .str = decl.name },
};
}
@field(@field(arguments, decl.name), field.name) = bytes;
return null;
} else if (@typeInfo(wanted) == .Enum and @hasDecl(wanted, "opts") and wanted.opts.enum_kind == .string) {
const str = bytes.slice(strings);
const str = bytes.slice(strings, .@"1");
if (std.meta.stringToEnum(wanted, str)) |enum_val| {
@field(@field(arguments, decl.name), field.name) = enum_val;
return null;
@@ -305,7 +308,7 @@ pub fn diagnose(attr: Tag, arguments: *Arguments, arg_idx: u32, val: Value, node
.tag = .attribute_too_many_args,
.extra = .{ .attr_arg_count = .{ .attribute = attr, .expected = max_arg_count } },
};
const arg_fields = getArguments(@field(attributes, decl.name));
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);
@@ -330,212 +333,107 @@ pub const Identifier = struct {
const attributes = struct {
pub const access = struct {
const gnu = "access";
access_mode: enum {
read_only,
read_write,
write_only,
none,
const Args = struct {
access_mode: enum {
read_only,
read_write,
write_only,
none,
const opts = struct {
const enum_kind = .identifier;
};
},
ref_index: u32,
size_index: ?u32 = null,
};
const opts = struct {
const enum_kind = .identifier;
};
},
ref_index: u32,
size_index: ?u32 = null,
};
pub const alias = struct {
const gnu = "alias";
const Args = struct {
alias: Value.ByteRange,
};
alias: Value.ByteRange,
};
pub const aligned = struct {
const gnu = "aligned";
const declspec = "align";
const Args = struct {
alignment: ?Alignment = null,
__name_tok: TokenIndex,
};
alignment: ?Alignment = null,
__name_tok: TokenIndex,
};
pub const alloc_align = struct {
const gnu = "alloc_align";
const Args = struct {
position: u32,
};
position: u32,
};
pub const alloc_size = struct {
const gnu = "alloc_size";
const Args = struct {
position_1: u32,
position_2: ?u32 = null,
};
position_1: u32,
position_2: ?u32 = null,
};
pub const allocate = struct {
const declspec = "allocate";
const Args = struct {
segname: Value.ByteRange,
};
};
pub const allocator = struct {
const declspec = "allocator";
};
pub const always_inline = struct {
const gnu = "always_inline";
};
pub const appdomain = struct {
const declspec = "appdomain";
};
pub const artificial = struct {
const gnu = "artificial";
segname: Value.ByteRange,
};
pub const allocator = struct {};
pub const always_inline = struct {};
pub const appdomain = struct {};
pub const artificial = struct {};
pub const assume_aligned = struct {
const gnu = "assume_aligned";
const Args = struct {
alignment: Alignment,
offset: ?u32 = null,
};
alignment: Alignment,
offset: ?u32 = null,
};
pub const cleanup = struct {
const gnu = "cleanup";
const Args = struct {
function: Identifier,
};
function: Identifier,
};
pub const code_seg = struct {
const declspec = "code_seg";
const Args = struct {
segname: Value.ByteRange,
};
};
pub const cold = struct {
const gnu = "cold";
};
pub const common = struct {
const gnu = "common";
};
pub const @"const" = struct {
const gnu = "const";
segname: Value.ByteRange,
};
pub const cold = struct {};
pub const common = struct {};
pub const @"const" = struct {};
pub const constructor = struct {
const gnu = "constructor";
const Args = struct {
priority: ?u32 = null,
};
priority: ?u32 = null,
};
pub const copy = struct {
const gnu = "copy";
const Args = struct {
function: Identifier,
};
function: Identifier,
};
pub const deprecated = struct {
const gnu = "deprecated";
const declspec = "deprecated";
const c2x = "deprecated";
const Args = struct {
msg: ?Value.ByteRange = null,
__name_tok: TokenIndex,
};
};
pub const designated_init = struct {
const gnu = "designated_init";
msg: ?Value.ByteRange = null,
__name_tok: TokenIndex,
};
pub const designated_init = struct {};
pub const destructor = struct {
const gnu = "destructor";
const Args = struct {
priority: ?u32 = null,
};
};
pub const dllexport = struct {
const declspec = "dllexport";
};
pub const dllimport = struct {
const declspec = "dllimport";
priority: ?u32 = null,
};
pub const dllexport = struct {};
pub const dllimport = struct {};
pub const @"error" = struct {
const gnu = "error";
const Args = struct {
msg: Value.ByteRange,
__name_tok: TokenIndex,
};
};
pub const externally_visible = struct {
const gnu = "externally_visible";
};
pub const fallthrough = struct {
const gnu = "fallthrough";
const c2x = "fallthrough";
};
pub const flatten = struct {
const gnu = "flatten";
msg: Value.ByteRange,
__name_tok: TokenIndex,
};
pub const externally_visible = struct {};
pub const fallthrough = struct {};
pub const flatten = struct {};
pub const format = struct {
const gnu = "format";
const Args = struct {
archetype: enum {
printf,
scanf,
strftime,
strfmon,
archetype: enum {
printf,
scanf,
strftime,
strfmon,
const opts = struct {
const enum_kind = .identifier;
};
},
string_index: u32,
first_to_check: u32,
};
const opts = struct {
const enum_kind = .identifier;
};
},
string_index: u32,
first_to_check: u32,
};
pub const format_arg = struct {
const gnu = "format_arg";
const Args = struct {
string_index: u32,
};
};
pub const gnu_inline = struct {
const gnu = "gnu_inline";
};
pub const hot = struct {
const gnu = "hot";
string_index: u32,
};
pub const gnu_inline = struct {};
pub const hot = struct {};
pub const ifunc = struct {
const gnu = "ifunc";
const Args = struct {
resolver: Value.ByteRange,
};
};
pub const interrupt = struct {
const gnu = "interrupt";
};
pub const interrupt_handler = struct {
const gnu = "interrupt_handler";
};
pub const jitintrinsic = struct {
const declspec = "jitintrinsic";
};
pub const leaf = struct {
const gnu = "leaf";
};
pub const malloc = struct {
const gnu = "malloc";
};
pub const may_alias = struct {
const gnu = "may_alias";
resolver: Value.ByteRange,
};
pub const interrupt = struct {};
pub const interrupt_handler = struct {};
pub const jitintrinsic = struct {};
pub const leaf = struct {};
pub const malloc = struct {};
pub const may_alias = struct {};
pub const mode = struct {
const gnu = "mode";
const Args = struct {
mode: enum {
// zig fmt: off
mode: enum {
// zig fmt: off
byte, word, pointer,
BI, QI, HI,
PSI, SI, PDI,
@@ -558,336 +456,184 @@ const attributes = struct {
BND32, BND64,
// zig fmt: on
const opts = struct {
const enum_kind = .identifier;
};
},
};
};
pub const naked = struct {
const declspec = "naked";
};
pub const no_address_safety_analysis = struct {
const gnu = "no_address_safety_analysise";
};
pub const no_icf = struct {
const gnu = "no_icf";
};
pub const no_instrument_function = struct {
const gnu = "no_instrument_function";
};
pub const no_profile_instrument_function = struct {
const gnu = "no_profile_instrument_function";
};
pub const no_reorder = struct {
const gnu = "no_reorder";
const opts = struct {
const enum_kind = .identifier;
};
},
};
pub const naked = struct {};
pub const no_address_safety_analysis = struct {};
pub const no_icf = struct {};
pub const no_instrument_function = struct {};
pub const no_profile_instrument_function = struct {};
pub const no_reorder = struct {};
pub const no_sanitize = struct {
const gnu = "no_sanitize";
/// Todo: represent args as union?
const Args = struct {
alignment: Value.ByteRange,
object_size: ?Value.ByteRange = null,
};
};
pub const no_sanitize_address = struct {
const gnu = "no_sanitize_address";
const declspec = "no_sanitize_address";
};
pub const no_sanitize_coverage = struct {
const gnu = "no_sanitize_coverage";
};
pub const no_sanitize_thread = struct {
const gnu = "no_sanitize_thread";
};
pub const no_sanitize_undefined = struct {
const gnu = "no_sanitize_undefined";
};
pub const no_split_stack = struct {
const gnu = "no_split_stack";
};
pub const no_stack_limit = struct {
const gnu = "no_stack_limit";
};
pub const no_stack_protector = struct {
const gnu = "no_stack_protector";
};
pub const @"noalias" = struct {
const declspec = "noalias";
};
pub const noclone = struct {
const gnu = "noclone";
};
pub const nocommon = struct {
const gnu = "nocommon";
};
pub const nodiscard = struct {
const c2x = "nodiscard";
};
pub const noinit = struct {
const gnu = "noinit";
};
pub const @"noinline" = struct {
const gnu = "noinline";
const declspec = "noinline";
};
pub const noipa = struct {
const gnu = "noipa";
alignment: Value.ByteRange,
object_size: ?Value.ByteRange = null,
};
pub const no_sanitize_address = struct {};
pub const no_sanitize_coverage = struct {};
pub const no_sanitize_thread = struct {};
pub const no_sanitize_undefined = struct {};
pub const no_split_stack = struct {};
pub const no_stack_limit = struct {};
pub const no_stack_protector = struct {};
pub const @"noalias" = struct {};
pub const noclone = struct {};
pub const nocommon = struct {};
pub const nodiscard = struct {};
pub const noinit = struct {};
pub const @"noinline" = struct {};
pub const noipa = struct {};
// TODO: arbitrary number of arguments
// const nonnull = struct {
// const gnu = "nonnull";
// const Args = struct {
// arg_index: []const u32,
// // arg_index: []const u32,
// };
// };
pub const nonstring = struct {
const gnu = "nonstring";
};
pub const noplt = struct {
const gnu = "noplt";
};
pub const @"noreturn" = struct {
const gnu = "noreturn";
const c2x = "noreturn";
const declspec = "noreturn";
};
pub const nonstring = struct {};
pub const noplt = struct {};
pub const @"noreturn" = struct {};
// TODO: union args ?
// const optimize = struct {
// const gnu = "optimize";
// const Args = struct {
// optimize, // u32 | []const u8 -- optimize?
// // optimize, // u32 | []const u8 -- optimize?
// };
// };
pub const @"packed" = struct {
const gnu = "packed";
};
pub const patchable_function_entry = struct {
const gnu = "patchable_function_entry";
};
pub const persistent = struct {
const gnu = "persistent";
};
pub const process = struct {
const declspec = "process";
};
pub const pure = struct {
const gnu = "pure";
};
pub const reproducible = struct {
const c2x = "reproducible";
};
pub const restrict = struct {
const declspec = "restrict";
};
pub const retain = struct {
const gnu = "retain";
};
pub const returns_nonnull = struct {
const gnu = "returns_nonnull";
};
pub const returns_twice = struct {
const gnu = "returns_twice";
};
pub const safebuffers = struct {
const declspec = "safebuffers";
};
pub const @"packed" = struct {};
pub const patchable_function_entry = struct {};
pub const persistent = struct {};
pub const process = struct {};
pub const pure = struct {};
pub const reproducible = struct {};
pub const restrict = struct {};
pub const retain = struct {};
pub const returns_nonnull = struct {};
pub const returns_twice = struct {};
pub const safebuffers = struct {};
pub const scalar_storage_order = struct {
const gnu = "scalar_storage_order";
const Args = struct {
order: enum {
@"little-endian",
@"big-endian",
order: enum {
@"little-endian",
@"big-endian",
const opts = struct {
const enum_kind = .string;
};
},
};
const opts = struct {
const enum_kind = .string;
};
},
};
pub const section = struct {
const gnu = "section";
const Args = struct {
name: Value.ByteRange,
};
};
pub const selectany = struct {
const declspec = "selectany";
name: Value.ByteRange,
};
pub const selectany = struct {};
pub const sentinel = struct {
const gnu = "sentinel";
const Args = struct {
position: ?u32 = null,
};
position: ?u32 = null,
};
pub const simd = struct {
const gnu = "simd";
const Args = struct {
mask: ?enum {
notinbranch,
inbranch,
mask: ?enum {
notinbranch,
inbranch,
const opts = struct {
const enum_kind = .string;
};
} = null,
};
const opts = struct {
const enum_kind = .string;
};
} = null,
};
pub const spectre = struct {
const declspec = "spectre";
const Args = struct {
arg: enum {
nomitigation,
arg: enum {
nomitigation,
const opts = struct {
const enum_kind = .identifier;
};
},
};
};
pub const stack_protect = struct {
const gnu = "stack_protect";
const opts = struct {
const enum_kind = .identifier;
};
},
};
pub const stack_protect = struct {};
pub const symver = struct {
const gnu = "symver";
const Args = struct {
version: Value.ByteRange, // TODO: validate format "name2@nodename"
};
version: Value.ByteRange, // TODO: validate format "name2@nodename"
};
pub const target = struct {
const gnu = "target";
const Args = struct {
options: Value.ByteRange, // TODO: multiple arguments
};
options: Value.ByteRange, // TODO: multiple arguments
};
pub const target_clones = struct {
const gnu = "target_clones";
const Args = struct {
options: Value.ByteRange, // TODO: multiple arguments
};
};
pub const thread = struct {
const declspec = "thread";
};
pub const tls_model = struct {
const gnu = "tls_model";
const Args = struct {
model: enum {
@"global-dynamic",
@"local-dynamic",
@"initial-exec",
@"local-exec",
options: Value.ByteRange, // TODO: multiple arguments
const opts = struct {
const enum_kind = .string;
};
},
};
};
pub const transparent_union = struct {
const gnu = "transparent_union";
pub const thread = struct {};
pub const tls_model = struct {
model: enum {
@"global-dynamic",
@"local-dynamic",
@"initial-exec",
@"local-exec",
const opts = struct {
const enum_kind = .string;
};
},
};
pub const transparent_union = struct {};
pub const unavailable = struct {
const gnu = "unavailable";
const Args = struct {
msg: ?Value.ByteRange = null,
__name_tok: TokenIndex,
};
};
pub const uninitialized = struct {
const gnu = "uninitialized";
};
pub const unsequenced = struct {
const c2x = "unsequenced";
};
pub const unused = struct {
const gnu = "unused";
const c2x = "maybe_unused";
};
pub const used = struct {
const gnu = "used";
msg: ?Value.ByteRange = null,
__name_tok: TokenIndex,
};
pub const uninitialized = struct {};
pub const unsequenced = struct {};
pub const unused = struct {};
pub const used = struct {};
pub const uuid = struct {
const declspec = "uuid";
const Args = struct {
uuid: Value.ByteRange,
};
uuid: Value.ByteRange,
};
pub const vector_size = struct {
const gnu = "vector_size";
const Args = struct {
bytes: u32, // TODO: validate "The bytes argument must be a positive power-of-two multiple of the base type size"
};
bytes: u32, // TODO: validate "The bytes argument must be a positive power-of-two multiple of the base type size"
};
pub const visibility = struct {
const gnu = "visibility";
const Args = struct {
visibility_type: enum {
default,
hidden,
internal,
protected,
visibility_type: enum {
default,
hidden,
internal,
protected,
const opts = struct {
const enum_kind = .string;
};
},
};
const opts = struct {
const enum_kind = .string;
};
},
};
pub const warn_if_not_aligned = struct {
const gnu = "warn_if_not_aligned";
const Args = struct {
alignment: Alignment,
};
};
pub const warn_unused_result = struct {
const gnu = "warn_unused_result";
alignment: Alignment,
};
pub const warn_unused_result = struct {};
pub const warning = struct {
const gnu = "warning";
const Args = struct {
msg: Value.ByteRange,
__name_tok: TokenIndex,
};
};
pub const weak = struct {
const gnu = "weak";
msg: Value.ByteRange,
__name_tok: TokenIndex,
};
pub const weak = struct {};
pub const weakref = struct {
const gnu = "weakref";
const Args = struct {
target: ?Value.ByteRange = null,
};
target: ?Value.ByteRange = null,
};
pub const zero_call_used_regs = struct {
const gnu = "zero_call_used_regs";
const Args = struct {
choice: enum {
skip,
used,
@"used-gpr",
@"used-arg",
@"used-gpr-arg",
all,
@"all-gpr",
@"all-arg",
@"all-gpr-arg",
choice: enum {
skip,
used,
@"used-gpr",
@"used-arg",
@"used-gpr-arg",
all,
@"all-gpr",
@"all-arg",
@"all-gpr-arg",
const opts = struct {
const enum_kind = .string;
};
},
};
const opts = struct {
const enum_kind = .string;
};
},
};
pub const asm_label = struct {
const Args = struct {
name: Value.ByteRange,
};
name: Value.ByteRange,
};
pub const calling_convention = struct {
const Args = struct {
cc: CallingConvention,
};
cc: CallingConvention,
};
};
@@ -899,7 +645,7 @@ pub const Arguments = blk: {
inline for (decls, &union_fields) |decl, *field| {
field.* = .{
.name = decl.name,
.type = if (@hasDecl(@field(attributes, decl.name), "Args")) @field(attributes, decl.name).Args else void,
.type = @field(attributes, decl.name),
.alignment = 0,
};
}
@@ -916,17 +662,16 @@ pub const Arguments = blk: {
pub fn ArgumentsForTag(comptime tag: Tag) type {
const decl = @typeInfo(attributes).Struct.decls[@intFromEnum(tag)];
return if (@hasDecl(@field(attributes, decl.name), "Args")) @field(attributes, decl.name).Args else void;
return @field(attributes, decl.name);
}
pub fn initArguments(tag: Tag, name_tok: TokenIndex) Arguments {
switch (tag) {
inline else => |arg_tag| {
const union_element = @field(attributes, @tagName(arg_tag));
const has_args = @hasDecl(union_element, "Args");
const init = if (has_args) std.mem.zeroInit(union_element.Args, .{}) else {};
const init = std.mem.zeroInit(union_element, .{});
var args = @unionInit(Arguments, @tagName(arg_tag), init);
if (has_args and @hasField(@field(attributes, @tagName(arg_tag)).Args, "__name_tok")) {
if (@hasField(@field(attributes, @tagName(arg_tag)), "__name_tok")) {
@field(args, @tagName(arg_tag)).__name_tok = name_tok;
}
return args;
@@ -935,56 +680,29 @@ pub fn initArguments(tag: Tag, name_tok: TokenIndex) Arguments {
}
pub fn fromString(kind: Kind, namespace: ?[]const u8, name: []const u8) ?Tag {
return switch (kind) {
.c2x => fromStringC2X(namespace, name),
.declspec => fromStringDeclspec(name),
.gnu => fromStringGnu(name),
const Properties = struct {
tag: Tag,
gnu: bool = false,
declspec: bool = false,
c2x: bool = false,
};
}
const attribute_names = @import("Attribute/names.def").with(Properties);
fn fromStringGnu(name: []const u8) ?Tag {
const normalized = normalize(name);
const decls = @typeInfo(attributes).Struct.decls;
@setEvalBranchQuota(3000);
inline for (decls, 0..) |decl, i| {
if (@hasDecl(@field(attributes, decl.name), "gnu")) {
if (mem.eql(u8, @field(attributes, decl.name).gnu, normalized)) {
return @enumFromInt(i);
}
}
}
return null;
}
fn fromStringC2X(namespace: ?[]const u8, name: []const u8) ?Tag {
const normalized = normalize(name);
if (namespace) |ns| {
const actual_kind: Kind = if (namespace) |ns| blk: {
const normalized_ns = normalize(ns);
if (mem.eql(u8, normalized_ns, "gnu")) {
return fromStringGnu(normalized);
break :blk .gnu;
}
return null;
}
const decls = @typeInfo(attributes).Struct.decls;
inline for (decls, 0..) |decl, i| {
if (@hasDecl(@field(attributes, decl.name), "c2x")) {
if (mem.eql(u8, @field(attributes, decl.name).c2x, normalized)) {
return @enumFromInt(i);
}
}
}
return null;
}
} else kind;
fn fromStringDeclspec(name: []const u8) ?Tag {
const normalized = normalize(name);
const decls = @typeInfo(attributes).Struct.decls;
inline for (decls, 0..) |decl, i| {
if (@hasDecl(@field(attributes, decl.name), "declspec")) {
if (mem.eql(u8, @field(attributes, decl.name).declspec, normalized)) {
return @enumFromInt(i);
}
}
const tag_and_opts = attribute_names.fromName(normalized) orelse return null;
switch (actual_kind) {
inline else => |tag| {
if (@field(tag_and_opts.properties, @tagName(tag)))
return tag_and_opts.properties.tag;
},
}
return null;
}
+431
View File
@@ -0,0 +1,431 @@
# multiple
deprecated
.tag = .deprecated
.c2x = true
.gnu = true
.declspec = true
fallthrough
.tag = .fallthrough
.c2x = true
.gnu = true
noreturn
.tag = .@"noreturn"
.c2x = true
.gnu = true
.declspec = true
no_sanitize_address
.tag = .no_sanitize_address
.gnu = true
.declspec = true
noinline
.tag = .@"noinline"
.gnu = true
.declspec = true
# c2x only
nodiscard
.tag = .nodiscard
.c2x = true
reproducible
.tag = .reproducible
.c2x = true
unsequenced
.tag = .unsequenced
.c2x = true
maybe_unused
.tag = .unused
.c2x = true
# gnu only
access
.tag = .access
.gnu = true
alias
.tag = .alias
.gnu = true
aligned
.tag = .aligned
.gnu = true
alloc_align
.tag = .alloc_align
.gnu = true
alloc_size
.tag = .alloc_size
.gnu = true
always_inline
.tag = .always_inline
.gnu = true
artificial
.tag = .artificial
.gnu = true
assume_aligned
.tag = .assume_aligned
.gnu = true
cleanup
.tag = .cleanup
.gnu = true
cold
.tag = .cold
.gnu = true
common
.tag = .common
.gnu = true
const
.tag = .@"const"
.gnu = true
constructor
.tag = .constructor
.gnu = true
copy
.tag = .copy
.gnu = true
designated_init
.tag = .designated_init
.gnu = true
destructor
.tag = .destructor
.gnu = true
error
.tag = .@"error"
.gnu = true
externally_visible
.tag = .externally_visible
.gnu = true
flatten
.tag = .flatten
.gnu = true
format
.tag = .format
.gnu = true
format_arg
.tag = .format_arg
.gnu = true
gnu_inline
.tag = .gnu_inline
.gnu = true
hot
.tag = .hot
.gnu = true
ifunc
.tag = .ifunc
.gnu = true
interrupt
.tag = .interrupt
.gnu = true
interrupt_handler
.tag = .interrupt_handler
.gnu = true
leaf
.tag = .leaf
.gnu = true
malloc
.tag = .malloc
.gnu = true
may_alias
.tag = .may_alias
.gnu = true
mode
.tag = .mode
.gnu = true
no_address_safety_analysis
.tag = .no_address_safety_analysis
.gnu = true
no_icf
.tag = .no_icf
.gnu = true
no_instrument_function
.tag = .no_instrument_function
.gnu = true
no_profile_instrument_function
.tag = .no_profile_instrument_function
.gnu = true
no_reorder
.tag = .no_reorder
.gnu = true
no_sanitize
.tag = .no_sanitize
.gnu = true
no_sanitize_coverage
.tag = .no_sanitize_coverage
.gnu = true
no_sanitize_thread
.tag = .no_sanitize_thread
.gnu = true
no_sanitize_undefined
.tag = .no_sanitize_undefined
.gnu = true
no_split_stack
.tag = .no_split_stack
.gnu = true
no_stack_limit
.tag = .no_stack_limit
.gnu = true
no_stack_protector
.tag = .no_stack_protector
.gnu = true
noclone
.tag = .noclone
.gnu = true
nocommon
.tag = .nocommon
.gnu = true
noinit
.tag = .noinit
.gnu = true
noipa
.tag = .noipa
.gnu = true
# nonnull
# .tag = .nonnull
# .gnu = true
nonstring
.tag = .nonstring
.gnu = true
noplt
.tag = .noplt
.gnu = true
# optimize
# .tag = .optimize
# .gnu = true
packed
.tag = .@"packed"
.gnu = true
patchable_function_entry
.tag = .patchable_function_entry
.gnu = true
persistent
.tag = .persistent
.gnu = true
pure
.tag = .pure
.gnu = true
retain
.tag = .retain
.gnu = true
returns_nonnull
.tag = .returns_nonnull
.gnu = true
returns_twice
.tag = .returns_twice
.gnu = true
scalar_storage_order
.tag = .scalar_storage_order
.gnu = true
section
.tag = .section
.gnu = true
sentinel
.tag = .sentinel
.gnu = true
simd
.tag = .simd
.gnu = true
stack_protect
.tag = .stack_protect
.gnu = true
symver
.tag = .symver
.gnu = true
target
.tag = .target
.gnu = true
target_clones
.tag = .target_clones
.gnu = true
tls_model
.tag = .tls_model
.gnu = true
transparent_union
.tag = .transparent_union
.gnu = true
unavailable
.tag = .unavailable
.gnu = true
uninitialized
.tag = .uninitialized
.gnu = true
unused
.tag = .unused
.gnu = true
used
.tag = .used
.gnu = true
vector_size
.tag = .vector_size
.gnu = true
visibility
.tag = .visibility
.gnu = true
warn_if_not_aligned
.tag = .warn_if_not_aligned
.gnu = true
warn_unused_result
.tag = .warn_unused_result
.gnu = true
warning
.tag = .warning
.gnu = true
weak
.tag = .weak
.gnu = true
weakref
.tag = .weakref
.gnu = true
zero_call_used_regs
.tag = .zero_call_used_regs
.gnu = true
# declspec only
align
.tag = .aligned
.declspec = true
allocate
.tag = .allocate
.declspec = true
allocator
.tag = .allocator
.declspec = true
appdomain
.tag = .appdomain
.declspec = true
code_seg
.tag = .code_seg
.declspec = true
dllexport
.tag = .dllexport
.declspec = true
dllimport
.tag = .dllimport
.declspec = true
jitintrinsic
.tag = .jitintrinsic
.declspec = true
naked
.tag = .naked
.declspec = true
noalias
.tag = .@"noalias"
.declspec = true
process
.tag = .process
.declspec = true
restrict
.tag = .restrict
.declspec = true
safebuffers
.tag = .safebuffers
.declspec = true
selectany
.tag = .selectany
.declspec = true
spectre
.tag = .spectre
.declspec = true
thread
.tag = .thread
.declspec = true
uuid
.tag = .uuid
.declspec = true
+63 -12
View File
@@ -1,18 +1,20 @@
const std = @import("std");
const Compilation = @import("Compilation.zig");
const Type = @import("Type.zig");
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const TypeDescription = @import("builtins/TypeDescription.zig");
const TypeDescription = @import("Builtins/TypeDescription.zig");
const target_util = @import("target.zig");
const StringId = @import("StringInterner.zig").StringId;
const LangOpts = @import("LangOpts.zig");
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: BuiltinFunction,
builtin: Builtin,
};
const NameToTypeMap = std.StringHashMapUnmanaged(Type);
@@ -243,8 +245,8 @@ fn createType(desc: TypeDescription, it: *TypeDescription.TypeIterator, comp: *c
return builder.finish(undefined) catch unreachable;
}
fn createBuiltin(comp: *const Compilation, builtin: BuiltinFunction, type_arena: std.mem.Allocator) !Type {
var it = TypeDescription.TypeIterator.init(builtin.param_str);
fn createBuiltin(comp: *const Compilation, builtin: Builtin, type_arena: std.mem.Allocator) !Type {
var it = TypeDescription.TypeIterator.init(builtin.properties.param_str);
const ret_ty_desc = it.next().?;
if (ret_ty_desc.spec == .@"!") {
@@ -252,7 +254,7 @@ fn createBuiltin(comp: *const Compilation, builtin: BuiltinFunction, type_arena:
}
const ret_ty = try createType(ret_ty_desc, &it, comp, type_arena);
var param_count: usize = 0;
var params: [BuiltinFunction.MaxParamCount]Type.Func.Param = undefined;
var params: [Builtin.max_param_count]Type.Func.Param = undefined;
while (it.next()) |desc| : (param_count += 1) {
params[param_count] = .{ .name_tok = 0, .ty = try createType(desc, &it, comp, type_arena), .name = .empty };
}
@@ -265,14 +267,14 @@ fn createBuiltin(comp: *const Compilation, builtin: BuiltinFunction, type_arena:
.params = duped_params,
};
return .{
.specifier = if (builtin.isVarArgs()) .var_args_func else .func,
.specifier = if (builtin.properties.isVarArgs()) .var_args_func else .func,
.data = .{ .func = func },
};
}
/// Asserts that the builtin has already been created
pub fn lookup(b: *const Builtins, name: []const u8) Expanded {
const builtin = BuiltinFunction.fromName(name).?;
const builtin = Builtin.fromName(name).?;
const ty = b._name_to_type_map.get(name).?;
return .{
.builtin = builtin,
@@ -282,7 +284,7 @@ pub fn lookup(b: *const Builtins, name: []const u8) Expanded {
pub fn getOrCreate(b: *Builtins, comp: *Compilation, name: []const u8, type_arena: std.mem.Allocator) !?Expanded {
const ty = b._name_to_type_map.get(name) orelse {
const builtin = BuiltinFunction.fromName(name) orelse return null;
const builtin = Builtin.fromName(name) orelse return null;
if (!comp.hasBuiltinFunction(builtin)) return null;
try b._name_to_type_map.ensureUnusedCapacity(comp.gpa, 1);
@@ -294,13 +296,62 @@ pub fn getOrCreate(b: *Builtins, comp: *Compilation, name: []const u8, type_aren
.ty = ty,
};
};
const builtin = BuiltinFunction.fromName(name).?;
const builtin = Builtin.fromName(name).?;
return .{
.builtin = builtin,
.ty = ty,
};
}
pub const Iterator = struct {
index: u16 = 1,
name_buf: [Builtin.longest_name]u8 = undefined,
pub const Entry = struct {
/// Memory of this slice is overwritten on every call to `next`
name: []const u8,
builtin: Builtin,
};
pub fn next(self: *Iterator) ?Entry {
if (self.index > Builtin.data.len) return null;
const index = self.index;
const data_index = index - 1;
self.index += 1;
return .{
.name = Builtin.nameFromUniqueIndex(index, &self.name_buf),
.builtin = Builtin.data[data_index],
};
}
};
test Iterator {
var it = Iterator{};
var seen = std.StringHashMap(Builtin).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 = Builtin.uniqueIndex(entry.name).?;
var buf: [Builtin.longest_name]u8 = undefined;
const name_from_index = Builtin.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());
}
test "All builtins" {
var comp = Compilation.init(std.testing.allocator);
defer comp.deinit();
@@ -310,7 +361,7 @@ test "All builtins" {
const type_arena = arena.allocator();
var builtin_it = BuiltinFunction.BuiltinsIterator{};
var builtin_it = Iterator{};
while (builtin_it.next()) |entry| {
const name = try type_arena.dupe(u8, entry.name);
if (try comp.builtins.getOrCreate(&comp, name, type_arena)) |func_ty| {
@@ -334,7 +385,7 @@ test "Allocation failures" {
const type_arena = arena.allocator();
const num_builtins = 40;
var builtin_it = BuiltinFunction.BuiltinsIterator{};
var builtin_it = Iterator{};
for (0..num_builtins) |_| {
const entry = builtin_it.next().?;
_ = try comp.builtins.getOrCreate(&comp, entry.name, type_arena);
+17010
View File
@@ -0,0 +1,17010 @@
const TargetSet = Properties.TargetSet;
# TODO this file is generated from LLVM sources and
# needs cleanup to be considered source.
pub const max_param_count = 12;
_Block_object_assign
.param_str = "vv*vC*iC"
.header = .blocks
.attributes = .{ .lib_function_without_prefix = true }
_Block_object_dispose
.param_str = "vvC*iC"
.header = .blocks
.attributes = .{ .lib_function_without_prefix = true }
_Exit
.param_str = "vi"
.header = .stdlib
.attributes = .{ .noreturn = true, .lib_function_without_prefix = true }
_InterlockedAnd
.param_str = "NiNiD*Ni"
.language = .all_ms_languages
_InterlockedAnd16
.param_str = "ssD*s"
.language = .all_ms_languages
_InterlockedAnd8
.param_str = "ccD*c"
.language = .all_ms_languages
_InterlockedCompareExchange
.param_str = "NiNiD*NiNi"
.language = .all_ms_languages
_InterlockedCompareExchange16
.param_str = "ssD*ss"
.language = .all_ms_languages
_InterlockedCompareExchange64
.param_str = "LLiLLiD*LLiLLi"
.language = .all_ms_languages
_InterlockedCompareExchange8
.param_str = "ccD*cc"
.language = .all_ms_languages
_InterlockedCompareExchangePointer
.param_str = "v*v*D*v*v*"
.language = .all_ms_languages
_InterlockedCompareExchangePointer_nf
.param_str = "v*v*D*v*v*"
.language = .all_ms_languages
_InterlockedDecrement
.param_str = "NiNiD*"
.language = .all_ms_languages
_InterlockedDecrement16
.param_str = "ssD*"
.language = .all_ms_languages
_InterlockedExchange
.param_str = "NiNiD*Ni"
.language = .all_ms_languages
_InterlockedExchange16
.param_str = "ssD*s"
.language = .all_ms_languages
_InterlockedExchange8
.param_str = "ccD*c"
.language = .all_ms_languages
_InterlockedExchangeAdd
.param_str = "NiNiD*Ni"
.language = .all_ms_languages
_InterlockedExchangeAdd16
.param_str = "ssD*s"
.language = .all_ms_languages
_InterlockedExchangeAdd8
.param_str = "ccD*c"
.language = .all_ms_languages
_InterlockedExchangePointer
.param_str = "v*v*D*v*"
.language = .all_ms_languages
_InterlockedExchangeSub
.param_str = "NiNiD*Ni"
.language = .all_ms_languages
_InterlockedExchangeSub16
.param_str = "ssD*s"
.language = .all_ms_languages
_InterlockedExchangeSub8
.param_str = "ccD*c"
.language = .all_ms_languages
_InterlockedIncrement
.param_str = "NiNiD*"
.language = .all_ms_languages
_InterlockedIncrement16
.param_str = "ssD*"
.language = .all_ms_languages
_InterlockedOr
.param_str = "NiNiD*Ni"
.language = .all_ms_languages
_InterlockedOr16
.param_str = "ssD*s"
.language = .all_ms_languages
_InterlockedOr8
.param_str = "ccD*c"
.language = .all_ms_languages
_InterlockedXor
.param_str = "NiNiD*Ni"
.language = .all_ms_languages
_InterlockedXor16
.param_str = "ssD*s"
.language = .all_ms_languages
_InterlockedXor8
.param_str = "ccD*c"
.language = .all_ms_languages
_MoveFromCoprocessor
.param_str = "UiIUiIUiIUiIUiIUi"
.language = .all_ms_languages
.target_set = TargetSet.initOne(.arm)
_MoveFromCoprocessor2
.param_str = "UiIUiIUiIUiIUiIUi"
.language = .all_ms_languages
.target_set = TargetSet.initOne(.arm)
_MoveToCoprocessor
.param_str = "vUiIUiIUiIUiIUiIUi"
.language = .all_ms_languages
.target_set = TargetSet.initOne(.arm)
_MoveToCoprocessor2
.param_str = "vUiIUiIUiIUiIUiIUi"
.language = .all_ms_languages
.target_set = TargetSet.initOne(.arm)
_ReturnAddress
.param_str = "v*"
.language = .all_ms_languages
__GetExceptionInfo
.param_str = "v*."
.language = .all_ms_languages
.attributes = .{ .custom_typecheck = true, .eval_args = false }
__abnormal_termination
.param_str = "i"
.language = .all_ms_languages
__annotation
.param_str = "wC*."
.language = .all_ms_languages
__arithmetic_fence
.param_str = "v."
.attributes = .{ .custom_typecheck = true, .const_evaluable = true }
__assume
.param_str = "vb"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
__atomic_always_lock_free
.param_str = "bzvCD*"
.attributes = .{ .const_evaluable = true }
__atomic_clear
.param_str = "vvD*i"
__atomic_is_lock_free
.param_str = "bzvCD*"
.attributes = .{ .const_evaluable = true }
__atomic_signal_fence
.param_str = "vi"
__atomic_test_and_set
.param_str = "bvD*i"
__atomic_thread_fence
.param_str = "vi"
__builtin___CFStringMakeConstantString
.param_str = "FC*cC*"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin___NSStringMakeConstantString
.param_str = "FC*cC*"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin___clear_cache
.param_str = "vc*c*"
__builtin___fprintf_chk
.param_str = "iP*RicC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 2 }
__builtin___get_unsafe_stack_bottom
.param_str = "v*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___get_unsafe_stack_ptr
.param_str = "v*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___get_unsafe_stack_start
.param_str = "v*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___get_unsafe_stack_top
.param_str = "v*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___memccpy_chk
.param_str = "v*v*vC*izz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___memcpy_chk
.param_str = "v*v*vC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___memmove_chk
.param_str = "v*v*vC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___mempcpy_chk
.param_str = "v*v*vC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___memset_chk
.param_str = "v*v*izz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___printf_chk
.param_str = "iicC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 1 }
__builtin___snprintf_chk
.param_str = "ic*RzizcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 4 }
__builtin___sprintf_chk
.param_str = "ic*RizcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 3 }
__builtin___stpcpy_chk
.param_str = "c*c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___stpncpy_chk
.param_str = "c*c*cC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___strcat_chk
.param_str = "c*c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___strcpy_chk
.param_str = "c*c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___strlcat_chk
.param_str = "zc*cC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___strlcpy_chk
.param_str = "zc*cC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___strncat_chk
.param_str = "c*c*cC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___strncpy_chk
.param_str = "c*c*cC*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin___vfprintf_chk
.param_str = "iP*RicC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 2 }
__builtin___vprintf_chk
.param_str = "iicC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 1 }
__builtin___vsnprintf_chk
.param_str = "ic*RzizcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 4 }
__builtin___vsprintf_chk
.param_str = "ic*RizcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 3 }
__builtin_abort
.param_str = "v"
.attributes = .{ .noreturn = true, .lib_function_with_builtin_prefix = true }
__builtin_abs
.param_str = "ii"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_acos
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acosf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acosf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acosh
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acoshf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acoshf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acoshl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_acosl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_add_overflow
.param_str = "b."
.attributes = .{ .custom_typecheck = true, .const_evaluable = true }
__builtin_addc
.param_str = "UiUiCUiCUiCUi*"
__builtin_addcb
.param_str = "UcUcCUcCUcCUc*"
__builtin_addcl
.param_str = "ULiULiCULiCULiCULi*"
__builtin_addcll
.param_str = "ULLiULLiCULLiCULLiCULLi*"
__builtin_addcs
.param_str = "UsUsCUsCUsCUs*"
__builtin_align_down
.param_str = "v*vC*z"
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_align_up
.param_str = "v*vC*z"
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_alloca
.param_str = "v*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_alloca_uninitialized
.param_str = "v*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_alloca_with_align
.param_str = "v*zIz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_alloca_with_align_uninitialized
.param_str = "v*zIz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_amdgcn_alignbit
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_alignbyte
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_atomic_dec32
.param_str = "UZiUZiD*UZiUicC*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_atomic_dec64
.param_str = "UWiUWiD*UWiUicC*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_atomic_inc32
.param_str = "UZiUZiD*UZiUicC*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_atomic_inc64
.param_str = "UWiUWiD*UWiUicC*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_buffer_wbinvl1
.param_str = "v"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_class
.param_str = "bdi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_classf
.param_str = "bfi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cosf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cubeid
.param_str = "ffff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cubema
.param_str = "ffff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cubesc
.param_str = "ffff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cubetc
.param_str = "ffff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cvt_pk_i16
.param_str = "E2sii"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cvt_pk_u16
.param_str = "E2UsUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cvt_pk_u8_f32
.param_str = "UifUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cvt_pknorm_i16
.param_str = "E2sff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cvt_pknorm_u16
.param_str = "E2Usff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_cvt_pkrtz
.param_str = "E2hff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_dispatch_ptr
.param_str = "v*4"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_div_fixup
.param_str = "dddd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_div_fixupf
.param_str = "ffff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_div_fmas
.param_str = "ddddb"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_div_fmasf
.param_str = "ffffb"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_div_scale
.param_str = "dddbb*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_div_scalef
.param_str = "fffbb*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_ds_append
.param_str = "ii*3"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_ds_bpermute
.param_str = "iii"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_ds_consume
.param_str = "ii*3"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_ds_faddf
.param_str = "ff*3fIiIiIb"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_ds_fmaxf
.param_str = "ff*3fIiIiIb"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_ds_fminf
.param_str = "ff*3fIiIiIb"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_ds_permute
.param_str = "iii"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_ds_swizzle
.param_str = "iiIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_endpgm
.param_str = "v"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .noreturn = true }
__builtin_amdgcn_exp2f
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_fcmp
.param_str = "WUiddIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_fcmpf
.param_str = "WUiffIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_fence
.param_str = "vUicC*"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_fmed3f
.param_str = "ffff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_fract
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_fractf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_frexp_exp
.param_str = "id"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_frexp_expf
.param_str = "if"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_frexp_mant
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_frexp_mantf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_grid_size_x
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_grid_size_y
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_grid_size_z
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_groupstaticsize
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_iglp_opt
.param_str = "vIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_implicitarg_ptr
.param_str = "v*4"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_interp_mov
.param_str = "fUiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_interp_p1
.param_str = "ffUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_interp_p1_f16
.param_str = "ffUiUibUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_interp_p2
.param_str = "fffUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_interp_p2_f16
.param_str = "hffUiUibUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_is_private
.param_str = "bvC*0"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_is_shared
.param_str = "bvC*0"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_kernarg_segment_ptr
.param_str = "v*4"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_ldexp
.param_str = "ddi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_ldexpf
.param_str = "ffi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_lerp
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_log_clampf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_logf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_mbcnt_hi
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_mbcnt_lo
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_mqsad_pk_u16_u8
.param_str = "WUiWUiUiWUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_mqsad_u32_u8
.param_str = "V4UiWUiUiV4Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_msad_u8
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_qsad_pk_u16_u8
.param_str = "WUiWUiUiWUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_queue_ptr
.param_str = "v*4"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_rcp
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_rcpf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_read_exec
.param_str = "WUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_read_exec_hi
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_read_exec_lo
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_readfirstlane
.param_str = "ii"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_readlane
.param_str = "iii"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_rsq
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_rsq_clamp
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_rsq_clampf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_rsqf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_s_barrier
.param_str = "v"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_dcache_inv
.param_str = "v"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_decperflevel
.param_str = "vIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_getpc
.param_str = "WUi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_getreg
.param_str = "UiIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_incperflevel
.param_str = "vIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_sendmsg
.param_str = "vIiUi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_sendmsghalt
.param_str = "vIiUi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_setprio
.param_str = "vIs"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_setreg
.param_str = "vIiUi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_sleep
.param_str = "vIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_s_waitcnt
.param_str = "vIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_sad_hi_u8
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sad_u16
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sad_u8
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sbfe
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sched_barrier
.param_str = "vIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_sched_group_barrier
.param_str = "vIiIiIi"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_sicmp
.param_str = "WUiiiIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sicmpl
.param_str = "WUiWiWiIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sinf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sqrt
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_sqrtf
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_trig_preop
.param_str = "ddi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_trig_preopf
.param_str = "ffi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_ubfe
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_uicmp
.param_str = "WUiUiUiIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_uicmpl
.param_str = "WUiWUiWUiIi"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_wave_barrier
.param_str = "v"
.target_set = TargetSet.initOne(.amdgpu)
__builtin_amdgcn_workgroup_id_x
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workgroup_id_y
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workgroup_id_z
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workgroup_size_x
.param_str = "Us"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workgroup_size_y
.param_str = "Us"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workgroup_size_z
.param_str = "Us"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workitem_id_x
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workitem_id_y
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_amdgcn_workitem_id_z
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_annotation
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_arm_cdp
.param_str = "vUIiUIiUIiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_cdp2
.param_str = "vUIiUIiUIiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_clrex
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_arm_cls
.param_str = "UiZUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_cls64
.param_str = "UiWUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_clz
.param_str = "UiZUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_clz64
.param_str = "UiWUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_cmse_TT
.param_str = "Uiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_cmse_TTA
.param_str = "Uiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_cmse_TTAT
.param_str = "Uiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_cmse_TTT
.param_str = "Uiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_dbg
.param_str = "vUi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_dmb
.param_str = "vUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_dsb
.param_str = "vUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_get_fpscr
.param_str = "Ui"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_isb
.param_str = "vUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_ldaex
.param_str = "v."
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .custom_typecheck = true }
__builtin_arm_ldc
.param_str = "vUIiUIivC*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_ldc2
.param_str = "vUIiUIivC*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_ldc2l
.param_str = "vUIiUIivC*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_ldcl
.param_str = "vUIiUIivC*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_ldrex
.param_str = "v."
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .custom_typecheck = true }
__builtin_arm_ldrexd
.param_str = "LLUiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mcr
.param_str = "vUIiUIiUiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mcr2
.param_str = "vUIiUIiUiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mcrr
.param_str = "vUIiUIiLLUiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mcrr2
.param_str = "vUIiUIiLLUiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mrc
.param_str = "UiUIiUIiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mrc2
.param_str = "UiUIiUIiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mrrc
.param_str = "LLUiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_mrrc2
.param_str = "LLUiUIiUIiUIi"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_nop
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_arm_prefetch
.param_str = "!"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_qadd
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qadd16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qadd8
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qasx
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qdbl
.param_str = "ii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qsax
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qsub
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qsub16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_qsub8
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_rbit
.param_str = "UiUi"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_rbit64
.param_str = "WUiWUi"
.target_set = TargetSet.initOne(.aarch64)
.attributes = .{ .@"const" = true }
__builtin_arm_rsr
.param_str = "UicC*"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_rsr64
.param_str = "!"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_rsrp
.param_str = "v*cC*"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_sadd16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_sadd8
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_sasx
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_sel
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_set_fpscr
.param_str = "vUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_sev
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_arm_sevl
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_arm_shadd16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_shadd8
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_shasx
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_shsax
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_shsub16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_shsub8
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlabb
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlabt
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlad
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smladx
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlald
.param_str = "LLiiiLLi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlaldx
.param_str = "LLiiiLLi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlatb
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlatt
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlawb
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlawt
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlsd
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlsdx
.param_str = "iiii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlsld
.param_str = "LLiiiLLi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smlsldx
.param_str = "LLiiiLLi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smuad
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smuadx
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smulbb
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smulbt
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smultb
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smultt
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smulwb
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smulwt
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smusd
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_smusdx
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_ssat
.param_str = "iiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_ssat16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_ssax
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_ssub16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_ssub8
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_stc
.param_str = "vUIiUIiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_stc2
.param_str = "vUIiUIiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_stc2l
.param_str = "vUIiUIiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_stcl
.param_str = "vUIiUIiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_stlex
.param_str = "i."
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .custom_typecheck = true }
__builtin_arm_strex
.param_str = "i."
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .custom_typecheck = true }
__builtin_arm_strexd
.param_str = "iLLUiv*"
.target_set = TargetSet.initOne(.arm)
__builtin_arm_sxtab16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_sxtb16
.param_str = "ii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_tcancel
.param_str = "vWUIi"
.target_set = TargetSet.initOne(.aarch64)
__builtin_arm_tcommit
.param_str = "v"
.target_set = TargetSet.initOne(.aarch64)
__builtin_arm_tstart
.param_str = "WUi"
.target_set = TargetSet.initOne(.aarch64)
.attributes = .{ .returns_twice = true }
__builtin_arm_ttest
.param_str = "WUi"
.target_set = TargetSet.initOne(.aarch64)
.attributes = .{ .@"const" = true }
__builtin_arm_uadd16
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uadd8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uasx
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uhadd16
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uhadd8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uhasx
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uhsax
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uhsub16
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uhsub8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uqadd16
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uqadd8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uqasx
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uqsax
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uqsub16
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uqsub8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usad8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usada8
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usat
.param_str = "UiiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usat16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usax
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usub16
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_usub8
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uxtab16
.param_str = "iii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_uxtb16
.param_str = "ii"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_vcvtr_d
.param_str = "fdi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_vcvtr_f
.param_str = "ffi"
.target_set = TargetSet.initOne(.arm)
.attributes = .{ .@"const" = true }
__builtin_arm_wfe
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_arm_wfi
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_arm_wsr
.param_str = "vcC*Ui"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_wsr64
.param_str = "!"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_wsrp
.param_str = "vcC*vC*"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_arm_yield
.param_str = "v"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__builtin_asin
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinh
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinhf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinhf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinhl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_asinl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_assume
.param_str = "vb"
.attributes = .{ .const_evaluable = true }
__builtin_assume_aligned
.param_str = "v*vC*z."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_assume_separate_storage
.param_str = "vvCD*vCD*"
.attributes = .{ .const_evaluable = true }
__builtin_atan
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atan2
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atan2f
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atan2f128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atan2l
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanh
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanhf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanhf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanhl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_atanl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_bcmp
.param_str = "ivC*vC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_bcopy
.param_str = "vvC*v*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_bitrev
.param_str = "UiUi"
.target_set = TargetSet.initOne(.xcore)
.attributes = .{ .@"const" = true }
__builtin_bitreverse16
.param_str = "UsUs"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bitreverse32
.param_str = "UZiUZi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bitreverse64
.param_str = "UWiUWi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bitreverse8
.param_str = "UcUc"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bswap16
.param_str = "UsUs"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bswap32
.param_str = "UZiUZi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bswap64
.param_str = "UWiUWi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_bzero
.param_str = "vv*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_cabs
.param_str = "dXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cabsf
.param_str = "fXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cabsl
.param_str = "LdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cacos
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cacosf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cacosh
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cacoshf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cacoshl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cacosl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_call_with_static_chain
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_calloc
.param_str = "v*zz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_canonicalize
.param_str = "dd"
.attributes = .{ .@"const" = true }
__builtin_canonicalizef
.param_str = "ff"
.attributes = .{ .@"const" = true }
__builtin_canonicalizef16
.param_str = "hh"
.attributes = .{ .@"const" = true }
__builtin_canonicalizel
.param_str = "LdLd"
.attributes = .{ .@"const" = true }
__builtin_carg
.param_str = "dXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cargf
.param_str = "fXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cargl
.param_str = "LdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_casin
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_casinf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_casinh
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_casinhf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_casinhl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_casinl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_catan
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_catanf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_catanh
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_catanhf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_catanhl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_catanl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cbrt
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cbrtf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cbrtf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cbrtl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_ccos
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ccosf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ccosh
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ccoshf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ccoshl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ccosl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ceil
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_ceilf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_ceilf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_ceilf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_ceill
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cexp
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cexpf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cexpl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_char_memchr
.param_str = "c*cC*iz"
.attributes = .{ .const_evaluable = true }
__builtin_cimag
.param_str = "dXd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cimagf
.param_str = "fXf"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cimagl
.param_str = "LdXLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_classify_type
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .eval_args = false, .const_evaluable = true }
__builtin_clog
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_clogf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_clogl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_clrsb
.param_str = "ii"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_clrsbl
.param_str = "iLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_clrsbll
.param_str = "iLLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_clz
.param_str = "iUi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_clzl
.param_str = "iULi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_clzll
.param_str = "iULLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_clzs
.param_str = "iUs"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_complex
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_conj
.param_str = "XdXd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_conjf
.param_str = "XfXf"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_conjl
.param_str = "XLdXLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_constant_p
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .eval_args = false, .const_evaluable = true }
__builtin_convertvector
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_copysign
.param_str = "ddd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_copysignf
.param_str = "fff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_copysignf128
.param_str = "LLdLLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_copysignf16
.param_str = "hhh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_copysignl
.param_str = "LdLdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_cos
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cosf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cosf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cosf16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cosh
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_coshf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_coshf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_coshl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cosl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cpow
.param_str = "XdXdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cpowf
.param_str = "XfXfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cpowl
.param_str = "XLdXLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_cproj
.param_str = "XdXd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cprojf
.param_str = "XfXf"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cprojl
.param_str = "XLdXLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_cpu_init
.param_str = "v"
.target_set = TargetSet.initOne(.x86)
__builtin_cpu_is
.param_str = "bcC*"
.target_set = TargetSet.initOne(.x86)
.attributes = .{ .@"const" = true }
__builtin_cpu_supports
.param_str = "bcC*"
.target_set = TargetSet.initOne(.x86)
.attributes = .{ .@"const" = true }
__builtin_creal
.param_str = "dXd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_crealf
.param_str = "fXf"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_creall
.param_str = "LdXLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_csin
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csinf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csinh
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csinhf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csinhl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csinl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csqrt
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csqrtf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_csqrtl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctan
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctanf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctanh
.param_str = "XdXd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctanhf
.param_str = "XfXf"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctanhl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctanl
.param_str = "XLdXLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ctz
.param_str = "iUi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_ctzl
.param_str = "iULi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_ctzll
.param_str = "iULLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_ctzs
.param_str = "iUs"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_dcbf
.param_str = "vvC*"
.target_set = TargetSet.initOne(.ppc)
__builtin_debugtrap
.param_str = "v"
__builtin_dump_struct
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_dwarf_cfa
.param_str = "v*"
__builtin_dwarf_sp_column
.param_str = "Ui"
__builtin_dynamic_object_size
.param_str = "zvC*i"
.attributes = .{ .eval_args = false, .const_evaluable = true }
__builtin_eh_return
.param_str = "vzv*"
.attributes = .{ .noreturn = true }
__builtin_eh_return_data_regno
.param_str = "iIi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_elementwise_abs
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_add_sat
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_bitreverse
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_canonicalize
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_ceil
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_copysign
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_cos
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_exp
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_exp2
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_floor
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_fma
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_log
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_log10
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_log2
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_max
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_min
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_nearbyint
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_pow
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_rint
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_round
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_roundeven
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_sin
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_sqrt
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_sub_sat
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_elementwise_trunc
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_erf
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erfc
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erfcf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erfcf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erfcl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erff
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erff128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_erfl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp10
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp10f
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp10f128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp10f16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp10l
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp2
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp2f
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp2f128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp2f16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_exp2l
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expect
.param_str = "LiLiLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_expect_with_probability
.param_str = "LiLiLid"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_expf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expf16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expm1
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expm1f
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expm1f128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_expm1l
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_extend_pointer
.param_str = "ULLiv*"
__builtin_extract_return_addr
.param_str = "v*v*"
__builtin_fabs
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fabsf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fabsf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fabsf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_fabsl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fdim
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fdimf
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fdimf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fdiml
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ffs
.param_str = "ii"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_ffsl
.param_str = "iLi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_ffsll
.param_str = "iLLi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_floor
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_floorf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_floorf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_floorf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_floorl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_flt_rounds
.param_str = "i"
__builtin_fma
.param_str = "dddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmaf
.param_str = "ffff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmaf128
.param_str = "LLdLLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmaf16
.param_str = "hhhh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmal
.param_str = "LdLdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmax
.param_str = "ddd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fmaxf
.param_str = "fff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fmaxf128
.param_str = "LLdLLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fmaxf16
.param_str = "hhh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fmaxl
.param_str = "LdLdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fmin
.param_str = "ddd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fminf
.param_str = "fff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fminf128
.param_str = "LLdLLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fminf16
.param_str = "hhh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fminl
.param_str = "LdLdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fmod
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmodf
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmodf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmodf16
.param_str = "hhh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fmodl
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_fpclassify
.param_str = "iiiiii."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_fprintf
.param_str = "iP*RcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 1 }
__builtin_frame_address
.param_str = "v*IUi"
__builtin_free
.param_str = "vv*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_frexp
.param_str = "ddi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_frexpf
.param_str = "ffi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_frexpf128
.param_str = "LLdLLdi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_frexpf16
.param_str = "hhi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_frexpl
.param_str = "LdLdi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_frob_return_addr
.param_str = "v*v*"
__builtin_fscanf
.param_str = "iP*RcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .scanf, .format_string_position = 1 }
__builtin_getid
.param_str = "Si"
.target_set = TargetSet.initOne(.xcore)
.attributes = .{ .@"const" = true }
__builtin_getps
.param_str = "UiUi"
.target_set = TargetSet.initOne(.xcore)
__builtin_huge_val
.param_str = "d"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_huge_valf
.param_str = "f"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_huge_valf128
.param_str = "LLd"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_huge_valf16
.param_str = "x"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_huge_vall
.param_str = "Ld"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_hypot
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_hypotf
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_hypotf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_hypotl
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ia32_rdpmc
.param_str = "UOii"
.target_set = TargetSet.initOne(.x86)
__builtin_ia32_rdtsc
.param_str = "UOi"
.target_set = TargetSet.initOne(.x86)
__builtin_ia32_rdtscp
.param_str = "UOiUi*"
.target_set = TargetSet.initOne(.x86)
__builtin_ilogb
.param_str = "id"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ilogbf
.param_str = "if"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ilogbf128
.param_str = "iLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ilogbl
.param_str = "iLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_index
.param_str = "c*cC*i"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_inf
.param_str = "d"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_inff
.param_str = "f"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_inff128
.param_str = "LLd"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_inff16
.param_str = "x"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_infl
.param_str = "Ld"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_init_dwarf_reg_size_table
.param_str = "vv*"
__builtin_is_aligned
.param_str = "bvC*z"
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_isfinite
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_isfpclass
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_isgreater
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_isgreaterequal
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_isinf
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_isinf_sign
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_isless
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_islessequal
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_islessgreater
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_isnan
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_isnormal
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_isunordered
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_labs
.param_str = "LiLi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_launder
.param_str = "v*v*"
.attributes = .{ .custom_typecheck = true, .const_evaluable = true }
__builtin_ldexp
.param_str = "ddi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ldexpf
.param_str = "ffi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ldexpf128
.param_str = "LLdLLdi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ldexpf16
.param_str = "hhi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ldexpl
.param_str = "LdLdi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lgamma
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_lgammaf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_lgammaf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_lgammal
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_llabs
.param_str = "LLiLLi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_llrint
.param_str = "LLid"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llrintf
.param_str = "LLif"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llrintf128
.param_str = "LLiLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llrintl
.param_str = "LLiLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llround
.param_str = "LLid"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llroundf
.param_str = "LLif"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llroundf128
.param_str = "LLiLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_llroundl
.param_str = "LLiLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log10
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log10f
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log10f128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log10f16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log10l
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log1p
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log1pf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log1pf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log1pl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log2
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log2f
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log2f128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log2f16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_log2l
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logb
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logbf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logbf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logbl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logf16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_logl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_longjmp
.param_str = "vv**i"
.attributes = .{ .noreturn = true }
__builtin_lrint
.param_str = "Lid"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lrintf
.param_str = "Lif"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lrintf128
.param_str = "LiLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lrintl
.param_str = "LiLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lround
.param_str = "Lid"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lroundf
.param_str = "Lif"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lroundf128
.param_str = "LiLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_lroundl
.param_str = "LiLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_malloc
.param_str = "v*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_matrix_column_major_load
.param_str = "v."
.attributes = .{ .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_matrix_column_major_store
.param_str = "v."
.attributes = .{ .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_matrix_transpose
.param_str = "v."
.attributes = .{ .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_memchr
.param_str = "v*vC*iz"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_memcmp
.param_str = "ivC*vC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_memcpy
.param_str = "v*v*vC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_memcpy_inline
.param_str = "vv*vC*Iz"
__builtin_memmove
.param_str = "v*v*vC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_mempcpy
.param_str = "v*v*vC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_memset
.param_str = "v*v*iz"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_memset_inline
.param_str = "vv*iIz"
__builtin_mips_absq_s_ph
.param_str = "V2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_absq_s_qb
.param_str = "V4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_absq_s_w
.param_str = "ii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addq_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addq_s_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addq_s_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addqh_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_addqh_r_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_addqh_r_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_addqh_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_addsc
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addu_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addu_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addu_s_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_addu_s_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_adduh_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_adduh_r_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_addwc
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_append
.param_str = "iiiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_balign
.param_str = "iiiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_bitrev
.param_str = "ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_bposge32
.param_str = "i"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmp_eq_ph
.param_str = "vV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmp_le_ph
.param_str = "vV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmp_lt_ph
.param_str = "vV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpgdu_eq_qb
.param_str = "iV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpgdu_le_qb
.param_str = "iV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpgdu_lt_qb
.param_str = "iV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpgu_eq_qb
.param_str = "iV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpgu_le_qb
.param_str = "iV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpgu_lt_qb
.param_str = "iV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpu_eq_qb
.param_str = "vV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpu_le_qb
.param_str = "vV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_cmpu_lt_qb
.param_str = "vV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpa_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dpaq_s_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpaq_sa_l_w
.param_str = "LLiLLiii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpaqx_s_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpaqx_sa_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpau_h_qbl
.param_str = "LLiLLiV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dpau_h_qbr
.param_str = "LLiLLiV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dpax_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dps_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dpsq_s_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpsq_sa_l_w
.param_str = "LLiLLiii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpsqx_s_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpsqx_sa_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_dpsu_h_qbl
.param_str = "LLiLLiV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dpsu_h_qbr
.param_str = "LLiLLiV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_dpsx_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_extp
.param_str = "iLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_extpdp
.param_str = "iLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_extr_r_w
.param_str = "iLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_extr_rs_w
.param_str = "iLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_extr_s_h
.param_str = "iLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_extr_w
.param_str = "iLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_insv
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_lbux
.param_str = "iv*i"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_lhx
.param_str = "iv*i"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_lwx
.param_str = "iv*i"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_madd
.param_str = "LLiLLiii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_maddu
.param_str = "LLiLLiUiUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_maq_s_w_phl
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_maq_s_w_phr
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_maq_sa_w_phl
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_maq_sa_w_phr
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_modsub
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_msub
.param_str = "LLiLLiii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_msubu
.param_str = "LLiLLiUiUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_mthlip
.param_str = "LLiLLii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mul_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mul_s_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_muleq_s_w_phl
.param_str = "iV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_muleq_s_w_phr
.param_str = "iV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_muleu_s_ph_qbl
.param_str = "V2sV4ScV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_muleu_s_ph_qbr
.param_str = "V2sV4ScV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mulq_rs_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mulq_rs_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mulq_s_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mulq_s_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mulsa_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_mulsaq_s_w_ph
.param_str = "LLiLLiV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_mult
.param_str = "LLiii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_multu
.param_str = "LLiUiUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_packrl_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_pick_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_pick_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_preceq_w_phl
.param_str = "iV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_preceq_w_phr
.param_str = "iV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precequ_ph_qbl
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precequ_ph_qbla
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precequ_ph_qbr
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precequ_ph_qbra
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_preceu_ph_qbl
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_preceu_ph_qbla
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_preceu_ph_qbr
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_preceu_ph_qbra
.param_str = "V2sV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precr_qb_ph
.param_str = "V4ScV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_precr_sra_ph_w
.param_str = "V2siiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precr_sra_r_ph_w
.param_str = "V2siiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precrq_ph_w
.param_str = "V2sii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precrq_qb_ph
.param_str = "V4ScV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_precrq_rs_ph_w
.param_str = "V2sii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_precrqu_s_qb_ph
.param_str = "V4ScV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_prepend
.param_str = "iiiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_raddu_w_qb
.param_str = "iV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_rddsp
.param_str = "iIi"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_repl_ph
.param_str = "V2si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_repl_qb
.param_str = "V4Sci"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shilo
.param_str = "LLiLLii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shll_ph
.param_str = "V2sV2si"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_shll_qb
.param_str = "V4ScV4Sci"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_shll_s_ph
.param_str = "V2sV2si"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_shll_s_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_shra_ph
.param_str = "V2sV2si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shra_qb
.param_str = "V4ScV4Sci"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shra_r_ph
.param_str = "V2sV2si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shra_r_qb
.param_str = "V4ScV4Sci"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shra_r_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shrl_ph
.param_str = "V2sV2si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_shrl_qb
.param_str = "V4ScV4Sci"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_subq_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subq_s_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subq_s_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subqh_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_subqh_r_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_subqh_r_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_subqh_w
.param_str = "iii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_subu_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subu_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subu_s_ph
.param_str = "V2sV2sV2s"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subu_s_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
__builtin_mips_subuh_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_subuh_r_qb
.param_str = "V4ScV4ScV4Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mips_wrdsp
.param_str = "viIi"
.target_set = TargetSet.initOne(.mips)
__builtin_modf
.param_str = "ddd*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_modff
.param_str = "fff*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_modff128
.param_str = "LLdLLdLLd*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_modfl
.param_str = "LdLdLd*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_msa_add_a_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_add_a_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_add_a_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_add_a_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_a_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_a_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_a_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_a_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_adds_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addv_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addv_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addv_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addv_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addvi_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addvi_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addvi_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_addvi_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_and_v
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_andi_b
.param_str = "V16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_asub_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ave_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_aver_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclr_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclr_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclr_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclr_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclri_b
.param_str = "V16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclri_d
.param_str = "V2ULLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclri_h
.param_str = "V8UsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bclri_w
.param_str = "V4UiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsl_b
.param_str = "V16UcV16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsl_d
.param_str = "V2ULLiV2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsl_h
.param_str = "V8UsV8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsl_w
.param_str = "V4UiV4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsli_b
.param_str = "V16UcV16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsli_d
.param_str = "V2ULLiV2ULLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsli_h
.param_str = "V8UsV8UsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsli_w
.param_str = "V4UiV4UiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsr_b
.param_str = "V16UcV16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsr_d
.param_str = "V2ULLiV2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsr_h
.param_str = "V8UsV8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsr_w
.param_str = "V4UiV4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsri_b
.param_str = "V16UcV16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsri_d
.param_str = "V2ULLiV2ULLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsri_h
.param_str = "V8UsV8UsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_binsri_w
.param_str = "V4UiV4UiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bmnz_v
.param_str = "V16UcV16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bmnzi_b
.param_str = "V16UcV16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bmz_v
.param_str = "V16UcV16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bmzi_b
.param_str = "V16UcV16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bneg_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bneg_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bneg_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bneg_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnegi_b
.param_str = "V16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnegi_d
.param_str = "V2ULLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnegi_h
.param_str = "V8UsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnegi_w
.param_str = "V4UiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnz_b
.param_str = "iV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnz_d
.param_str = "iV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnz_h
.param_str = "iV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnz_v
.param_str = "iV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bnz_w
.param_str = "iV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bsel_v
.param_str = "V16UcV16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bseli_b
.param_str = "V16UcV16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bset_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bset_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bset_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bset_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bseti_b
.param_str = "V16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bseti_d
.param_str = "V2ULLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bseti_h
.param_str = "V8UsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bseti_w
.param_str = "V4UiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bz_b
.param_str = "iV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bz_d
.param_str = "iV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bz_h
.param_str = "iV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bz_v
.param_str = "iV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_bz_w
.param_str = "iV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceq_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceq_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceq_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceq_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceqi_b
.param_str = "V16ScV16ScISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceqi_d
.param_str = "V2SLLiV2SLLiISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceqi_h
.param_str = "V8SsV8SsISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ceqi_w
.param_str = "V4SiV4SiISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cfcmsa
.param_str = "iIi"
.target_set = TargetSet.initOne(.mips)
__builtin_msa_cle_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_u_b
.param_str = "V16ScV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_u_d
.param_str = "V2SLLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_u_h
.param_str = "V8SsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_cle_u_w
.param_str = "V4SiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_s_b
.param_str = "V16ScV16ScISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_s_d
.param_str = "V2SLLiV2SLLiISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_s_h
.param_str = "V8SsV8SsISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_s_w
.param_str = "V4SiV4SiISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_u_b
.param_str = "V16ScV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_u_d
.param_str = "V2SLLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_u_h
.param_str = "V8SsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clei_u_w
.param_str = "V4SiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_u_b
.param_str = "V16ScV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_u_d
.param_str = "V2SLLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_u_h
.param_str = "V8SsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clt_u_w
.param_str = "V4SiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_s_b
.param_str = "V16ScV16ScISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_s_d
.param_str = "V2SLLiV2SLLiISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_s_h
.param_str = "V8SsV8SsISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_s_w
.param_str = "V4SiV4SiISi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_u_b
.param_str = "V16ScV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_u_d
.param_str = "V2SLLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_u_h
.param_str = "V8SsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_clti_u_w
.param_str = "V4SiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_s_b
.param_str = "iV16ScIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_s_d
.param_str = "LLiV2SLLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_s_h
.param_str = "iV8SsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_s_w
.param_str = "iV4SiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_u_b
.param_str = "iV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_u_d
.param_str = "LLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_u_h
.param_str = "iV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_copy_u_w
.param_str = "iV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ctcmsa
.param_str = "vIii"
.target_set = TargetSet.initOne(.mips)
__builtin_msa_div_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_div_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dotp_s_d
.param_str = "V2SLLiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dotp_s_h
.param_str = "V8SsV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dotp_s_w
.param_str = "V4SiV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dotp_u_d
.param_str = "V2ULLiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dotp_u_h
.param_str = "V8UsV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dotp_u_w
.param_str = "V4UiV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpadd_s_d
.param_str = "V2SLLiV2SLLiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpadd_s_h
.param_str = "V8SsV8SsV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpadd_s_w
.param_str = "V4SiV4SiV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpadd_u_d
.param_str = "V2ULLiV2ULLiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpadd_u_h
.param_str = "V8UsV8UsV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpadd_u_w
.param_str = "V4UiV4UiV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpsub_s_d
.param_str = "V2SLLiV2SLLiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpsub_s_h
.param_str = "V8SsV8SsV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpsub_s_w
.param_str = "V4SiV4SiV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpsub_u_d
.param_str = "V2ULLiV2ULLiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpsub_u_h
.param_str = "V8UsV8UsV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_dpsub_u_w
.param_str = "V4UiV4UiV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fadd_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fadd_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcaf_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcaf_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fceq_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fceq_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fclass_d
.param_str = "V2LLiV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fclass_w
.param_str = "V4iV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcle_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcle_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fclt_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fclt_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcne_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcne_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcor_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcor_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcueq_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcueq_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcule_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcule_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcult_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcult_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcun_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcun_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcune_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fcune_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fdiv_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fdiv_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexdo_h
.param_str = "V8hV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexdo_w
.param_str = "V4fV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexp2_d
.param_str = "V2dV2dV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexp2_w
.param_str = "V4fV4fV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexupl_d
.param_str = "V2dV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexupl_w
.param_str = "V4fV8h"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexupr_d
.param_str = "V2dV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fexupr_w
.param_str = "V4fV8h"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffint_s_d
.param_str = "V2dV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffint_s_w
.param_str = "V4fV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffint_u_d
.param_str = "V2dV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffint_u_w
.param_str = "V4fV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffql_d
.param_str = "V2dV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffql_w
.param_str = "V4fV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffqr_d
.param_str = "V2dV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ffqr_w
.param_str = "V4fV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fill_b
.param_str = "V16Sci"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fill_d
.param_str = "V2SLLiLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fill_h
.param_str = "V8Ssi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fill_w
.param_str = "V4Sii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_flog2_d
.param_str = "V2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_flog2_w
.param_str = "V4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmadd_d
.param_str = "V2dV2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmadd_w
.param_str = "V4fV4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmax_a_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmax_a_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmax_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmax_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmin_a_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmin_a_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmin_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmin_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmsub_d
.param_str = "V2dV2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmsub_w
.param_str = "V4fV4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmul_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fmul_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_frcp_d
.param_str = "V2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_frcp_w
.param_str = "V4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_frint_d
.param_str = "V2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_frint_w
.param_str = "V4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_frsqrt_d
.param_str = "V2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_frsqrt_w
.param_str = "V4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsaf_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsaf_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fseq_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fseq_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsle_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsle_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fslt_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fslt_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsne_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsne_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsor_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsor_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsqrt_d
.param_str = "V2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsqrt_w
.param_str = "V4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsub_d
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsub_w
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsueq_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsueq_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsule_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsule_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsult_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsult_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsun_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsun_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsune_d
.param_str = "V2LLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_fsune_w
.param_str = "V4iV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftint_s_d
.param_str = "V2SLLiV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftint_s_w
.param_str = "V4SiV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftint_u_d
.param_str = "V2ULLiV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftint_u_w
.param_str = "V4UiV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftq_h
.param_str = "V4UiV4fV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftq_w
.param_str = "V2ULLiV2dV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftrunc_s_d
.param_str = "V2SLLiV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftrunc_s_w
.param_str = "V4SiV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftrunc_u_d
.param_str = "V2ULLiV2d"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ftrunc_u_w
.param_str = "V4UiV4f"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hadd_s_d
.param_str = "V2SLLiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hadd_s_h
.param_str = "V8SsV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hadd_s_w
.param_str = "V4SiV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hadd_u_d
.param_str = "V2ULLiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hadd_u_h
.param_str = "V8UsV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hadd_u_w
.param_str = "V4UiV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hsub_s_d
.param_str = "V2SLLiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hsub_s_h
.param_str = "V8SsV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hsub_s_w
.param_str = "V4SiV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hsub_u_d
.param_str = "V2ULLiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hsub_u_h
.param_str = "V8UsV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_hsub_u_w
.param_str = "V4UiV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvev_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvev_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvev_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvev_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvl_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvl_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvl_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvl_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvod_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvod_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvod_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvod_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvr_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvr_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvr_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ilvr_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insert_b
.param_str = "V16ScV16ScIUii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insert_d
.param_str = "V2SLLiV2SLLiIUiLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insert_h
.param_str = "V8SsV8SsIUii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insert_w
.param_str = "V4SiV4SiIUii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insve_b
.param_str = "V16ScV16ScIUiV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insve_d
.param_str = "V2SLLiV2SLLiIUiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insve_h
.param_str = "V8SsV8SsIUiV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_insve_w
.param_str = "V4SiV4SiIUiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ld_b
.param_str = "V16Scv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ld_d
.param_str = "V2SLLiv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ld_h
.param_str = "V8Ssv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ld_w
.param_str = "V4Siv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ldi_b
.param_str = "V16cIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ldi_d
.param_str = "V2LLiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ldi_h
.param_str = "V8sIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ldi_w
.param_str = "V4iIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ldr_d
.param_str = "V2SLLiv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ldr_w
.param_str = "V4Siv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_madd_q_h
.param_str = "V8SsV8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_madd_q_w
.param_str = "V4SiV4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maddr_q_h
.param_str = "V8SsV8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maddr_q_w
.param_str = "V4SiV4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maddv_b
.param_str = "V16ScV16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maddv_d
.param_str = "V2SLLiV2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maddv_h
.param_str = "V8SsV8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maddv_w
.param_str = "V4SiV4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_a_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_a_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_a_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_a_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_max_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_s_b
.param_str = "V16ScV16ScIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_s_d
.param_str = "V2SLLiV2SLLiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_s_h
.param_str = "V8SsV8SsIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_s_w
.param_str = "V4SiV4SiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_u_b
.param_str = "V16UcV16UcIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_u_d
.param_str = "V2ULLiV2ULLiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_u_h
.param_str = "V8UsV8UsIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_maxi_u_w
.param_str = "V4UiV4UiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_a_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_a_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_a_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_a_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_min_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_s_b
.param_str = "V16ScV16ScIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_s_d
.param_str = "V2SLLiV2SLLiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_s_h
.param_str = "V8SsV8SsIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_s_w
.param_str = "V4SiV4SiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_u_b
.param_str = "V16UcV16UcIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_u_d
.param_str = "V2ULLiV2ULLiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_u_h
.param_str = "V8UsV8UsIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mini_u_w
.param_str = "V4UiV4UiIi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mod_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_move_v
.param_str = "V16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msub_q_h
.param_str = "V8SsV8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msub_q_w
.param_str = "V4SiV4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msubr_q_h
.param_str = "V8SsV8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msubr_q_w
.param_str = "V4SiV4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msubv_b
.param_str = "V16ScV16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msubv_d
.param_str = "V2SLLiV2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msubv_h
.param_str = "V8SsV8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_msubv_w
.param_str = "V4SiV4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mul_q_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mul_q_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mulr_q_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mulr_q_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mulv_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mulv_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mulv_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_mulv_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nloc_b
.param_str = "V16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nloc_d
.param_str = "V2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nloc_h
.param_str = "V8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nloc_w
.param_str = "V4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nlzc_b
.param_str = "V16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nlzc_d
.param_str = "V2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nlzc_h
.param_str = "V8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nlzc_w
.param_str = "V4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nor_v
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_nori_b
.param_str = "V16UcV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_or_v
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_ori_b
.param_str = "V16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckev_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckev_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckev_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckev_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckod_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckod_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckod_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pckod_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pcnt_b
.param_str = "V16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pcnt_d
.param_str = "V2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pcnt_h
.param_str = "V8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_pcnt_w
.param_str = "V4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_s_b
.param_str = "V16ScV16ScIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_s_d
.param_str = "V2SLLiV2SLLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_s_h
.param_str = "V8SsV8SsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_s_w
.param_str = "V4SiV4SiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_u_b
.param_str = "V16UcV16UcIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_u_d
.param_str = "V2ULLiV2ULLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_u_h
.param_str = "V8UsV8UsIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sat_u_w
.param_str = "V4UiV4UiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_shf_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_shf_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_shf_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sld_b
.param_str = "V16cV16cV16cUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sld_d
.param_str = "V2LLiV2LLiV2LLiUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sld_h
.param_str = "V8sV8sV8sUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sld_w
.param_str = "V4iV4iV4iUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sldi_b
.param_str = "V16cV16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sldi_d
.param_str = "V2LLiV2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sldi_h
.param_str = "V8sV8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sldi_w
.param_str = "V4iV4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sll_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sll_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sll_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sll_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_slli_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_slli_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_slli_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_slli_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splat_b
.param_str = "V16cV16cUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splat_d
.param_str = "V2LLiV2LLiUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splat_h
.param_str = "V8sV8sUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splat_w
.param_str = "V4iV4iUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splati_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splati_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splati_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_splati_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sra_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sra_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sra_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_sra_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srai_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srai_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srai_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srai_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srar_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srar_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srar_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srar_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srari_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srari_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srari_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srari_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srl_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srl_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srl_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srl_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srli_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srli_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srli_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srli_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlr_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlr_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlr_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlr_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlri_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlri_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlri_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_srlri_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_st_b
.param_str = "vV16Scv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_st_d
.param_str = "vV2SLLiv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_st_h
.param_str = "vV8Ssv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_st_w
.param_str = "vV4Siv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_str_d
.param_str = "vV2SLLiv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_str_w
.param_str = "vV4Siv*Ii"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_s_b
.param_str = "V16ScV16ScV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_s_d
.param_str = "V2SLLiV2SLLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_s_h
.param_str = "V8SsV8SsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_s_w
.param_str = "V4SiV4SiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_u_b
.param_str = "V16UcV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_u_d
.param_str = "V2ULLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_u_h
.param_str = "V8UsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subs_u_w
.param_str = "V4UiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsus_u_b
.param_str = "V16UcV16UcV16Sc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsus_u_d
.param_str = "V2ULLiV2ULLiV2SLLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsus_u_h
.param_str = "V8UsV8UsV8Ss"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsus_u_w
.param_str = "V4UiV4UiV4Si"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsuu_s_b
.param_str = "V16ScV16UcV16Uc"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsuu_s_d
.param_str = "V2SLLiV2ULLiV2ULLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsuu_s_h
.param_str = "V8SsV8UsV8Us"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subsuu_s_w
.param_str = "V4SiV4UiV4Ui"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subv_b
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subv_d
.param_str = "V2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subv_h
.param_str = "V8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subv_w
.param_str = "V4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subvi_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subvi_d
.param_str = "V2LLiV2LLiIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subvi_h
.param_str = "V8sV8sIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_subvi_w
.param_str = "V4iV4iIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_vshf_b
.param_str = "V16cV16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_vshf_d
.param_str = "V2LLiV2LLiV2LLiV2LLi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_vshf_h
.param_str = "V8sV8sV8sV8s"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_vshf_w
.param_str = "V4iV4iV4iV4i"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_xor_v
.param_str = "V16cV16cV16c"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_msa_xori_b
.param_str = "V16cV16cIUi"
.target_set = TargetSet.initOne(.mips)
.attributes = .{ .@"const" = true }
__builtin_mul_overflow
.param_str = "b."
.attributes = .{ .custom_typecheck = true, .const_evaluable = true }
__builtin_nan
.param_str = "dcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nanf
.param_str = "fcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nanf128
.param_str = "LLdcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nanf16
.param_str = "xcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nanl
.param_str = "LdcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nans
.param_str = "dcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nansf
.param_str = "fcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nansf128
.param_str = "LLdcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nansf16
.param_str = "xcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nansl
.param_str = "LdcC*"
.attributes = .{ .pure = true, .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_nearbyint
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_nearbyintf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_nearbyintf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_nearbyintl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_nextafter
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nextafterf
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nextafterf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nextafterl
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nexttoward
.param_str = "ddLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nexttowardf
.param_str = "ffLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nexttowardf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nexttowardl
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_nondeterministic_value
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_nontemporal_load
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_nontemporal_store
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_objc_memmove_collectable
.param_str = "v*v*vC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_object_size
.param_str = "zvC*i"
.attributes = .{ .eval_args = false, .const_evaluable = true }
__builtin_operator_delete
.param_str = "vv*"
.attributes = .{ .custom_typecheck = true, .const_evaluable = true }
__builtin_operator_new
.param_str = "v*z"
.attributes = .{ .@"const" = true, .custom_typecheck = true, .const_evaluable = true }
__builtin_os_log_format
.param_str = "v*v*cC*."
.attributes = .{ .custom_typecheck = true, .format_kind = .printf }
__builtin_os_log_format_buffer_size
.param_str = "zcC*."
.attributes = .{ .custom_typecheck = true, .format_kind = .printf, .eval_args = false, .const_evaluable = true }
__builtin_pack_longdouble
.param_str = "Lddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_parity
.param_str = "iUi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_parityl
.param_str = "iULi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_parityll
.param_str = "iULLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_popcount
.param_str = "iUi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_popcountl
.param_str = "iULi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_popcountll
.param_str = "iULLi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_pow
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_powf
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_powf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_powf16
.param_str = "hhh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_powi
.param_str = "ddi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_powif
.param_str = "ffi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_powil
.param_str = "LdLdi"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_powl
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_ppc_alignx
.param_str = "vIivC*"
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .@"const" = true }
__builtin_ppc_cmpb
.param_str = "LLiLLiLLi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_compare_and_swap
.param_str = "iiD*i*i"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_compare_and_swaplp
.param_str = "iLiD*Li*Li"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbfl
.param_str = "vvC*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbflp
.param_str = "vvC*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbst
.param_str = "vvC*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbt
.param_str = "vv*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbtst
.param_str = "vv*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbtstt
.param_str = "vv*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbtt
.param_str = "vv*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_dcbz
.param_str = "vv*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_eieio
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fcfid
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fcfud
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fctid
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fctidz
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fctiw
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fctiwz
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fctudz
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fctuwz
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_add
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_addlp
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_and
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_andlp
.param_str = "ULiULiD*ULi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_or
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_orlp
.param_str = "ULiULiD*ULi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_swap
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fetch_and_swaplp
.param_str = "ULiULiD*ULi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fmsub
.param_str = "dddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fmsubs
.param_str = "ffff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fnabs
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fnabss
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fnmadd
.param_str = "dddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fnmadds
.param_str = "ffff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fnmsub
.param_str = "dddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fnmsubs
.param_str = "ffff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fre
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fres
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fric
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frim
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frims
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frin
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frins
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frip
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frips
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_friz
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frizs
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frsqrte
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_frsqrtes
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fsel
.param_str = "dddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fsels
.param_str = "ffff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fsqrt
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_fsqrts
.param_str = "ff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_get_timebase
.param_str = "ULLi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_iospace_eieio
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_iospace_lwsync
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_iospace_sync
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_isync
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_ldarx
.param_str = "LiLiD*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_load2r
.param_str = "UsUs*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_load4r
.param_str = "UiUi*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_lwarx
.param_str = "iiD*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_lwsync
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_maxfe
.param_str = "LdLdLdLd."
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .custom_typecheck = true }
__builtin_ppc_maxfl
.param_str = "dddd."
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .custom_typecheck = true }
__builtin_ppc_maxfs
.param_str = "ffff."
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .custom_typecheck = true }
__builtin_ppc_mfmsr
.param_str = "Ui"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mfspr
.param_str = "ULiIi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mftbu
.param_str = "Ui"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_minfe
.param_str = "LdLdLdLd."
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .custom_typecheck = true }
__builtin_ppc_minfl
.param_str = "dddd."
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .custom_typecheck = true }
__builtin_ppc_minfs
.param_str = "ffff."
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .custom_typecheck = true }
__builtin_ppc_mtfsb0
.param_str = "vUIi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mtfsb1
.param_str = "vUIi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mtfsf
.param_str = "vUIiUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mtfsfi
.param_str = "vUIiUIi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mtmsr
.param_str = "vUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mtspr
.param_str = "vIiULi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mulhd
.param_str = "LLiLiLi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mulhdu
.param_str = "ULLiULiULi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mulhw
.param_str = "iii"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_mulhwu
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_popcntb
.param_str = "ULiULi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_poppar4
.param_str = "iUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_poppar8
.param_str = "iULLi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_rdlam
.param_str = "UWiUWiUWiUWIi"
.target_set = TargetSet.initOne(.ppc)
.attributes = .{ .@"const" = true }
__builtin_ppc_recipdivd
.param_str = "V2dV2dV2d"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_recipdivf
.param_str = "V4fV4fV4f"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_rldimi
.param_str = "ULLiULLiULLiIUiIULLi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_rlwimi
.param_str = "UiUiUiIUiIUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_rlwnm
.param_str = "UiUiUiIUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_rsqrtd
.param_str = "V2dV2d"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_rsqrtf
.param_str = "V4fV4f"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_stdcx
.param_str = "iLiD*Li"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_stfiw
.param_str = "viC*d"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_store2r
.param_str = "vUiUs*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_store4r
.param_str = "vUiUi*"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_stwcx
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_swdiv
.param_str = "ddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_swdiv_nochk
.param_str = "ddd"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_swdivs
.param_str = "fff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_swdivs_nochk
.param_str = "fff"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_sync
.param_str = "v"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_tdw
.param_str = "vLLiLLiIUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_trap
.param_str = "vi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_trapd
.param_str = "vLi"
.target_set = TargetSet.initOne(.ppc)
__builtin_ppc_tw
.param_str = "viiIUi"
.target_set = TargetSet.initOne(.ppc)
__builtin_prefetch
.param_str = "vvC*."
.attributes = .{ .@"const" = true }
__builtin_preserve_access_index
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__builtin_printf
.param_str = "icC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf }
__builtin_ptx_get_image_channel_data_typei_
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_get_image_channel_orderi_
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_get_image_depthi_
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_get_image_heighti_
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_get_image_widthi_
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image2Dff_
.param_str = "V4fiiff"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image2Dfi_
.param_str = "V4fiiii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image2Dif_
.param_str = "V4iiiff"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image2Dii_
.param_str = "V4iiiii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image3Dff_
.param_str = "V4fiiffff"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image3Dfi_
.param_str = "V4fiiiiii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image3Dif_
.param_str = "V4iiiffff"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_read_image3Dii_
.param_str = "V4iiiiiii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_write_image2Df_
.param_str = "viiiffff"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_write_image2Di_
.param_str = "viiiiiii"
.target_set = TargetSet.initOne(.nvptx)
__builtin_ptx_write_image2Dui_
.param_str = "viiiUiUiUiUi"
.target_set = TargetSet.initOne(.nvptx)
__builtin_r600_implicitarg_ptr
.param_str = "Uc*7"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_read_tgid_x
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_read_tgid_y
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_read_tgid_z
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_read_tidig_x
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_read_tidig_y
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_read_tidig_z
.param_str = "Ui"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_recipsqrt_ieee
.param_str = "dd"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_r600_recipsqrt_ieeef
.param_str = "ff"
.target_set = TargetSet.initOne(.amdgpu)
.attributes = .{ .@"const" = true }
__builtin_readcyclecounter
.param_str = "ULLi"
__builtin_readflm
.param_str = "d"
.target_set = TargetSet.initOne(.ppc)
__builtin_realloc
.param_str = "v*v*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_reduce_add
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_reduce_and
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_reduce_max
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_reduce_min
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_reduce_mul
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_reduce_or
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_reduce_xor
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_remainder
.param_str = "ddd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_remainderf
.param_str = "fff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_remainderf128
.param_str = "LLdLLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_remainderl
.param_str = "LdLdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_remquo
.param_str = "dddi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_remquof
.param_str = "fffi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_remquof128
.param_str = "LLdLLdLLdi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_remquol
.param_str = "LdLdLdi*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_return_address
.param_str = "v*IUi"
__builtin_rindex
.param_str = "c*cC*i"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_rint
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_rintf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_rintf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_rintf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_rintl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_rotateleft16
.param_str = "UsUsUs"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateleft32
.param_str = "UZiUZiUZi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateleft64
.param_str = "UWiUWiUWi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateleft8
.param_str = "UcUcUc"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateright16
.param_str = "UsUsUs"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateright32
.param_str = "UZiUZiUZi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateright64
.param_str = "UWiUWiUWi"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_rotateright8
.param_str = "UcUcUc"
.attributes = .{ .@"const" = true, .const_evaluable = true }
__builtin_round
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundeven
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundevenf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundevenf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundevenf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundevenl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_roundl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_sadd_overflow
.param_str = "bSiCSiCSi*"
.attributes = .{ .const_evaluable = true }
__builtin_saddl_overflow
.param_str = "bSLiCSLiCSLi*"
.attributes = .{ .const_evaluable = true }
__builtin_saddll_overflow
.param_str = "bSLLiCSLLiCSLLi*"
.attributes = .{ .const_evaluable = true }
__builtin_scalbln
.param_str = "ddLi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalblnf
.param_str = "ffLi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalblnf128
.param_str = "LLdLLdLi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalblnl
.param_str = "LdLdLi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalbn
.param_str = "ddi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalbnf
.param_str = "ffi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalbnf128
.param_str = "LLdLLdi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scalbnl
.param_str = "LdLdi"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_scanf
.param_str = "icC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .scanf }
__builtin_set_flt_rounds
.param_str = "vi"
__builtin_setflm
.param_str = "dd"
.target_set = TargetSet.initOne(.ppc)
__builtin_setjmp
.param_str = "iv**"
.attributes = .{ .returns_twice = true }
__builtin_setps
.param_str = "vUiUi"
.target_set = TargetSet.initOne(.xcore)
__builtin_setrnd
.param_str = "di"
.target_set = TargetSet.initOne(.ppc)
__builtin_shufflevector
.param_str = "v."
.attributes = .{ .@"const" = true, .custom_typecheck = true }
__builtin_signbit
.param_str = "i."
.attributes = .{ .@"const" = true, .custom_typecheck = true, .lib_function_with_builtin_prefix = true }
__builtin_signbitf
.param_str = "if"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_signbitl
.param_str = "iLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_sin
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinf16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinh
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinhf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinhf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinhl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sinl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_smul_overflow
.param_str = "bSiCSiCSi*"
.attributes = .{ .const_evaluable = true }
__builtin_smull_overflow
.param_str = "bSLiCSLiCSLi*"
.attributes = .{ .const_evaluable = true }
__builtin_smulll_overflow
.param_str = "bSLLiCSLLiCSLLi*"
.attributes = .{ .const_evaluable = true }
__builtin_snprintf
.param_str = "ic*RzcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 2 }
__builtin_sponentry
.param_str = "v*"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__builtin_sprintf
.param_str = "ic*RcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .printf, .format_string_position = 1 }
__builtin_sqrt
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sqrtf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sqrtf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sqrtf16
.param_str = "hh"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sqrtl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_sscanf
.param_str = "icC*RcC*R."
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .scanf, .format_string_position = 1 }
__builtin_ssub_overflow
.param_str = "bSiCSiCSi*"
.attributes = .{ .const_evaluable = true }
__builtin_ssubl_overflow
.param_str = "bSLiCSLiCSLi*"
.attributes = .{ .const_evaluable = true }
__builtin_ssubll_overflow
.param_str = "bSLLiCSLLiCSLLi*"
.attributes = .{ .const_evaluable = true }
__builtin_stdarg_start
.param_str = "vA."
.attributes = .{ .custom_typecheck = true }
__builtin_stpcpy
.param_str = "c*c*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_stpncpy
.param_str = "c*c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strcasecmp
.param_str = "icC*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strcat
.param_str = "c*c*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strchr
.param_str = "c*cC*i"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_strcmp
.param_str = "icC*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_strcpy
.param_str = "c*c*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strcspn
.param_str = "zcC*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strdup
.param_str = "c*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strlen
.param_str = "zcC*"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_strncasecmp
.param_str = "icC*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strncat
.param_str = "c*c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strncmp
.param_str = "icC*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_strncpy
.param_str = "c*c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strndup
.param_str = "c*cC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strpbrk
.param_str = "c*cC*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strrchr
.param_str = "c*cC*i"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strspn
.param_str = "zcC*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_strstr
.param_str = "c*cC*cC*"
.attributes = .{ .lib_function_with_builtin_prefix = true }
__builtin_sub_overflow
.param_str = "b."
.attributes = .{ .custom_typecheck = true, .const_evaluable = true }
__builtin_subc
.param_str = "UiUiCUiCUiCUi*"
__builtin_subcb
.param_str = "UcUcCUcCUcCUc*"
__builtin_subcl
.param_str = "ULiULiCULiCULiCULi*"
__builtin_subcll
.param_str = "ULLiULLiCULLiCULLiCULLi*"
__builtin_subcs
.param_str = "UsUsCUsCUsCUs*"
__builtin_tan
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanh
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanhf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanhf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanhl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tanl
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tgamma
.param_str = "dd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tgammaf
.param_str = "ff"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tgammaf128
.param_str = "LLdLLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_tgammal
.param_str = "LdLd"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_without_errno_and_fp_exceptions = true }
__builtin_thread_pointer
.param_str = "v*"
.attributes = .{ .@"const" = true }
__builtin_trap
.param_str = "v"
.attributes = .{ .noreturn = true }
__builtin_trunc
.param_str = "dd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_truncf
.param_str = "ff"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_truncf128
.param_str = "LLdLLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_truncf16
.param_str = "hh"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_truncl
.param_str = "LdLd"
.attributes = .{ .@"const" = true, .lib_function_with_builtin_prefix = true }
__builtin_uadd_overflow
.param_str = "bUiCUiCUi*"
.attributes = .{ .const_evaluable = true }
__builtin_uaddl_overflow
.param_str = "bULiCULiCULi*"
.attributes = .{ .const_evaluable = true }
__builtin_uaddll_overflow
.param_str = "bULLiCULLiCULLi*"
.attributes = .{ .const_evaluable = true }
__builtin_umul_overflow
.param_str = "bUiCUiCUi*"
.attributes = .{ .const_evaluable = true }
__builtin_umull_overflow
.param_str = "bULiCULiCULi*"
.attributes = .{ .const_evaluable = true }
__builtin_umulll_overflow
.param_str = "bULLiCULLiCULLi*"
.attributes = .{ .const_evaluable = true }
__builtin_unpack_longdouble
.param_str = "dLdIi"
.target_set = TargetSet.initOne(.ppc)
__builtin_unpredictable
.param_str = "LiLi"
.attributes = .{ .@"const" = true }
__builtin_unreachable
.param_str = "v"
.attributes = .{ .noreturn = true }
__builtin_unwind_init
.param_str = "v"
__builtin_usub_overflow
.param_str = "bUiCUiCUi*"
.attributes = .{ .const_evaluable = true }
__builtin_usubl_overflow
.param_str = "bULiCULiCULi*"
.attributes = .{ .const_evaluable = true }
__builtin_usubll_overflow
.param_str = "bULLiCULLiCULLi*"
.attributes = .{ .const_evaluable = true }
__builtin_va_copy
.param_str = "vAA"
__builtin_va_end
.param_str = "vA"
__builtin_va_start
.param_str = "vA."
.attributes = .{ .custom_typecheck = true }
__builtin_ve_vl_andm_MMM
.param_str = "V512bV512bV512b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_andm_mmm
.param_str = "V256bV256bV256b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_eqvm_MMM
.param_str = "V512bV512bV512b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_eqvm_mmm
.param_str = "V256bV256bV256b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_extract_vm512l
.param_str = "V256bV512b"
.target_set = TargetSet.initOne(.ve)
__builtin_ve_vl_extract_vm512u
.param_str = "V256bV512b"
.target_set = TargetSet.initOne(.ve)
__builtin_ve_vl_fencec_s
.param_str = "vUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_fencei
.param_str = "v"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_fencem_s
.param_str = "vUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_fidcr_sss
.param_str = "LUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_insert_vm512l
.param_str = "V512bV512bV256b"
.target_set = TargetSet.initOne(.ve)
__builtin_ve_vl_insert_vm512u
.param_str = "V512bV512bV256b"
.target_set = TargetSet.initOne(.ve)
__builtin_ve_vl_lcr_sss
.param_str = "LUiLUiLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lsv_vvss
.param_str = "V256dV256dUiLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lvm_MMss
.param_str = "V512bV512bLUiLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lvm_mmss
.param_str = "V256bV256bLUiLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lvsd_svs
.param_str = "dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lvsl_svs
.param_str = "LUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lvss_svs
.param_str = "fV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_lzvm_sml
.param_str = "LUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_negm_MM
.param_str = "V512bV512b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_negm_mm
.param_str = "V256bV256b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_nndm_MMM
.param_str = "V512bV512bV512b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_nndm_mmm
.param_str = "V256bV256bV256b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_orm_MMM
.param_str = "V512bV512bV512b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_orm_mmm
.param_str = "V256bV256bV256b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pack_f32a
.param_str = "ULifC*"
.target_set = TargetSet.initOne(.ve)
__builtin_ve_vl_pack_f32p
.param_str = "ULifC*fC*"
.target_set = TargetSet.initOne(.ve)
__builtin_ve_vl_pcvm_sml
.param_str = "LUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pfchv_ssl
.param_str = "vLivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pfchvnc_ssl
.param_str = "vLivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvadds_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvadds_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvadds_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvadds_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvadds_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvadds_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvaddu_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvaddu_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvaddu_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvaddu_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvaddu_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvaddu_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvand_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvand_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvand_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvand_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvand_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvand_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrd_vsMvl
.param_str = "V256dLUiV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrd_vsl
.param_str = "V256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrd_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrv_vvMvl
.param_str = "V256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrv_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrv_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrvlo_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrvlo_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrvlo_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrvup_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrvup_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvbrvup_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmps_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmps_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmps_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmps_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmps_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmps_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmpu_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmpu_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmpu_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmpu_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmpu_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcmpu_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtsw_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtsw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtws_vvMvl
.param_str = "V256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtws_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtws_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtwsrz_vvMvl
.param_str = "V256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtwsrz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvcvtwsrz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pveqv_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pveqv_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pveqv_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pveqv_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pveqv_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pveqv_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfadd_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfadd_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfadd_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfadd_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfadd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfadd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfcmp_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfcmp_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfcmp_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfcmp_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfcmp_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfcmp_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vsvvMvl
.param_str = "V256dLUiV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vsvvvl
.param_str = "V256dLUiV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vvsvMvl
.param_str = "V256dV256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vvsvvl
.param_str = "V256dV256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vvvvMvl
.param_str = "V256dV256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmad_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmax_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmax_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmax_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmax_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmax_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmax_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmin_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmin_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmin_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmin_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmin_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmin_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkaf_Ml
.param_str = "V512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkat_Ml
.param_str = "V512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkseq_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkseq_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkseqnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkseqnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksge_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksge_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksgenan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksgenan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksgt_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksgt_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksgtnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksgtnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksle_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksle_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslenan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslenan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloeq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloeq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloeqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloeqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslogenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslogenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslogt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslogt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslogtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslogtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslole_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslole_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslolenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslolenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslolt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslolt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksloltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslonan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslonan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslone_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslone_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslonenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslonenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslonum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslonum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslt_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkslt_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksltnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksltnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksne_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksne_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksnenan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksnenan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksnum_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksnum_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupeq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupeq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupeqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupeqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupgenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupgenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupgt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupgt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupgtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupgtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksuple_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksuple_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksuplenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksuplenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksuplt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksuplt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupne_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupne_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupnenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupnenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupnum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmksupnum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkweq_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkweq_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkweqnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkweqnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwge_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwge_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwgenan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwgenan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwgt_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwgt_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwgtnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwgtnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwle_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwle_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlenan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlenan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloeq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloeq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloeqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloeqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlogenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlogenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlogt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlogt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlogtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlogtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlole_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlole_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlolenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlolenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlolt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlolt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwloltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlonan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlonan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlone_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlone_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlonenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlonenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlonum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlonum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlt_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwlt_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwltnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwltnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwnan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwnan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwne_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwne_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwnenan_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwnenan_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwnum_MvMl
.param_str = "V512bV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwnum_Mvl
.param_str = "V512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupeq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupeq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupeqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupeqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupgenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupgenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupgt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupgt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupgtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupgtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwuple_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwuple_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwuplenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwuplenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwuplt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwuplt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupne_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupne_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupnenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupnenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupnum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmkwupnum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vsvvMvl
.param_str = "V256dLUiV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vsvvvl
.param_str = "V256dLUiV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vvsvMvl
.param_str = "V256dV256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vvsvvl
.param_str = "V256dV256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vvvvMvl
.param_str = "V256dV256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmsb_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmul_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmul_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmul_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmul_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmul_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfmul_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vsvvMvl
.param_str = "V256dLUiV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vsvvvl
.param_str = "V256dLUiV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vvsvMvl
.param_str = "V256dV256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vvsvvl
.param_str = "V256dV256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vvvvMvl
.param_str = "V256dV256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmad_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vsvvMvl
.param_str = "V256dLUiV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vsvvvl
.param_str = "V256dLUiV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vvsvMvl
.param_str = "V256dV256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vvsvvl
.param_str = "V256dV256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vvvvMvl
.param_str = "V256dV256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfnmsb_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfsub_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfsub_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfsub_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfsub_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfsub_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvfsub_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldz_vvMvl
.param_str = "V256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldzlo_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldzlo_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldzlo_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldzup_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldzup_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvldzup_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmaxs_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmaxs_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmaxs_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmaxs_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmaxs_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmaxs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmins_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmins_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmins_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmins_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmins_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvmins_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvor_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvor_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvor_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvor_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvor_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvor_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcnt_vvMvl
.param_str = "V256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcnt_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcnt_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcntlo_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcntlo_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcntlo_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcntup_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcntup_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvpcntup_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvrcp_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvrcp_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvrsqrt_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvrsqrt_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvrsqrtnex_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvrsqrtnex_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvseq_vl
.param_str = "V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvseq_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvseqlo_vl
.param_str = "V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvseqlo_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsequp_vl
.param_str = "V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsequp_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsla_vvsMvl
.param_str = "V256dV256dLUiV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsla_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsla_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsla_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsla_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsla_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsll_vvsMvl
.param_str = "V256dV256dLUiV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsll_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsll_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsll_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsll_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsll_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsra_vvsMvl
.param_str = "V256dV256dLUiV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsra_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsra_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsra_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsra_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsra_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsrl_vvsMvl
.param_str = "V256dV256dLUiV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsrl_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsrl_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsrl_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsrl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsrl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubs_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubs_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubs_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubs_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubs_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubu_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubu_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubu_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubu_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubu_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvsubu_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvxor_vsvMvl
.param_str = "V256dLUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvxor_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvxor_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvxor_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvxor_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_pvxor_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_scr_sss
.param_str = "vLUiLUiLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_svm_sMs
.param_str = "LUiV512bLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_svm_sms
.param_str = "LUiV256bLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_svob
.param_str = "v"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_tovm_sml
.param_str = "LUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_tscr_ssss
.param_str = "LUiLUiLUiLUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddul_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddul_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddul_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddul_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddul_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vaddul_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vadduw_vsvl
.param_str = "V256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vadduw_vsvmvl
.param_str = "V256dUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vadduw_vsvvl
.param_str = "V256dUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vadduw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vadduw_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vadduw_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vand_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vand_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vand_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vand_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vand_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vand_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdd_vsl
.param_str = "V256ddUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdd_vsmvl
.param_str = "V256ddV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdd_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdl_vsl
.param_str = "V256dLiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdl_vsmvl
.param_str = "V256dLiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrds_vsl
.param_str = "V256dfUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrds_vsmvl
.param_str = "V256dfV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrds_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdw_vsl
.param_str = "V256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdw_vsmvl
.param_str = "V256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrdw_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrv_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrv_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vbrv_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpul_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpul_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpul_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpul_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpul_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpul_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpuw_vsvl
.param_str = "V256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpuw_vsvmvl
.param_str = "V256dUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpuw_vsvvl
.param_str = "V256dUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpuw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpuw_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcmpuw_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcp_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtdl_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtdl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtds_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtds_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtdw_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtdw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtld_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtld_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtld_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtldrz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtldrz_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtldrz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtsd_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtsd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtsw_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtsw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdsx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdsx_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdsxrz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdsxrz_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdsxrz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdzx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdzx_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdzxrz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdzxrz_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwdzxrz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwssx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwssx_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwssx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwssxrz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwssxrz_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwssxrz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwszx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwszx_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwszx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwszxrz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwszxrz_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vcvtwszxrz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vvsl
.param_str = "V256dV256dLiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vvsmvl
.param_str = "V256dV256dLiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vvsvl
.param_str = "V256dV256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vvsl
.param_str = "V256dV256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vvsmvl
.param_str = "V256dV256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vvsvl
.param_str = "V256dV256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vvsl
.param_str = "V256dV256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vvsmvl
.param_str = "V256dV256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vvsvl
.param_str = "V256dV256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vvsmvl
.param_str = "V256dV256dLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivul_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vsvl
.param_str = "V256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vsvmvl
.param_str = "V256dUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vsvvl
.param_str = "V256dUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vvsl
.param_str = "V256dV256dUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vvsmvl
.param_str = "V256dV256dUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vvsvl
.param_str = "V256dV256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vdivuw_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_veqv_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_veqv_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_veqv_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_veqv_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_veqv_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_veqv_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vex_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfaddd_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfaddd_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfaddd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfaddd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfaddd_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfaddd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfadds_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfadds_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfadds_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfadds_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfadds_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfadds_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmpd_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmpd_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmpd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmpd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmpd_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmpd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmps_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmps_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmps_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmps_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmps_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfcmps_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivd_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivd_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivd_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivs_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivs_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivs_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivs_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivs_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfdivs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vsvvmvl
.param_str = "V256ddV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vsvvvl
.param_str = "V256ddV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vvsvl
.param_str = "V256dV256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vvsvmvl
.param_str = "V256dV256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vvsvvl
.param_str = "V256dV256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmadd_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vsvvmvl
.param_str = "V256dfV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vsvvvl
.param_str = "V256dfV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vvsvl
.param_str = "V256dV256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vvsvmvl
.param_str = "V256dV256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vvsvvl
.param_str = "V256dV256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmads_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxd_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxd_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxd_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxs_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxs_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxs_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxs_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxs_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmaxs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmind_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmind_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmind_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmind_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmind_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmind_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmins_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmins_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmins_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmins_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmins_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmins_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdeq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdeq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdeqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdeqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdgenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdgenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdgt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdgt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdgtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdgtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdle_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdle_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdlenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdlenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdlt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdlt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdne_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdne_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdnenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdnenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdnum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkdnum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklaf_ml
.param_str = "V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklat_ml
.param_str = "V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkleq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkleq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkleqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkleqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklgenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklgenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklgt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklgt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklgtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklgtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklle_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklle_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkllenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkllenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkllt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkllt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklne_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklne_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklnenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklnenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklnum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmklnum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkseq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkseq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkseqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkseqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksgenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksgenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksgt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksgt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksgtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksgtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksle_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksle_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkslenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkslenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkslt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkslt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksne_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksne_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksnenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksnenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksnum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmksnum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkweq_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkweq_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkweqnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkweqnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwge_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwge_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwgenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwgenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwgt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwgt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwgtnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwgtnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwle_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwle_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwlenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwlenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwlt_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwlt_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwltnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwltnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwnan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwnan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwne_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwne_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwnenan_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwnenan_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwnum_mvl
.param_str = "V256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmkwnum_mvml
.param_str = "V256bV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vsvvmvl
.param_str = "V256ddV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vsvvvl
.param_str = "V256ddV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vvsvl
.param_str = "V256dV256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vvsvmvl
.param_str = "V256dV256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vvsvvl
.param_str = "V256dV256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbd_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vsvvmvl
.param_str = "V256dfV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vsvvvl
.param_str = "V256dfV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vvsvl
.param_str = "V256dV256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vvsvmvl
.param_str = "V256dV256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vvsvvl
.param_str = "V256dV256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmsbs_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuld_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuld_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuld_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuld_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuld_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuld_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuls_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuls_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuls_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuls_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuls_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfmuls_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vsvvmvl
.param_str = "V256ddV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vsvvvl
.param_str = "V256ddV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vvsvl
.param_str = "V256dV256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vvsvmvl
.param_str = "V256dV256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vvsvvl
.param_str = "V256dV256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmadd_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vsvvmvl
.param_str = "V256dfV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vsvvvl
.param_str = "V256dfV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vvsvl
.param_str = "V256dV256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vvsvmvl
.param_str = "V256dV256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vvsvvl
.param_str = "V256dV256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmads_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vsvvmvl
.param_str = "V256ddV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vsvvvl
.param_str = "V256ddV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vvsvl
.param_str = "V256dV256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vvsvmvl
.param_str = "V256dV256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vvsvvl
.param_str = "V256dV256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbd_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vsvvmvl
.param_str = "V256dfV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vsvvvl
.param_str = "V256dfV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vvsvl
.param_str = "V256dV256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vvsvmvl
.param_str = "V256dV256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vvsvvl
.param_str = "V256dV256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vvvvmvl
.param_str = "V256dV256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfnmsbs_vvvvvl
.param_str = "V256dV256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxdfst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxdfst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxdlst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxdlst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxsfst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxsfst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxslst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmaxslst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmindfst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmindfst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmindlst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrmindlst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrminsfst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrminsfst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrminslst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfrminslst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsqrtd_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsqrtd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsqrts_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsqrts_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubd_vsvl
.param_str = "V256ddV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubd_vsvmvl
.param_str = "V256ddV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubd_vsvvl
.param_str = "V256ddV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubd_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubd_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubs_vsvl
.param_str = "V256dfV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubs_vsvmvl
.param_str = "V256dfV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubs_vsvvl
.param_str = "V256dfV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubs_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubs_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsubs_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsumd_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsumd_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsums_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vfsums_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgt_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgt_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgt_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgt_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsx_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsx_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsx_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsx_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsxnc_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsxnc_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsxnc_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlsxnc_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzx_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzx_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzx_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzx_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzxnc_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzxnc_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzxnc_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtlzxnc_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtnc_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtnc_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtnc_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtnc_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtu_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtu_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtu_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtu_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtunc_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtunc_vvssml
.param_str = "V256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtunc_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vgtunc_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vld2d_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vld2d_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vld2dnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vld2dnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vld_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vld_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dsx_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dsx_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dsxnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dsxnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dzx_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dzx_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dzxnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldl2dzxnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlsx_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlsx_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlsxnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlsxnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlzx_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlzx_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlzxnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldlzxnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldu2d_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldu2d_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldu2dnc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldu2dnc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldu_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldu_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldunc_vssl
.param_str = "V256dLUivC*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldunc_vssvl
.param_str = "V256dLUivC*V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldz_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldz_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vldz_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmaxswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vminswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrg_vsvml
.param_str = "V256dLUiV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrg_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrg_vvvml
.param_str = "V256dV256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrg_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrgw_vsvMl
.param_str = "V256dUiV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrgw_vsvMvl
.param_str = "V256dUiV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrgw_vvvMl
.param_str = "V256dV256dV256dV512bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmrgw_vvvMvl
.param_str = "V256dV256dV256dV512bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulslw_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulslw_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulslw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulslw_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulul_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulul_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulul_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulul_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulul_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmulul_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmuluw_vsvl
.param_str = "V256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmuluw_vsvmvl
.param_str = "V256dUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmuluw_vsvvl
.param_str = "V256dUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmuluw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmuluw_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmuluw_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmv_vsvl
.param_str = "V256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmv_vsvmvl
.param_str = "V256dUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vmv_vsvvl
.param_str = "V256dUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vor_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vor_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vor_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vor_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vor_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vor_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vpcnt_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vpcnt_vvmvl
.param_str = "V256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vpcnt_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrand_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrand_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrcpd_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrcpd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrcps_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrcps_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxslfst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxslfst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxsllst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxsllst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswfstsx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswfstsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswfstzx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswfstzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswlstsx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswlstsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswlstzx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrmaxswlstzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminslfst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminslfst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminsllst_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminsllst_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswfstsx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswfstsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswfstzx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswfstzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswlstsx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswlstsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswlstzx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrminswlstzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vror_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vror_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrtd_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrtd_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrtdnex_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrtdnex_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrts_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrts_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrtsnex_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrsqrtsnex_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrxor_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vrxor_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsc_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsc_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscl_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscl_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsclnc_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsclnc_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsclncot_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsclncot_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsclot_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsclot_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscnc_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscnc_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscncot_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscncot_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscot_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscot_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscu_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscu_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscunc_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscunc_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscuncot_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscuncot_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscuot_vvssl
.param_str = "vV256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vscuot_vvssml
.param_str = "vV256dV256dLUiLUiV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vseq_vl
.param_str = "V256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vseq_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsfa_vvssl
.param_str = "V256dV256dLUiLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsfa_vvssmvl
.param_str = "V256dV256dLUiLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsfa_vvssvl
.param_str = "V256dV256dLUiLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vshf_vvvsl
.param_str = "V256dV256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vshf_vvvsvl
.param_str = "V256dV256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslal_vvsl
.param_str = "V256dV256dLiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslal_vvsmvl
.param_str = "V256dV256dLiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslal_vvsvl
.param_str = "V256dV256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslal_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslal_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslal_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawsx_vvsl
.param_str = "V256dV256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawsx_vvsmvl
.param_str = "V256dV256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawsx_vvsvl
.param_str = "V256dV256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawzx_vvsl
.param_str = "V256dV256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawzx_vvsmvl
.param_str = "V256dV256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawzx_vvsvl
.param_str = "V256dV256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vslawzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsll_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsll_vvsmvl
.param_str = "V256dV256dLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsll_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsll_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsll_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsll_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsral_vvsl
.param_str = "V256dV256dLiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsral_vvsmvl
.param_str = "V256dV256dLiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsral_vvsvl
.param_str = "V256dV256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsral_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsral_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsral_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawsx_vvsl
.param_str = "V256dV256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawsx_vvsmvl
.param_str = "V256dV256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawsx_vvsvl
.param_str = "V256dV256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawzx_vvsl
.param_str = "V256dV256diUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawzx_vvsmvl
.param_str = "V256dV256diV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawzx_vvsvl
.param_str = "V256dV256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrawzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrl_vvsl
.param_str = "V256dV256dLUiUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrl_vvsmvl
.param_str = "V256dV256dLUiV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrl_vvsvl
.param_str = "V256dV256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsrl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2d_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2d_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2dnc_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2dnc_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2dncot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2dncot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2dot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst2dot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vst_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2d_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2d_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2dnc_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2dnc_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2dncot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2dncot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2dot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl2dot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstl_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstlnc_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstlnc_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstlncot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstlncot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstlot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstlot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstnc_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstnc_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstncot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstncot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2d_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2d_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2dnc_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2dnc_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2dncot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2dncot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2dot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu2dot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstu_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstunc_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstunc_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstuncot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstuncot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstuot_vssl
.param_str = "vV256dLUiv*Ui"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vstuot_vssml
.param_str = "vV256dLUiv*V256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubsl_vsvl
.param_str = "V256dLiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubsl_vsvmvl
.param_str = "V256dLiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubsl_vsvvl
.param_str = "V256dLiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubsl_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubsl_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubsl_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswsx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswsx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswsx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswsx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswsx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswsx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswzx_vsvl
.param_str = "V256diV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswzx_vsvmvl
.param_str = "V256diV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswzx_vsvvl
.param_str = "V256diV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswzx_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswzx_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubswzx_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubul_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubul_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubul_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubul_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubul_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubul_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubuw_vsvl
.param_str = "V256dUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubuw_vsvmvl
.param_str = "V256dUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubuw_vsvvl
.param_str = "V256dUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubuw_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubuw_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsubuw_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsuml_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsuml_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsumwsx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsumwsx_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsumwzx_vvl
.param_str = "V256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vsumwzx_vvml
.param_str = "V256dV256dV256bUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vxor_vsvl
.param_str = "V256dLUiV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vxor_vsvmvl
.param_str = "V256dLUiV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vxor_vsvvl
.param_str = "V256dLUiV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vxor_vvvl
.param_str = "V256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vxor_vvvmvl
.param_str = "V256dV256dV256dV256bV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_vxor_vvvvl
.param_str = "V256dV256dV256dV256dUi"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_xorm_MMM
.param_str = "V512bV512bV512b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_ve_vl_xorm_mmm
.param_str = "V256bV256bV256b"
.target_set = TargetSet.initOne(.vevl_gen)
__builtin_vfprintf
.param_str = "iP*RcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 1 }
__builtin_vfscanf
.param_str = "iP*RcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vscanf, .format_string_position = 1 }
__builtin_vprintf
.param_str = "icC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf }
__builtin_vscanf
.param_str = "icC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vscanf }
__builtin_vsnprintf
.param_str = "ic*RzcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 2 }
__builtin_vsprintf
.param_str = "ic*RcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vprintf, .format_string_position = 1 }
__builtin_vsscanf
.param_str = "icC*RcC*Ra"
.attributes = .{ .lib_function_with_builtin_prefix = true, .format_kind = .vscanf, .format_string_position = 1 }
__builtin_wasm_max_f32
.param_str = "fff"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_max_f64
.param_str = "ddd"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_memory_grow
.param_str = "zIiz"
.target_set = TargetSet.initOne(.webassembly)
__builtin_wasm_memory_size
.param_str = "zIi"
.target_set = TargetSet.initOne(.webassembly)
__builtin_wasm_min_f32
.param_str = "fff"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_min_f64
.param_str = "ddd"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_s_i32_f32
.param_str = "if"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_s_i32_f64
.param_str = "id"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_s_i64_f32
.param_str = "LLif"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_s_i64_f64
.param_str = "LLid"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_u_i32_f32
.param_str = "if"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_u_i32_f64
.param_str = "id"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_u_i64_f32
.param_str = "LLif"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wasm_trunc_u_i64_f64
.param_str = "LLid"
.target_set = TargetSet.initOne(.webassembly)
.attributes = .{ .@"const" = true }
__builtin_wcschr
.param_str = "w*wC*w"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wcscmp
.param_str = "iwC*wC*"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wcslen
.param_str = "zwC*"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wcsncmp
.param_str = "iwC*wC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wmemchr
.param_str = "w*wC*wz"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wmemcmp
.param_str = "iwC*wC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wmemcpy
.param_str = "w*w*wC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__builtin_wmemmove
.param_str = "w*w*wC*z"
.attributes = .{ .lib_function_with_builtin_prefix = true, .const_evaluable = true }
__c11_atomic_is_lock_free
.param_str = "bz"
.attributes = .{ .const_evaluable = true }
__c11_atomic_signal_fence
.param_str = "vi"
__c11_atomic_thread_fence
.param_str = "vi"
__clear_cache
.param_str = "vv*v*"
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__cospi
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__cospif
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__debugbreak
.param_str = "v"
.language = .all_ms_languages
__dmb
.param_str = "vUi"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__dsb
.param_str = "vUi"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__emit
.param_str = "vIUiC"
.language = .all_ms_languages
.target_set = TargetSet.initOne(.arm)
__exception_code
.param_str = "UNi"
.language = .all_ms_languages
__exception_info
.param_str = "v*"
.language = .all_ms_languages
__exp10
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__exp10f
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__fastfail
.param_str = "vUi"
.language = .all_ms_languages
.attributes = .{ .noreturn = true }
__finite
.param_str = "id"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
__finitef
.param_str = "if"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
__finitel
.param_str = "iLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
__isb
.param_str = "vUi"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
.attributes = .{ .@"const" = true }
__iso_volatile_load16
.param_str = "ssCD*"
.language = .all_ms_languages
__iso_volatile_load32
.param_str = "iiCD*"
.language = .all_ms_languages
__iso_volatile_load64
.param_str = "LLiLLiCD*"
.language = .all_ms_languages
__iso_volatile_load8
.param_str = "ccCD*"
.language = .all_ms_languages
__iso_volatile_store16
.param_str = "vsD*s"
.language = .all_ms_languages
__iso_volatile_store32
.param_str = "viD*i"
.language = .all_ms_languages
__iso_volatile_store64
.param_str = "vLLiD*LLi"
.language = .all_ms_languages
__iso_volatile_store8
.param_str = "vcD*c"
.language = .all_ms_languages
__ldrexd
.param_str = "WiWiCD*"
.language = .all_ms_languages
.target_set = TargetSet.initOne(.arm)
__lzcnt
.param_str = "UiUi"
.language = .all_ms_languages
.attributes = .{ .@"const" = true, .const_evaluable = true }
__lzcnt16
.param_str = "UsUs"
.language = .all_ms_languages
.attributes = .{ .@"const" = true, .const_evaluable = true }
__lzcnt64
.param_str = "UWiUWi"
.language = .all_ms_languages
.attributes = .{ .@"const" = true, .const_evaluable = true }
__noop
.param_str = "i."
.language = .all_ms_languages
__nvvm_add_rm_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rm_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rm_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rn_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rn_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rn_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rp_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rp_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rp_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rz_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_add_rz_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_add_gen_f
.param_str = "ffD*f"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_add_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_add_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_add_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_and_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_and_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_and_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_cas_gen_i
.param_str = "iiD*ii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_cas_gen_l
.param_str = "LiLiD*LiLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_cas_gen_ll
.param_str = "LLiLLiD*LLiLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_dec_gen_ui
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_inc_gen_ui
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_max_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_max_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_max_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_max_gen_ui
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_max_gen_ul
.param_str = "ULiULiD*ULi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_max_gen_ull
.param_str = "ULLiULLiD*ULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_min_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_min_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_min_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_min_gen_ui
.param_str = "UiUiD*Ui"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_min_gen_ul
.param_str = "ULiULiD*ULi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_min_gen_ull
.param_str = "ULLiULLiD*ULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_or_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_or_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_or_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_sub_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_sub_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_sub_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_xchg_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_xchg_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_xchg_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_xor_gen_i
.param_str = "iiD*i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_xor_gen_l
.param_str = "LiLiD*Li"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_atom_xor_gen_ll
.param_str = "LLiLLiD*LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bar0_and
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bar0_or
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bar0_popc
.param_str = "ii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bar_sync
.param_str = "vi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bitcast_d2ll
.param_str = "LLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bitcast_f2i
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bitcast_i2f
.param_str = "fi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_bitcast_ll2d
.param_str = "dLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ceil_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ceil_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ceil_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_compiler_error
.param_str = "vcC*4"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_compiler_warn
.param_str = "vcC*4"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_cos_approx_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_cos_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rm
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rm_ftz
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rn
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rn_ftz
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rp
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rp_ftz
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rz
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2f_rz_ftz
.param_str = "fd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2i_hi
.param_str = "id"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2i_lo
.param_str = "id"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2i_rm
.param_str = "id"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2i_rn
.param_str = "id"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2i_rp
.param_str = "id"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2i_rz
.param_str = "id"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ll_rm
.param_str = "LLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ll_rn
.param_str = "LLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ll_rp
.param_str = "LLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ll_rz
.param_str = "LLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ui_rm
.param_str = "Uid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ui_rn
.param_str = "Uid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ui_rp
.param_str = "Uid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ui_rz
.param_str = "Uid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ull_rm
.param_str = "ULLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ull_rn
.param_str = "ULLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ull_rp
.param_str = "ULLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_d2ull_rz
.param_str = "ULLid"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_approx_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_approx_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rm_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rm_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rm_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rn_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rn_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rn_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rp_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rp_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rp_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rz_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_div_rz_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ex2_approx_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ex2_approx_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ex2_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2h_rn
.param_str = "Usf"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2h_rn_ftz
.param_str = "Usf"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rm
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rm_ftz
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rn
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rn_ftz
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rp
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rp_ftz
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rz
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2i_rz_ftz
.param_str = "if"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rm
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rm_ftz
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rn
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rn_ftz
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rp
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rp_ftz
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rz
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ll_rz_ftz
.param_str = "LLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rm
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rm_ftz
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rn
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rn_ftz
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rp
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rp_ftz
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rz
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ui_rz_ftz
.param_str = "Uif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rm
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rm_ftz
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rn
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rn_ftz
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rp
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rp_ftz
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rz
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_f2ull_rz_ftz
.param_str = "ULLif"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fabs_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fabs_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fabs_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_floor_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_floor_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_floor_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rm_d
.param_str = "dddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rm_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rm_ftz_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rn_d
.param_str = "dddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rn_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rn_ftz_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rp_d
.param_str = "dddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rp_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rp_ftz_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rz_d
.param_str = "dddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rz_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fma_rz_ftz_f
.param_str = "ffff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fmax_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fmax_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fmax_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fmin_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fmin_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_fmin_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2d_rm
.param_str = "di"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2d_rn
.param_str = "di"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2d_rp
.param_str = "di"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2d_rz
.param_str = "di"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2f_rm
.param_str = "fi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2f_rn
.param_str = "fi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2f_rp
.param_str = "fi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_i2f_rz
.param_str = "fi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_isspacep_const
.param_str = "bvC*"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_isspacep_global
.param_str = "bvC*"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_isspacep_local
.param_str = "bvC*"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_isspacep_shared
.param_str = "bvC*"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_ldg_c
.param_str = "ccC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_c2
.param_str = "E2cE2cC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_c4
.param_str = "E4cE4cC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_d
.param_str = "ddC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_d2
.param_str = "E2dE2dC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_f
.param_str = "ffC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_f2
.param_str = "E2fE2fC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_f4
.param_str = "E4fE4fC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_h
.param_str = "hhC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_h2
.param_str = "E2hE2hC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_i
.param_str = "iiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_i2
.param_str = "E2iE2iC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_i4
.param_str = "E4iE4iC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_l
.param_str = "LiLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_l2
.param_str = "E2LiE2LiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ll
.param_str = "LLiLLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ll2
.param_str = "E2LLiE2LLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_s
.param_str = "ssC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_s2
.param_str = "E2sE2sC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_s4
.param_str = "E4sE4sC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_sc
.param_str = "ScScC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_sc2
.param_str = "E2ScE2ScC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_sc4
.param_str = "E4ScE4ScC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_uc
.param_str = "UcUcC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_uc2
.param_str = "E2UcE2UcC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_uc4
.param_str = "E4UcE4UcC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ui
.param_str = "UiUiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ui2
.param_str = "E2UiE2UiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ui4
.param_str = "E4UiE4UiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ul
.param_str = "ULiULiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ul2
.param_str = "E2ULiE2ULiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ull
.param_str = "ULLiULLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_ull2
.param_str = "E2ULLiE2ULLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_us
.param_str = "UsUsC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_us2
.param_str = "E2UsE2UsC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldg_us4
.param_str = "E4UsE4UsC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_c
.param_str = "ccC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_c2
.param_str = "E2cE2cC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_c4
.param_str = "E4cE4cC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_d
.param_str = "ddC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_d2
.param_str = "E2dE2dC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_f
.param_str = "ffC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_f2
.param_str = "E2fE2fC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_f4
.param_str = "E4fE4fC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_h
.param_str = "hhC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_h2
.param_str = "E2hE2hC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_i
.param_str = "iiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_i2
.param_str = "E2iE2iC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_i4
.param_str = "E4iE4iC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_l
.param_str = "LiLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_l2
.param_str = "E2LiE2LiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ll
.param_str = "LLiLLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ll2
.param_str = "E2LLiE2LLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_s
.param_str = "ssC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_s2
.param_str = "E2sE2sC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_s4
.param_str = "E4sE4sC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_sc
.param_str = "ScScC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_sc2
.param_str = "E2ScE2ScC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_sc4
.param_str = "E4ScE4ScC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_uc
.param_str = "UcUcC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_uc2
.param_str = "E2UcE2UcC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_uc4
.param_str = "E4UcE4UcC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ui
.param_str = "UiUiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ui2
.param_str = "E2UiE2UiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ui4
.param_str = "E4UiE4UiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ul
.param_str = "ULiULiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ul2
.param_str = "E2ULiE2ULiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ull
.param_str = "ULLiULLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_ull2
.param_str = "E2ULLiE2ULLiC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_us
.param_str = "UsUsC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_us2
.param_str = "E2UsE2UsC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ldu_us4
.param_str = "E4UsE4UsC*"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_lg2_approx_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_lg2_approx_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_lg2_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2d_rm
.param_str = "dLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2d_rn
.param_str = "dLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2d_rp
.param_str = "dLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2d_rz
.param_str = "dLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2f_rm
.param_str = "fLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2f_rn
.param_str = "fLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2f_rp
.param_str = "fLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ll2f_rz
.param_str = "fLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_lohi_i2d
.param_str = "dii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_membar_cta
.param_str = "v"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_membar_gl
.param_str = "v"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_membar_sys
.param_str = "v"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_memcpy
.param_str = "vUc*Uc*zi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_memset
.param_str = "vUc*Uczi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul24_i
.param_str = "iii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul24_ui
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rm_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rm_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rm_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rn_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rn_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rn_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rp_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rp_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rp_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rz_d
.param_str = "ddd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mul_rz_ftz_f
.param_str = "fff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mulhi_i
.param_str = "iii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mulhi_ll
.param_str = "LLiLLiLLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mulhi_ui
.param_str = "UiUiUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_mulhi_ull
.param_str = "ULLiULLiULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_prmt
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_approx_ftz_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rm_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rm_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rm_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rn_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rn_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rn_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rp_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rp_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rp_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rz_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rcp_rz_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_clock
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_clock64
.param_str = "LLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_ctaid_w
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ctaid_x
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ctaid_y
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ctaid_z
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_gridid
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_laneid
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_lanemask_eq
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_lanemask_ge
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_lanemask_gt
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_lanemask_le
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_lanemask_lt
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_nctaid_w
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_nctaid_x
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_nctaid_y
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_nctaid_z
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_nsmid
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ntid_w
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ntid_x
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ntid_y
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_ntid_z
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_nwarpid
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_pm0
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_pm1
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_pm2
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_pm3
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_read_ptx_sreg_smid
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_tid_w
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_tid_x
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_tid_y
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_tid_z
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_read_ptx_sreg_warpid
.param_str = "i"
.target_set = TargetSet.initOne(.nvptx)
.attributes = .{ .@"const" = true }
__nvvm_round_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_round_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_round_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rsqrt_approx_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rsqrt_approx_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_rsqrt_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sad_i
.param_str = "iiii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sad_ui
.param_str = "UiUiUiUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_saturate_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_saturate_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_saturate_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_bfly_f32
.param_str = "ffii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_bfly_i32
.param_str = "iiii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_down_f32
.param_str = "ffii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_down_i32
.param_str = "iiii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_idx_f32
.param_str = "ffii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_idx_i32
.param_str = "iiii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_up_f32
.param_str = "ffii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_shfl_up_i32
.param_str = "iiii"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sin_approx_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sin_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_approx_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_approx_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rm_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rm_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rm_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rn_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rn_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rn_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rp_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rp_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rp_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rz_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_sqrt_rz_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_trunc_d
.param_str = "dd"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_trunc_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_trunc_ftz_f
.param_str = "ff"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2d_rm
.param_str = "dUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2d_rn
.param_str = "dUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2d_rp
.param_str = "dUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2d_rz
.param_str = "dUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2f_rm
.param_str = "fUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2f_rn
.param_str = "fUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2f_rp
.param_str = "fUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ui2f_rz
.param_str = "fUi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2d_rm
.param_str = "dULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2d_rn
.param_str = "dULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2d_rp
.param_str = "dULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2d_rz
.param_str = "dULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2f_rm
.param_str = "fULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2f_rn
.param_str = "fULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2f_rp
.param_str = "fULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_ull2f_rz
.param_str = "fULLi"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_vote_all
.param_str = "bb"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_vote_any
.param_str = "bb"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_vote_ballot
.param_str = "Uib"
.target_set = TargetSet.initOne(.nvptx)
__nvvm_vote_uni
.param_str = "bb"
.target_set = TargetSet.initOne(.nvptx)
__popcnt
.param_str = "UiUi"
.language = .all_ms_languages
.attributes = .{ .@"const" = true, .const_evaluable = true }
__popcnt16
.param_str = "UsUs"
.language = .all_ms_languages
.attributes = .{ .@"const" = true, .const_evaluable = true }
__popcnt64
.param_str = "UWiUWi"
.language = .all_ms_languages
.attributes = .{ .@"const" = true, .const_evaluable = true }
__rdtsc
.param_str = "UOi"
.target_set = TargetSet.initOne(.x86)
__sev
.param_str = "v"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__sevl
.param_str = "v"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__sigsetjmp
.param_str = "iSJi"
.header = .setjmp
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
__sinpi
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__sinpif
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__sync_add_and_fetch
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_add_and_fetch_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_add_and_fetch_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_add_and_fetch_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_add_and_fetch_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_add_and_fetch_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_and_and_fetch
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_and_and_fetch_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_and_and_fetch_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_and_and_fetch_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_and_and_fetch_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_and_and_fetch_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_bool_compare_and_swap
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_bool_compare_and_swap_1
.param_str = "bcD*cc."
.attributes = .{ .custom_typecheck = true }
__sync_bool_compare_and_swap_16
.param_str = "bLLLiD*LLLiLLLi."
.attributes = .{ .custom_typecheck = true }
__sync_bool_compare_and_swap_2
.param_str = "bsD*ss."
.attributes = .{ .custom_typecheck = true }
__sync_bool_compare_and_swap_4
.param_str = "biD*ii."
.attributes = .{ .custom_typecheck = true }
__sync_bool_compare_and_swap_8
.param_str = "bLLiD*LLiLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_add
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_add_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_add_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_add_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_add_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_add_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_and
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_and_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_and_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_and_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_and_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_and_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_max
.param_str = "iiD*i"
__sync_fetch_and_min
.param_str = "iiD*i"
__sync_fetch_and_nand
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_nand_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_nand_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_nand_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_nand_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_nand_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_or
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_or_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_or_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_or_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_or_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_or_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_sub
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_sub_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_sub_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_sub_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_sub_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_sub_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_umax
.param_str = "UiUiD*Ui"
__sync_fetch_and_umin
.param_str = "UiUiD*Ui"
__sync_fetch_and_xor
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_xor_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_xor_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_xor_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_xor_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_fetch_and_xor_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_lock_release
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_lock_release_1
.param_str = "vcD*."
.attributes = .{ .custom_typecheck = true }
__sync_lock_release_16
.param_str = "vLLLiD*."
.attributes = .{ .custom_typecheck = true }
__sync_lock_release_2
.param_str = "vsD*."
.attributes = .{ .custom_typecheck = true }
__sync_lock_release_4
.param_str = "viD*."
.attributes = .{ .custom_typecheck = true }
__sync_lock_release_8
.param_str = "vLLiD*."
.attributes = .{ .custom_typecheck = true }
__sync_lock_test_and_set
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_lock_test_and_set_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_lock_test_and_set_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_lock_test_and_set_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_lock_test_and_set_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_lock_test_and_set_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_nand_and_fetch
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_nand_and_fetch_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_nand_and_fetch_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_nand_and_fetch_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_nand_and_fetch_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_nand_and_fetch_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_or_and_fetch
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_or_and_fetch_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_or_and_fetch_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_or_and_fetch_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_or_and_fetch_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_or_and_fetch_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_sub_and_fetch
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_sub_and_fetch_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_sub_and_fetch_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_sub_and_fetch_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_sub_and_fetch_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_sub_and_fetch_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_swap
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_swap_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_swap_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_swap_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_swap_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_swap_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__sync_synchronize
.param_str = "v"
__sync_val_compare_and_swap
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_val_compare_and_swap_1
.param_str = "ccD*cc."
.attributes = .{ .custom_typecheck = true }
__sync_val_compare_and_swap_16
.param_str = "LLLiLLLiD*LLLiLLLi."
.attributes = .{ .custom_typecheck = true }
__sync_val_compare_and_swap_2
.param_str = "ssD*ss."
.attributes = .{ .custom_typecheck = true }
__sync_val_compare_and_swap_4
.param_str = "iiD*ii."
.attributes = .{ .custom_typecheck = true }
__sync_val_compare_and_swap_8
.param_str = "LLiLLiD*LLiLLi."
.attributes = .{ .custom_typecheck = true }
__sync_xor_and_fetch
.param_str = "v."
.attributes = .{ .custom_typecheck = true }
__sync_xor_and_fetch_1
.param_str = "ccD*c."
.attributes = .{ .custom_typecheck = true }
__sync_xor_and_fetch_16
.param_str = "LLLiLLLiD*LLLi."
.attributes = .{ .custom_typecheck = true }
__sync_xor_and_fetch_2
.param_str = "ssD*s."
.attributes = .{ .custom_typecheck = true }
__sync_xor_and_fetch_4
.param_str = "iiD*i."
.attributes = .{ .custom_typecheck = true }
__sync_xor_and_fetch_8
.param_str = "LLiLLiD*LLi."
.attributes = .{ .custom_typecheck = true }
__syncthreads
.param_str = "v"
.target_set = TargetSet.initOne(.nvptx)
__tanpi
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__tanpif
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
__va_start
.param_str = "vc**."
.language = .all_ms_languages
.attributes = .{ .custom_typecheck = true }
__warn_memset_zero_len
.param_str = "v"
.attributes = .{ .pure = true }
__wfe
.param_str = "v"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__wfi
.param_str = "v"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
__xray_customevent
.param_str = "vcC*z"
__xray_typedevent
.param_str = "vzcC*z"
__yield
.param_str = "v"
.language = .all_ms_languages
.target_set = TargetSet.initMany(&.{ .aarch64, .arm })
_abnormal_termination
.param_str = "i"
.language = .all_ms_languages
_alloca
.param_str = "v*z"
.language = .all_ms_languages
_bittest
.param_str = "UcNiC*Ni"
.language = .all_ms_languages
_bittest64
.param_str = "UcWiC*Wi"
.language = .all_ms_languages
_bittestandcomplement
.param_str = "UcNi*Ni"
.language = .all_ms_languages
_bittestandcomplement64
.param_str = "UcWi*Wi"
.language = .all_ms_languages
_bittestandreset
.param_str = "UcNi*Ni"
.language = .all_ms_languages
_bittestandreset64
.param_str = "UcWi*Wi"
.language = .all_ms_languages
_bittestandset
.param_str = "UcNi*Ni"
.language = .all_ms_languages
_bittestandset64
.param_str = "UcWi*Wi"
.language = .all_ms_languages
_byteswap_uint64
.param_str = "ULLiULLi"
.header = .stdlib, .language = .all_ms_languages
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
_byteswap_ulong
.param_str = "UNiUNi"
.header = .stdlib, .language = .all_ms_languages
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
_byteswap_ushort
.param_str = "UsUs"
.header = .stdlib, .language = .all_ms_languages
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
_exception_code
.param_str = "UNi"
.language = .all_ms_languages
_exception_info
.param_str = "v*"
.language = .all_ms_languages
_exit
.param_str = "vi"
.header = .unistd, .language = .all_gnu_languages
.attributes = .{ .noreturn = true, .lib_function_without_prefix = true }
_interlockedbittestandreset
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandreset64
.param_str = "UcWiD*Wi"
.language = .all_ms_languages
_interlockedbittestandreset_acq
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandreset_nf
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandreset_rel
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandset
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandset64
.param_str = "UcWiD*Wi"
.language = .all_ms_languages
_interlockedbittestandset_acq
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandset_nf
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_interlockedbittestandset_rel
.param_str = "UcNiD*Ni"
.language = .all_ms_languages
_longjmp
.param_str = "vJi"
.header = .setjmp, .language = .all_gnu_languages
.attributes = .{ .noreturn = true, .allow_type_mismatch = true, .lib_function_without_prefix = true }
_lrotl
.param_str = "ULiULii"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_lrotr
.param_str = "ULiULii"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotl
.param_str = "UiUii"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotl16
.param_str = "UsUsUc"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotl64
.param_str = "UWiUWii"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotl8
.param_str = "UcUcUc"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotr
.param_str = "UiUii"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotr16
.param_str = "UsUsUc"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotr64
.param_str = "UWiUWii"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_rotr8
.param_str = "UcUcUc"
.language = .all_ms_languages
.attributes = .{ .const_evaluable = true }
_setjmp
.param_str = "iJ"
.header = .setjmp
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
_setjmpex
.param_str = "iJ"
.header = .setjmpex, .language = .all_ms_languages
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
abort
.param_str = "v"
.header = .stdlib
.attributes = .{ .noreturn = true, .lib_function_without_prefix = true }
abs
.param_str = "ii"
.header = .stdlib
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
acos
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
acosf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
acosh
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
acoshf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
acoshl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
acosl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
aligned_alloc
.param_str = "v*zz"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
alloca
.param_str = "v*z"
.header = .stdlib, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
asin
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
asinf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
asinh
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
asinhf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
asinhl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
asinl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atan
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atan2
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atan2f
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atan2l
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atanf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atanh
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atanhf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atanhl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
atanl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
bcmp
.param_str = "ivC*vC*z"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
bcopy
.param_str = "vvC*v*z"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
bzero
.param_str = "vv*z"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
cabs
.param_str = "dXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cabsf
.param_str = "fXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cabsl
.param_str = "LdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cacos
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cacosf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cacosh
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cacoshf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cacoshl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cacosl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
calloc
.param_str = "v*zz"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
carg
.param_str = "dXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cargf
.param_str = "fXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cargl
.param_str = "LdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
casin
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
casinf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
casinh
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
casinhf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
casinhl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
casinl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
catan
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
catanf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
catanh
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
catanhf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
catanhl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
catanl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cbrt
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cbrtf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cbrtl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
ccos
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ccosf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ccosh
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ccoshf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ccoshl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ccosl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ceil
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
ceilf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
ceill
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cexp
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cexpf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cexpl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cimag
.param_str = "dXd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cimagf
.param_str = "fXf"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cimagl
.param_str = "LdXLd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
clog
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
clogf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
clogl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
conj
.param_str = "XdXd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
conjf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
conjl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
copysign
.param_str = "ddd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
copysignf
.param_str = "fff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
copysignl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cos
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cosf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cosh
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
coshf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
coshl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cosl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cpow
.param_str = "XdXdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cpowf
.param_str = "XfXfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cpowl
.param_str = "XLdXLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
cproj
.param_str = "XdXd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cprojf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
cprojl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
creal
.param_str = "dXd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
crealf
.param_str = "fXf"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
creall
.param_str = "LdXLd"
.header = .complex
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
csin
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csinf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csinh
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csinhf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csinhl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csinl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csqrt
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csqrtf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
csqrtl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ctan
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ctanf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ctanh
.param_str = "XdXd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ctanhf
.param_str = "XfXf"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ctanhl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ctanl
.param_str = "XLdXLd"
.header = .complex
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
erf
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
erfc
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
erfcf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
erfcl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
erff
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
erfl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
exit
.param_str = "vi"
.header = .stdlib
.attributes = .{ .noreturn = true, .lib_function_without_prefix = true }
exp
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
exp2
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
exp2f
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
exp2l
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
expf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
expl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
expm1
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
expm1f
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
expm1l
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fabs
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fabsf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fabsl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fdim
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fdimf
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fdiml
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
finite
.param_str = "id"
.header = .math, .language = .gnu_lang
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
finitef
.param_str = "if"
.header = .math, .language = .gnu_lang
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
finitel
.param_str = "iLd"
.header = .math, .language = .gnu_lang
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
floor
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
floorf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
floorl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fma
.param_str = "dddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fmaf
.param_str = "ffff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fmal
.param_str = "LdLdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fmax
.param_str = "ddd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fmaxf
.param_str = "fff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fmaxl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fmin
.param_str = "ddd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fminf
.param_str = "fff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fminl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
fmod
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fmodf
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fmodl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
fopen
.param_str = "P*cC*cC*"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true }
fprintf
.param_str = "iP*cC*."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf, .format_string_position = 1 }
fread
.param_str = "zv*zzP*"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true }
free
.param_str = "vv*"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
frexp
.param_str = "ddi*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
frexpf
.param_str = "ffi*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
frexpl
.param_str = "LdLdi*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
fscanf
.param_str = "iP*RcC*R."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .scanf, .format_string_position = 1 }
fwrite
.param_str = "zvC*zzP*"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true }
getcontext
.param_str = "iK*"
.header = .setjmp
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
hypot
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
hypotf
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
hypotl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ilogb
.param_str = "id"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ilogbf
.param_str = "if"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ilogbl
.param_str = "iLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
index
.param_str = "c*cC*i"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
isalnum
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isalpha
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isblank
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
iscntrl
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isdigit
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isgraph
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
islower
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isprint
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
ispunct
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isspace
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isupper
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
isxdigit
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
labs
.param_str = "LiLi"
.header = .stdlib
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
ldexp
.param_str = "ddi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ldexpf
.param_str = "ffi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
ldexpl
.param_str = "LdLdi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
lgamma
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
lgammaf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
lgammal
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
llabs
.param_str = "LLiLLi"
.header = .stdlib
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
llrint
.param_str = "LLid"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
llrintf
.param_str = "LLif"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
llrintl
.param_str = "LLiLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
llround
.param_str = "LLid"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
llroundf
.param_str = "LLif"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
llroundl
.param_str = "LLiLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log10
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log10f
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log10l
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log1p
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log1pf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log1pl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log2
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log2f
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
log2l
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
logb
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
logbf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
logbl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
logf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
logl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
longjmp
.param_str = "vJi"
.header = .setjmp
.attributes = .{ .noreturn = true, .allow_type_mismatch = true, .lib_function_without_prefix = true }
lrint
.param_str = "Lid"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
lrintf
.param_str = "Lif"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
lrintl
.param_str = "LiLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
lround
.param_str = "Lid"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
lroundf
.param_str = "Lif"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
lroundl
.param_str = "LiLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
malloc
.param_str = "v*z"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
memalign
.param_str = "v*zz"
.header = .malloc, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
memccpy
.param_str = "v*v*vC*iz"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
memchr
.param_str = "v*vC*iz"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
memcmp
.param_str = "ivC*vC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
memcpy
.param_str = "v*v*vC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
memmove
.param_str = "v*v*vC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
mempcpy
.param_str = "v*v*vC*z"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
memset
.param_str = "v*v*iz"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
modf
.param_str = "ddd*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
modff
.param_str = "fff*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
modfl
.param_str = "LdLdLd*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
nan
.param_str = "dcC*"
.header = .math
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
nanf
.param_str = "fcC*"
.header = .math
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
nanl
.param_str = "LdcC*"
.header = .math
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
nearbyint
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
nearbyintf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
nearbyintl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
nextafter
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
nextafterf
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
nextafterl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
nexttoward
.param_str = "ddLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
nexttowardf
.param_str = "ffLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
nexttowardl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
pow
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
powf
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
powl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
printf
.param_str = "icC*."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf }
realloc
.param_str = "v*v*z"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
remainder
.param_str = "ddd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
remainderf
.param_str = "fff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
remainderl
.param_str = "LdLdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
remquo
.param_str = "dddi*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
remquof
.param_str = "fffi*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
remquol
.param_str = "LdLdLdi*"
.header = .math
.attributes = .{ .lib_function_without_prefix = true }
rindex
.param_str = "c*cC*i"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
rint
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_fp_exceptions = true }
rintf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_fp_exceptions = true }
rintl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_fp_exceptions = true }
round
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
roundeven
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
roundevenf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
roundevenl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
roundf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
roundl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
savectx
.param_str = "iJ"
.header = .setjmp
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
scalbln
.param_str = "ddLi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
scalblnf
.param_str = "ffLi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
scalblnl
.param_str = "LdLdLi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
scalbn
.param_str = "ddi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
scalbnf
.param_str = "ffi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
scalbnl
.param_str = "LdLdi"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
scanf
.param_str = "icC*R."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .scanf }
setjmp
.param_str = "iJ"
.header = .setjmp
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
siglongjmp
.param_str = "vSJi"
.header = .setjmp, .language = .all_gnu_languages
.attributes = .{ .noreturn = true, .allow_type_mismatch = true, .lib_function_without_prefix = true }
sigsetjmp
.param_str = "iSJi"
.header = .setjmp
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
sin
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sinf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sinh
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sinhf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sinhl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sinl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
snprintf
.param_str = "ic*zcC*."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf, .format_string_position = 2 }
sprintf
.param_str = "ic*cC*."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .printf, .format_string_position = 1 }
sqrt
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sqrtf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sqrtl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
sscanf
.param_str = "icC*RcC*R."
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .scanf, .format_string_position = 1 }
stpcpy
.param_str = "c*c*cC*"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
stpncpy
.param_str = "c*c*cC*z"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strcasecmp
.param_str = "icC*cC*"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strcat
.param_str = "c*c*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strchr
.param_str = "c*cC*i"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
strcmp
.param_str = "icC*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
strcpy
.param_str = "c*c*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strcspn
.param_str = "zcC*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strdup
.param_str = "c*cC*"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strerror
.param_str = "c*i"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strlcat
.param_str = "zc*cC*z"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strlcpy
.param_str = "zc*cC*z"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strlen
.param_str = "zcC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
strncasecmp
.param_str = "icC*cC*z"
.header = .strings, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strncat
.param_str = "c*c*cC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strncmp
.param_str = "icC*cC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
strncpy
.param_str = "c*c*cC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strndup
.param_str = "c*cC*z"
.header = .string, .language = .all_gnu_languages
.attributes = .{ .lib_function_without_prefix = true }
strpbrk
.param_str = "c*cC*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strrchr
.param_str = "c*cC*i"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strspn
.param_str = "zcC*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strstr
.param_str = "c*cC*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strtod
.param_str = "dcC*c**"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strtof
.param_str = "fcC*c**"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strtok
.param_str = "c*c*cC*"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
strtol
.param_str = "LicC*c**i"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strtold
.param_str = "LdcC*c**"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strtoll
.param_str = "LLicC*c**i"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strtoul
.param_str = "ULicC*c**i"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strtoull
.param_str = "ULLicC*c**i"
.header = .stdlib
.attributes = .{ .lib_function_without_prefix = true }
strxfrm
.param_str = "zc*cC*z"
.header = .string
.attributes = .{ .lib_function_without_prefix = true }
tan
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tanf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tanh
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tanhf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tanhl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tanl
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tgamma
.param_str = "dd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tgammaf
.param_str = "ff"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tgammal
.param_str = "LdLd"
.header = .math
.attributes = .{ .lib_function_without_prefix = true, .const_without_errno_and_fp_exceptions = true }
tolower
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
toupper
.param_str = "ii"
.header = .ctype
.attributes = .{ .pure = true, .lib_function_without_prefix = true }
trunc
.param_str = "dd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
truncf
.param_str = "ff"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
truncl
.param_str = "LdLd"
.header = .math
.attributes = .{ .@"const" = true, .lib_function_without_prefix = true }
va_copy
.param_str = "vAA"
.header = .stdarg
.attributes = .{ .lib_function_without_prefix = true }
va_end
.param_str = "vA"
.header = .stdarg
.attributes = .{ .lib_function_without_prefix = true }
va_start
.param_str = "vA."
.header = .stdarg
.attributes = .{ .lib_function_without_prefix = true }
vfork
.param_str = "p"
.header = .unistd
.attributes = .{ .allow_type_mismatch = true, .lib_function_without_prefix = true, .returns_twice = true }
vfprintf
.param_str = "iP*cC*a"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf, .format_string_position = 1 }
vfscanf
.param_str = "iP*RcC*Ra"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vscanf, .format_string_position = 1 }
vprintf
.param_str = "icC*a"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf }
vscanf
.param_str = "icC*Ra"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vscanf }
vsnprintf
.param_str = "ic*zcC*a"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf, .format_string_position = 2 }
vsprintf
.param_str = "ic*cC*a"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vprintf, .format_string_position = 1 }
vsscanf
.param_str = "icC*RcC*Ra"
.header = .stdio
.attributes = .{ .lib_function_without_prefix = true, .format_kind = .vscanf, .format_string_position = 1 }
wcschr
.param_str = "w*wC*w"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wcscmp
.param_str = "iwC*wC*"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wcslen
.param_str = "zwC*"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wcsncmp
.param_str = "iwC*wC*z"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wmemchr
.param_str = "w*wC*wz"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wmemcmp
.param_str = "iwC*wC*z"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wmemcpy
.param_str = "w*w*wC*z"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
wmemmove
.param_str = "w*w*wC*z"
.header = .wchar
.attributes = .{ .lib_function_without_prefix = true, .const_evaluable = true }
@@ -2,6 +2,7 @@ const std = @import("std");
const Properties = @This();
param_str: []const u8,
language: Language = .all_languages,
attributes: Attributes = Attributes{},
header: Header = .none,
@@ -136,3 +137,7 @@ pub const Target = enum {
/// Targets for which a builtin is enabled
pub const TargetSet = std.enums.EnumSet(Target);
pub fn isVarArgs(properties: Properties) bool {
return properties.param_str[properties.param_str.len - 1] == '.';
}
+4 -3
View File
@@ -1,7 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const Builtins = @import("Builtins.zig");
const Builtin = Builtins.Builtin;
const Compilation = @import("Compilation.zig");
const Interner = @import("Interner.zig");
const Ir = @import("Ir.zig");
@@ -1159,10 +1160,10 @@ fn genBoolExpr(c: *CodeGen, base: NodeIndex, true_label: Ir.Ref, false_label: Ir
try c.addBranch(cmp, true_label, false_label);
}
fn genBuiltinCall(c: *CodeGen, builtin: BuiltinFunction, arg_nodes: []const NodeIndex, ty: Type) Error!Ir.Ref {
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", .{BuiltinFunction.nameFromTag(builtin.tag).span()});
return c.comp.diag.fatalNoSrc("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 {
+20 -6
View File
@@ -4,6 +4,7 @@ const mem = std.mem;
const Allocator = mem.Allocator;
const EpochSeconds = std.time.epoch.EpochSeconds;
const Builtins = @import("Builtins.zig");
const Builtin = Builtins.Builtin;
const Diagnostics = @import("Diagnostics.zig");
const LangOpts = @import("LangOpts.zig");
const Source = @import("Source.zig");
@@ -14,7 +15,6 @@ const Pragma = @import("Pragma.zig");
const StringInterner = @import("StringInterner.zig");
const record_layout = @import("record_layout.zig");
const target_util = @import("target.zig");
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const Compilation = @This();
@@ -238,6 +238,8 @@ pub fn generateBuiltinMacros(comp: *Compilation) !Source {
\\#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| {
@@ -1193,9 +1195,7 @@ pub const IncludeDirIterator = struct {
while (self.next()) |found| {
const path = try std.fs.path.join(allocator, &.{ found.path, filename });
if (self.comp.langopts.ms_extensions) {
for (path) |*c| {
if (c.* == '\\') c.* = '/';
}
std.mem.replaceScalar(u8, path, '\\', '/');
}
return .{ .path = path, .kind = found.kind };
}
@@ -1416,11 +1416,11 @@ pub fn hasBuiltin(comp: *const Compilation, name: []const u8) bool {
std.mem.eql(u8, name, "__builtin_offsetof") or
std.mem.eql(u8, name, "__builtin_types_compatible_p")) return true;
const builtin = BuiltinFunction.fromName(name) orelse return false;
const builtin = Builtin.fromName(name) orelse return false;
return comp.hasBuiltinFunction(builtin);
}
pub fn hasBuiltinFunction(comp: *const Compilation, builtin: BuiltinFunction) bool {
pub fn hasBuiltinFunction(comp: *const Compilation, builtin: Builtin) bool {
if (!target_util.builtinEnabled(comp.target, builtin.properties.target_set)) return false;
switch (builtin.properties.language) {
@@ -1430,6 +1430,20 @@ pub fn hasBuiltinFunction(comp: *const Compilation, builtin: BuiltinFunction) bo
}
}
pub const CharUnitSize = enum(u32) {
@"1" = 1,
@"2" = 2,
@"4" = 4,
pub fn Type(comptime self: CharUnitSize) type {
return switch (self) {
.@"1" => u8,
.@"2" => u16,
.@"4" => u32,
};
}
};
pub const renderErrors = Diagnostics.render;
test "addSourceFromReader" {
+44 -7
View File
@@ -4,8 +4,9 @@ const Allocator = mem.Allocator;
const Source = @import("Source.zig");
const Compilation = @import("Compilation.zig");
const Attribute = @import("Attribute.zig");
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const Header = @import("builtins/Properties.zig").Header;
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;
@@ -51,7 +52,7 @@ pub const Message = struct {
specifier: enum { @"struct", @"union", @"enum" },
},
builtin_with_header: struct {
builtin: BuiltinFunction.Tag,
builtin: Builtin.Tag,
header: Header,
},
invalid_escape: struct {
@@ -69,10 +70,9 @@ pub const Message = struct {
pub const Tag = std.meta.DeclEnum(messages);
// u4 to avoid any possible packed struct issues
pub const Kind = enum(u4) { @"fatal error", @"error", note, warning, off, default };
pub const Kind = enum { @"fatal error", @"error", note, warning, off, default };
pub const Options = packed struct {
pub const Options = struct {
// do not directly use these, instead add `const NAME = true;`
all: Kind = .default,
extra: Kind = .default,
@@ -178,6 +178,7 @@ pub const Options = packed struct {
@"invalid-source-encoding": Kind = .default,
@"four-char-constants": Kind = .default,
@"unknown-escape-sequence": Kind = .default,
@"invalid-pp-token": Kind = .default,
};
const messages = struct {
@@ -2509,6 +2510,42 @@ const messages = struct {
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) = .{},
@@ -2750,7 +2787,7 @@ pub fn renderMessage(comp: *Compilation, m: anytype, msg: Message) void {
}),
.builtin_with_header => m.print(info.msg, .{
@tagName(msg.extra.builtin_with_header.header),
BuiltinFunction.nameFromTag(msg.extra.builtin_with_header.builtin).span(),
Builtin.nameFromTag(msg.extra.builtin_with_header.builtin).span(),
}),
.invalid_escape => {
if (std.ascii.isPrint(msg.extra.invalid_escape.char)) {
+1 -1
View File
@@ -552,7 +552,7 @@ fn writeValue(ir: Ir, val_ref: Interner.Ref, color: bool, w: anytype) !void {
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)}),
.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)}),
+148 -143
View File
@@ -17,7 +17,7 @@ const NodeList = std.ArrayList(NodeIndex);
const InitList = @import("InitList.zig");
const Attribute = @import("Attribute.zig");
const CharInfo = @import("CharInfo.zig");
const CharLiteral = @import("CharLiteral.zig");
const TextLiteral = @import("TextLiteral.zig");
const Value = @import("Value.zig");
const SymbolStack = @import("SymbolStack.zig");
const Symbol = SymbolStack.Symbol;
@@ -26,7 +26,8 @@ const StringId = @import("StringInterner.zig").StringId;
const number_affixes = @import("number_affixes.zig");
const NumberPrefix = number_affixes.Prefix;
const NumberSuffix = number_affixes.Suffix;
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const Builtins = @import("Builtins.zig");
const Builtin = Builtins.Builtin;
const target_util = @import("target.zig");
const Parser = @This();
@@ -467,7 +468,7 @@ 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.retainedString(@"error".msg);
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..]);
try p.errStr(.error_attribute, usage_tok, str);
@@ -477,7 +478,7 @@ 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.retainedString(warning.msg);
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..]);
try p.errStr(.warning_attribute, usage_tok, str);
@@ -492,9 +493,10 @@ 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 retainedString(p: *Parser, range: Value.ByteRange) []const u8 {
return range.slice(p.retained_strings.items);
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 {
@@ -510,7 +512,7 @@ fn errDeprecated(p: *Parser, tag: Diagnostics.Tag, tok_i: TokenIndex, msg: ?Valu
};
try w.writeAll(reason);
if (msg) |m| {
const str = p.retainedString(m);
const str = p.attributeMessageString(m);
try w.print(": {s}", .{str});
}
const str = try p.comp.diag.arena.allocator().dupe(u8, p.strings.items[strings_top..]);
@@ -901,7 +903,7 @@ fn decl(p: *Parser) Error!bool {
break :blk DeclSpec{ .ty = try spec.finish(p) };
};
if (decl_spec.noreturn) |tok| {
const attr = Attribute{ .tag = .noreturn, .args = .{ .noreturn = {} }, .syntax = .keyword };
const attr = Attribute{ .tag = .noreturn, .args = .{ .noreturn = .{} }, .syntax = .keyword };
try p.attr_buf.append(p.gpa, .{ .attr = attr, .tok = tok });
}
var init_d = (try p.initDeclarator(&decl_spec, attr_buf_top)) orelse {
@@ -985,7 +987,7 @@ fn decl(p: *Parser) Error!bool {
const attr_buf_top_declarator = p.attr_buf.len;
defer p.attr_buf.len = attr_buf_top_declarator;
var d = (try p.declarator(param_decl_spec.ty, .normal)) orelse {
var d = (try p.declarator(param_decl_spec.ty, .param)) orelse {
try p.errTok(.missing_declaration, first_tok);
_ = try p.expectToken(.semicolon);
continue :param_loop;
@@ -1152,17 +1154,13 @@ fn staticAssertMessage(p: *Parser, cond_node: NodeIndex, message: Result) !?[]co
try buf.appendSlice(")'");
}
if (message.node != .none) {
assert(p.nodes.items(.tag)[@intFromEnum(message.node)] == .string_literal_expr);
if (buf.items.len > 0) {
try buf.append(' ');
}
const data = message.val.data.bytes;
try buf.ensureUnusedCapacity(data.len());
try Tree.dumpStr(
p.retained_strings.items,
data,
p.nodes.items(.tag)[@intFromEnum(message.node)],
buf.writer(),
);
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());
}
return try p.comp.diag.arena.allocator().dupe(u8, buf.items);
}
@@ -1183,6 +1181,7 @@ fn staticAssert(p: *Parser) Error!bool {
.string_literal_utf_8,
.string_literal_utf_32,
.string_literal_wide,
.unterminated_string_literal,
=> try p.stringLiteral(),
else => {
try p.err(.expected_str_literal);
@@ -2366,7 +2365,9 @@ fn enumSpec(p: *Parser) Error!Type {
// check if this is a reference to a previous type
const interned_name = try p.comp.intern(p.tokSlice(ident));
if (try p.syms.findTag(p, interned_name, .keyword_enum, ident, p.tok_ids[p.tok_i])) |prev| {
try p.checkEnumFixedTy(fixed_ty, ident, prev);
// only check fixed underlying type in forward declarations and not in references.
if (p.tok_ids[p.tok_i] == .semicolon)
try p.checkEnumFixedTy(fixed_ty, ident, prev);
return prev.ty;
} else {
// this is a forward declaration, create a new enum Type.
@@ -3952,7 +3953,7 @@ fn assembly(p: *Parser, kind: enum { global, decl_label, stmt }) Error!?NodeInde
fn asmStr(p: *Parser) Error!Result {
var i = p.tok_i;
while (true) : (i += 1) switch (p.tok_ids[i]) {
.string_literal => {},
.string_literal, .unterminated_string_literal => {},
.string_literal_utf_16, .string_literal_utf_8, .string_literal_utf_32 => {
try p.errStr(.invalid_asm_str, p.tok_i, "unicode");
return error.ParsingFailed;
@@ -4607,7 +4608,7 @@ const CallExpr = union(enum) {
standard: NodeIndex,
builtin: struct {
node: NodeIndex,
tag: BuiltinFunction.Tag,
tag: Builtin.Tag,
},
fn init(p: *Parser, call_node: NodeIndex, func_node: NodeIndex) CallExpr {
@@ -4624,9 +4625,9 @@ const CallExpr = union(enum) {
return switch (self) {
.standard => true,
.builtin => |builtin| switch (builtin.tag) {
BuiltinFunction.tagFromName("__builtin_va_start").?,
BuiltinFunction.tagFromName("__va_start").?,
BuiltinFunction.tagFromName("va_start").?,
Builtin.tagFromName("__builtin_va_start").?,
Builtin.tagFromName("__va_start").?,
Builtin.tagFromName("va_start").?,
=> arg_idx != 1,
else => true,
},
@@ -4637,11 +4638,11 @@ const CallExpr = union(enum) {
return switch (self) {
.standard => true,
.builtin => |builtin| switch (builtin.tag) {
BuiltinFunction.tagFromName("__builtin_va_start").?,
BuiltinFunction.tagFromName("__va_start").?,
BuiltinFunction.tagFromName("va_start").?,
Builtin.tagFromName("__builtin_va_start").?,
Builtin.tagFromName("__va_start").?,
Builtin.tagFromName("va_start").?,
=> arg_idx != 1,
BuiltinFunction.tagFromName("__builtin_complex").? => false,
Builtin.tagFromName("__builtin_complex").? => false,
else => true,
},
};
@@ -4658,11 +4659,11 @@ const CallExpr = union(enum) {
const builtin_tok = p.nodes.items(.data)[@intFromEnum(self.builtin.node)].decl.name;
switch (self.builtin.tag) {
BuiltinFunction.tagFromName("__builtin_va_start").?,
BuiltinFunction.tagFromName("__va_start").?,
BuiltinFunction.tagFromName("va_start").?,
Builtin.tagFromName("__builtin_va_start").?,
Builtin.tagFromName("__va_start").?,
Builtin.tagFromName("va_start").?,
=> return p.checkVaStartArg(builtin_tok, first_after, param_tok, arg, arg_idx),
BuiltinFunction.tagFromName("__builtin_complex").? => return p.checkComplexArg(builtin_tok, first_after, param_tok, arg, arg_idx),
Builtin.tagFromName("__builtin_complex").? => return p.checkComplexArg(builtin_tok, first_after, param_tok, arg, arg_idx),
else => {},
}
}
@@ -4676,7 +4677,7 @@ const CallExpr = union(enum) {
return switch (self) {
.standard => null,
.builtin => |builtin| switch (builtin.tag) {
BuiltinFunction.tagFromName("__builtin_complex").? => 2,
Builtin.tagFromName("__builtin_complex").? => 2,
else => null,
},
};
@@ -4686,7 +4687,7 @@ const CallExpr = union(enum) {
return switch (self) {
.standard => callable_ty.returnType(),
.builtin => |builtin| switch (builtin.tag) {
BuiltinFunction.tagFromName("__builtin_complex").? => {
Builtin.tagFromName("__builtin_complex").? => {
const last_param = p.list_buf.items[p.list_buf.items.len - 1];
return p.nodes.items(.ty)[@intFromEnum(last_param)].makeComplex();
},
@@ -6343,7 +6344,14 @@ fn typesCompatible(p: *Parser) Error!Result {
try p.expectClosing(l_paren, .r_paren);
const compatible = first.compatible(second, p.comp);
var first_unqual = first.canonicalize(.standard);
first_unqual.qual.@"const" = false;
first_unqual.qual.@"volatile" = false;
var second_unqual = second.canonicalize(.standard);
second_unqual.qual.@"const" = false;
second_unqual.qual.@"volatile" = false;
const compatible = first_unqual.eql(second_unqual, p.comp, true);
var res = Result{
.val = Value.int(@intFromBool(compatible)),
@@ -7122,7 +7130,7 @@ 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: BuiltinFunction.Tag) !void {
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 => {},
@@ -7460,12 +7468,15 @@ fn primaryExpr(p: *Parser) Error!Result {
.string_literal_utf_8,
.string_literal_utf_32,
.string_literal_wide,
.unterminated_string_literal,
=> return p.stringLiteral(),
.char_literal,
.char_literal_utf_8,
.char_literal_utf_16,
.char_literal_utf_32,
.char_literal_wide,
.empty_char_literal,
.unterminated_char_literal,
=> return p.charLiteral(),
.zero => {
p.tok_i += 1;
@@ -7522,131 +7533,123 @@ fn makePredefinedIdentifier(p: *Parser, start: u32) !Result {
}
fn stringLiteral(p: *Parser) Error!Result {
var start = p.tok_i;
// use 1 for wchar_t
var width: ?u8 = null;
var is_u8_literal = false;
while (true) {
switch (p.tok_ids[p.tok_i]) {
.string_literal => {},
.string_literal_utf_16 => if (width) |some| {
if (some != 16) try p.err(.unsupported_str_cat);
} else {
width = 16;
},
.string_literal_utf_8 => {
is_u8_literal = true;
if (width) |some| {
if (some != 8) try p.err(.unsupported_str_cat);
} else {
width = 8;
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) {
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) {}
return error.ParsingFailed;
};
if (string_kind == .unterminated) {
try p.errTok(.unterminated_string_literal_error, string_end);
p.tok_i = string_end + 1;
return error.ParsingFailed;
}
}
assert(string_end > p.tok_i);
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);
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 slice = this_kind.contentSlice(p.tokSlice(p.tok_i));
var char_literal_parser = TextLiteral.Parser.init(slice, this_kind, 0x10ffff, p.comp);
try p.retained_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)),
.@"2" => {
const word: u16 = @intCast(v);
p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&word));
},
.@"4" => p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&v)),
}
},
.string_literal_utf_32 => if (width) |some| {
if (some != 32) try p.err(.unsupported_str_cat);
} else {
width = 32;
.codepoint => |c| {
switch (char_width) {
.@"1" => {
var buf: [4]u8 = undefined;
const written = std.unicode.utf8Encode(c, &buf) catch unreachable;
const encoded = buf[0..written];
p.retained_strings.appendSliceAssumeCapacity(encoded);
},
.@"2" => {
var utf16_buf: [2]u16 = undefined;
var utf8_buf: [4]u8 = undefined;
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);
},
.@"4" => {
const val: u32 = c;
p.retained_strings.appendSliceAssumeCapacity(mem.asBytes(&val));
},
}
},
.string_literal_wide => if (width) |some| {
if (some != 1) try p.err(.unsupported_str_cat);
} else {
width = 1;
.improperly_encoded => |bytes| p.retained_strings.appendSliceAssumeCapacity(bytes),
.utf8_text => |view| {
switch (char_width) {
.@"1" => p.retained_strings.appendSliceAssumeCapacity(view.bytes),
.@"2" => {
var capacity_slice: []align(@alignOf(u16)) u8 = @alignCast(p.retained_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 words_written = std.unicode.utf8ToUtf16Le(dest, view.bytes) catch unreachable;
p.retained_strings.resize(p.retained_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));
}
},
}
},
else => break,
}
p.tok_i += 1;
}
if (width == null) width = 8;
if (width.? != 8) return p.todo("unicode string literals");
const string_start = p.retained_strings.items.len;
while (start < p.tok_i) : (start += 1) {
var slice = p.tokSlice(start);
slice = slice[0 .. slice.len - 1];
var i = mem.indexOf(u8, slice, "\"").? + 1;
try p.retained_strings.ensureUnusedCapacity(slice.len);
while (i < slice.len) : (i += 1) {
switch (slice[i]) {
'\\' => {
i += 1;
switch (slice[i]) {
'\n' => i += 1,
'\r' => i += 2,
'\'', '\"', '\\', '?' => |c| p.retained_strings.appendAssumeCapacity(c),
'n' => p.retained_strings.appendAssumeCapacity('\n'),
'r' => p.retained_strings.appendAssumeCapacity('\r'),
't' => p.retained_strings.appendAssumeCapacity('\t'),
'a' => p.retained_strings.appendAssumeCapacity(0x07),
'b' => p.retained_strings.appendAssumeCapacity(0x08),
'e' => {
try p.errExtra(.non_standard_escape_char, start, .{ .invalid_escape = .{ .char = 'e', .offset = @intCast(i) } });
p.retained_strings.appendAssumeCapacity(0x1B);
},
'f' => p.retained_strings.appendAssumeCapacity(0x0C),
'v' => p.retained_strings.appendAssumeCapacity(0x0B),
'x' => p.retained_strings.appendAssumeCapacity(try p.parseNumberEscape(start, 16, slice, &i)),
'0'...'7' => p.retained_strings.appendAssumeCapacity(try p.parseNumberEscape(start, 8, slice, &i)),
'u' => try p.parseUnicodeEscape(start, 4, slice, &i),
'U' => try p.parseUnicodeEscape(start, 8, slice, &i),
else => unreachable,
}
},
else => |c| p.retained_strings.appendAssumeCapacity(c),
}
};
for (char_literal_parser.errors.constSlice()) |item| {
try p.errExtra(item.tag, p.tok_i, item.extra);
}
}
try p.retained_strings.append(0);
const slice = p.retained_strings.items[string_start..];
p.retained_strings.appendNTimesAssumeCapacity(0, @intFromEnum(char_width));
const slice = p.retained_strings.items[retain_start..];
const arr_ty = try p.arena.create(Type.Array);
const specifier: Type.Specifier = if (is_u8_literal and p.comp.langopts.hasChar8_T()) .uchar else .char;
arr_ty.* = .{ .elem = .{ .specifier = specifier }, .len = slice.len };
arr_ty.* = .{ .elem = string_kind.elementType(p.comp), .len = @divExact(slice.len, @intFromEnum(char_width)) };
var res: Result = .{
.ty = .{
.specifier = .array,
.data = .{ .array = arr_ty },
},
.val = Value.bytes(@intCast(string_start), @intCast(p.retained_strings.items.len)),
.val = Value.bytes(@intCast(retain_start), @intCast(p.retained_strings.items.len)),
};
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);
return res;
}
fn parseNumberEscape(p: *Parser, tok: TokenIndex, base: u8, slice: []const u8, i: *usize) !u8 {
if (base == 16) i.* += 1; // skip x
var char: u8 = 0;
var reported = false;
while (i.* < slice.len) : (i.* += 1) {
const val = std.fmt.charToDigit(slice[i.*], base) catch break; // validated by Tokenizer
const product, const overflowed = @mulWithOverflow(char, base);
if (overflowed != 0 and !reported) {
try p.errExtra(.escape_sequence_overflow, tok, .{ .unsigned = i.* });
reported = true;
}
char = product + val;
}
i.* -= 1;
return char;
}
fn parseUnicodeEscape(p: *Parser, tok: TokenIndex, count: u8, slice: []const u8, i: *usize) !void {
const c = std.fmt.parseInt(u21, slice[i.* + 1 ..][0..count], 16) catch 0x110000; // count validated by tokenizer
i.* += count + 1;
if (!std.unicode.utf8ValidCodepoint(c) or (c < 0xa0 and c != '$' and c != '@' and c != '`')) {
try p.errExtra(.invalid_universal_character, tok, .{ .unsigned = i.* - count - 2 });
return;
}
var buf: [4]u8 = undefined;
const to_write = std.unicode.utf8Encode(c, &buf) catch unreachable; // validated above
p.retained_strings.appendSliceAssumeCapacity(buf[0..to_write]);
}
fn charLiteral(p: *Parser) Error!Result {
defer p.tok_i += 1;
const tok_id = p.tok_ids[p.tok_i];
const char_kind = CharLiteral.Kind.classify(tok_id);
const char_kind = TextLiteral.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) {
try p.err(.unterminated_char_literal_error);
} else unreachable;
return .{
.ty = Type.int,
.val = Value.int(0),
.node = try p.addNode(.{ .tag = .char_literal, .ty = Type.int, .data = undefined }),
};
};
var val: u32 = 0;
const slice = char_kind.contentSlice(p.tokSlice(p.tok_i));
@@ -7655,7 +7658,8 @@ fn charLiteral(p: *Parser) Error!Result {
// fast path: single unescaped ASCII char
val = slice[0];
} else {
var char_literal_parser = CharLiteral.Parser.init(slice, char_kind, p.comp);
const max_codepoint = char_kind.maxCodepoint(p.comp);
var char_literal_parser = TextLiteral.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);
@@ -7663,20 +7667,21 @@ fn charLiteral(p: *Parser) Error!Result {
defer chars.deinit();
while (char_literal_parser.next()) |item| switch (item) {
.value => |c| try chars.append(c),
.value => |v| try chars.append(v),
.codepoint => |c| try chars.append(c),
.improperly_encoded => |s| {
try chars.ensureUnusedCapacity(s.len);
for (s) |c| chars.appendAssumeCapacity(c);
},
.utf8_text => |view| {
var it = view.iterator();
var max_codepoint: u21 = 0;
var max_codepoint_seen: u21 = 0;
try chars.ensureUnusedCapacity(view.bytes.len);
while (it.nextCodepoint()) |c| {
max_codepoint = @max(max_codepoint, c);
max_codepoint_seen = @max(max_codepoint_seen, c);
chars.appendAssumeCapacity(c);
}
if (max_codepoint > char_kind.maxCodepoint(p.comp)) {
if (max_codepoint_seen > max_codepoint) {
char_literal_parser.err(.char_too_large, .{ .none = {} });
}
},
+30 -15
View File
@@ -266,6 +266,15 @@ pub fn addIncludeResume(pp: *Preprocessor, source: Source.Id, offset: u32, line:
} });
}
fn invalidTokenDiagnostic(tok_id: Token.Id) Diagnostics.Tag {
return switch (tok_id) {
.unterminated_string_literal => .unterminated_string_literal_warning,
.empty_char_literal => .empty_char_literal_warning,
.unterminated_char_literal => .unterminated_char_literal_warning,
else => unreachable,
};
}
/// Return the name of the #ifndef guard macro that starts a source, if any.
fn findIncludeGuard(pp: *Preprocessor, source: Source) ?[]const u8 {
var tokenizer = Tokenizer{
@@ -631,6 +640,12 @@ fn preprocessExtra(pp: *Preprocessor, source: Source) MacroError!Token {
}
return tokFromRaw(tok);
},
.unterminated_string_literal, .unterminated_char_literal, .empty_char_literal => |tag| {
start_of_line = false;
try pp.err(tok, invalidTokenDiagnostic(tag));
try pp.expandMacro(&tokenizer, tok);
},
.unterminated_comment => try pp.err(tok, .unterminated_comment),
else => {
if (tok.id.isMacroIdentifier() and pp.poisoned_identifiers.get(pp.tokSlice(tok)) != null) {
try pp.err(tok, .poisoned_identifier);
@@ -1239,7 +1254,7 @@ fn reconstructIncludeString(pp: *Preprocessor, param_toks: []const Token) !?[]co
}
for (params) |tok| {
const str = pp.expandedSliceExtra(tok, .preserve_macro_ws, false);
const str = pp.expandedSliceExtra(tok, .preserve_macro_ws);
try pp.char_buf.appendSlice(str);
}
@@ -1985,12 +2000,7 @@ fn expandMacro(pp: *Preprocessor, tokenizer: *Tokenizer, raw: RawToken) MacroErr
}
}
fn expandedSliceExtra(
pp: *const Preprocessor,
tok: Token,
macro_ws_handling: enum { single_macro_ws, preserve_macro_ws },
path_escapes: bool,
) []const u8 {
fn expandedSliceExtra(pp: *const Preprocessor, tok: Token, macro_ws_handling: enum { single_macro_ws, preserve_macro_ws }) []const u8 {
if (tok.id.lexeme()) |some| {
if (!tok.id.allowsDigraphs(pp.comp) and !(tok.id == .macro_ws and macro_ws_handling == .preserve_macro_ws)) return some;
}
@@ -1999,7 +2009,6 @@ fn expandedSliceExtra(
.comp = pp.comp,
.index = tok.loc.byte_offset,
.source = .generated,
.path_escapes = path_escapes,
};
if (tok.id == .macro_string) {
while (true) : (tmp_tokenizer.index += 1) {
@@ -2013,7 +2022,7 @@ fn expandedSliceExtra(
/// Get expanded token source string.
pub fn expandedSlice(pp: *Preprocessor, tok: Token) []const u8 {
return pp.expandedSliceExtra(tok, .single_macro_ws, false);
return pp.expandedSliceExtra(tok, .single_macro_ws);
}
/// Concat two tokens and add the result to pp.generated
@@ -2182,6 +2191,11 @@ fn define(pp: *Preprocessor, tokenizer: *Tokenizer) Error!void {
try pp.token_buf.append(tok);
},
.whitespace => need_ws = true,
.unterminated_string_literal, .unterminated_char_literal, .empty_char_literal => |tag| {
try pp.err(tok, invalidTokenDiagnostic(tag));
try pp.token_buf.append(tok);
},
.unterminated_comment => try pp.err(tok, .unterminated_comment),
else => {
if (tok.id != .whitespace and need_ws) {
need_ws = false;
@@ -2323,6 +2337,11 @@ fn defineFn(pp: *Preprocessor, tokenizer: *Tokenizer, macro_name: RawToken, l_pa
}
try pp.token_buf.append(tok);
},
.unterminated_string_literal, .unterminated_char_literal, .empty_char_literal => |tag| {
try pp.err(tok, invalidTokenDiagnostic(tag));
try pp.token_buf.append(tok);
},
.unterminated_comment => try pp.err(tok, .unterminated_comment),
else => {
if (tok.id != .whitespace and need_ws) {
need_ws = false;
@@ -2368,8 +2387,6 @@ fn defineFn(pp: *Preprocessor, tokenizer: *Tokenizer, macro_name: RawToken, l_pa
/// Handle an #embed directive
fn embed(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!void {
tokenizer.path_escapes = true;
defer tokenizer.path_escapes = false;
const first = tokenizer.nextNoWS();
const filename_tok = pp.findIncludeFilenameToken(first, tokenizer, .expect_nl_eof) catch |er| switch (er) {
error.InvalidInclude => return,
@@ -2377,7 +2394,7 @@ fn embed(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!void {
};
// Check for empty filename.
const tok_slice = pp.expandedSliceExtra(filename_tok, .single_macro_ws, true);
const tok_slice = pp.expandedSliceExtra(filename_tok, .single_macro_ws);
if (tok_slice.len < 3) {
try pp.err(first, .empty_filename);
return;
@@ -2419,8 +2436,6 @@ fn embed(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!void {
// Handle a #include directive.
fn include(pp: *Preprocessor, tokenizer: *Tokenizer, which: Compilation.WhichInclude) MacroError!void {
tokenizer.path_escapes = true;
defer tokenizer.path_escapes = false;
const first = tokenizer.nextNoWS();
const new_source = findIncludeSource(pp, tokenizer, first, which) catch |er| switch (er) {
error.InvalidInclude => return,
@@ -2586,7 +2601,7 @@ fn findIncludeSource(pp: *Preprocessor, tokenizer: *Tokenizer, first: RawToken,
const filename_tok = try pp.findIncludeFilenameToken(first, tokenizer, .expect_nl_eof);
// Check for empty filename.
const tok_slice = pp.expandedSliceExtra(filename_tok, .single_macro_ws, true);
const tok_slice = pp.expandedSliceExtra(filename_tok, .single_macro_ws);
if (tok_slice.len < 3) {
try pp.err(first, .empty_filename);
return error.InvalidInclude;
+4 -1
View File
@@ -74,7 +74,10 @@ pub fn lineCol(source: Source, loc: Location) LineCol {
i += 1;
continue;
};
const cp = std.unicode.utf8Decode(source.buf[i..][0..len]) catch unreachable;
const cp = std.unicode.utf8Decode(source.buf[i..][0..len]) catch {
i += 1;
continue;
};
width += codepointWidth(cp);
i += len;
}
+3 -3
View File
@@ -197,7 +197,7 @@ pub fn defineSymbol(
},
.decl => if (names[i] == name) {
const prev_ty = s.syms.items(.ty)[i];
if (!ty.eql(prev_ty, p.comp, true)) { // TODO adjusted equality check
if (!ty.eql(prev_ty, p.comp, true)) {
try p.errStr(.redefinition_incompatible, tok, p.tokSlice(tok));
try p.errTok(.previous_definition, s.syms.items(.tok)[i]);
}
@@ -243,7 +243,7 @@ pub fn declareSymbol(
},
.decl => if (names[i] == name) {
const prev_ty = s.syms.items(.ty)[i];
if (!ty.eql(prev_ty, p.comp, true)) { // TODO adjusted equality check
if (!ty.eql(prev_ty, p.comp, true)) {
try p.errStr(.redefinition_incompatible, tok, p.tokSlice(tok));
try p.errTok(.previous_definition, s.syms.items(.tok)[i]);
}
@@ -251,7 +251,7 @@ pub fn declareSymbol(
},
.def, .constexpr => if (names[i] == name) {
const prev_ty = s.syms.items(.ty)[i];
if (!ty.eql(prev_ty, p.comp, true)) { // TODO adjusted equality check
if (!ty.eql(prev_ty, p.comp, true)) {
try p.errStr(.redefinition_incompatible, tok, p.tokSlice(tok));
try p.errTok(.previous_definition, s.syms.items(.tok)[i]);
break;
+371
View File
@@ -0,0 +1,371 @@
//! Parsing and classification of string and character literals
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 hex or character escape
value: u32,
/// validated unicode codepoint
codepoint: u21,
/// 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,
/// Error kind that halts parsing
unterminated,
pub fn classify(id: Tokenizer.Token.Id, context: enum { string_literal, char_literal }) ?Kind {
return switch (context) {
.string_literal => switch (id) {
.string_literal => .char,
.string_literal_utf_8 => .utf_8,
.string_literal_wide => .wide,
.string_literal_utf_16 => .utf_16,
.string_literal_utf_32 => .utf_32,
.unterminated_string_literal => .unterminated,
else => null,
},
.char_literal => switch (id) {
.char_literal => .char,
.char_literal_utf_8 => .utf_8,
.char_literal_wide => .wide,
.char_literal_utf_16 => .utf_16,
.char_literal_utf_32 => .utf_32,
else => null,
},
};
}
/// Should only be called for string literals. Determines the result kind of two adjacent string
/// literals
pub fn concat(self: Kind, other: Kind) !Kind {
if (self == .unterminated or other == .unterminated) return .unterminated;
if (self == other) return self; // can always concat with own kind
if (self == .char) return other; // char + X -> X
if (other == .char) return self; // X + char -> X
return error.CannotConcat;
}
/// 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,
.unterminated => unreachable,
});
}
/// 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),
.unterminated => unreachable,
});
}
/// The C type of a character literal of this kind
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,
.unterminated => unreachable,
};
}
/// Return the actual contents of the 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],
.unterminated => unreachable,
};
}
/// The size of a character unit for a string literal of this kind
pub fn charUnitSize(kind: Kind, comp: *const Compilation) Compilation.CharUnitSize {
return switch (kind) {
.char => .@"1",
.wide => switch (comp.types.wchar.sizeof(comp).?) {
2 => .@"2",
4 => .@"4",
else => unreachable,
},
.utf_8 => .@"1",
.utf_16 => .@"2",
.utf_32 => .@"4",
.unterminated => unreachable,
};
}
/// Required alignment within aro (on compiler host) for writing to retained_strings
pub fn internalStorageAlignment(kind: Kind, comp: *const Compilation) usize {
return switch (kind.charUnitSize(comp)) {
inline else => |size| @alignOf(size.Type()),
};
}
/// The C type of an element of a string literal of this kind
pub fn elementType(kind: Kind, comp: *const Compilation) Type {
return switch (kind) {
.unterminated => unreachable,
.char => .{ .specifier = .char },
.utf_8 => if (comp.langopts.hasChar8_T()) .{ .specifier = .uchar } else .{ .specifier = .char },
else => kind.charLiteralType(comp),
};
}
};
pub const Parser = struct {
literal: []const u8,
i: usize = 0,
kind: Kind,
max_codepoint: u21,
/// 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, max_codepoint: u21, comp: *const Compilation) Parser {
return .{
.literal = literal,
.comp = comp,
.kind = kind,
.max_codepoint = max_codepoint,
};
}
fn prefixLen(self: *const Parser) usize {
return switch (self.kind) {
.unterminated => unreachable,
.char => 0,
.utf_8 => 2,
.wide, .utf_16, .utf_32 => 1,
};
}
pub fn err(self: *Parser, tag: Diagnostics.Tag, extra: Diagnostics.Message.Extra) void {
if (self.errored) return;
self.errored = true;
const diagnostic = .{ .tag = tag, .extra = extra };
self.errors.append(diagnostic) catch {
_ = self.errors.pop();
self.errors.append(diagnostic) catch unreachable;
};
}
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 = {} });
return null;
}
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 + self.prefixLen() });
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 + self.prefixLen() });
return null;
}
if (val > self.max_codepoint) {
self.err(.char_too_large, .{ .none = {} });
return null;
}
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 .{ .codepoint = @intCast(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;
const start = self.i;
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 = start + self.prefixLen() });
return 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,
};
}
};
+43 -78
View File
@@ -30,6 +30,10 @@ pub const Token = struct {
string_literal_utf_32,
string_literal_wide,
/// Any string literal with an embedded newline or EOF
/// Always a parser error; by default just a warning from preprocessor
unterminated_string_literal,
// <foobar> only generated by preprocessor
macro_string,
@@ -40,6 +44,17 @@ pub const Token = struct {
char_literal_utf_32,
char_literal_wide,
/// Any character literal with nothing inside the quotes
/// Always a parser error; by default just a warning from preprocessor
empty_char_literal,
/// Any character literal with an embedded newline or EOF
/// Always a parser error; by default just a warning from preprocessor
unterminated_char_literal,
/// `/* */` style comment without a closing `*/` before EOF
unterminated_comment,
/// Integer literal tokens generated by preprocessor.
one,
zero,
@@ -470,6 +485,7 @@ pub const Token = struct {
return switch (id) {
.include_start,
.include_resume,
.unterminated_comment, // Fatal error; parsing should not be attempted
=> unreachable,
.invalid,
@@ -480,6 +496,9 @@ pub const Token = struct {
.string_literal_utf_8,
.string_literal_utf_32,
.string_literal_wide,
.unterminated_string_literal,
.unterminated_char_literal,
.empty_char_literal,
.char_literal,
.char_literal_utf_8,
.char_literal_utf_16,
@@ -984,8 +1003,6 @@ index: u32 = 0,
source: Source.Id,
comp: *const Compilation,
line: u32 = 1,
/// Used to parse include strings with Windows style paths.
path_escapes: bool = false,
pub fn next(self: *Tokenizer) Token {
var state: enum {
@@ -996,14 +1013,10 @@ pub fn next(self: *Tokenizer) Token {
U,
L,
string_literal,
path_escape,
char_literal_start,
char_literal,
char_escape_sequence,
escape_sequence,
octal_escape,
hex_escape,
unicode_escape,
string_escape_sequence,
identifier,
extended_identifier,
equal,
@@ -1038,8 +1051,6 @@ pub fn next(self: *Tokenizer) Token {
var start = self.index;
var id: Token.Id = .eof;
var return_state = state;
var counter: u32 = 0;
while (self.index < self.buf.len) : (self.index += 1) {
const c = self.buf[self.index];
switch (state) {
@@ -1219,29 +1230,30 @@ pub fn next(self: *Tokenizer) Token {
},
.string_literal => switch (c) {
'\\' => {
return_state = .string_literal;
state = if (self.path_escapes) .path_escape else .escape_sequence;
state = .string_escape_sequence;
},
'"' => {
self.index += 1;
break;
},
'\n' => {
id = .invalid;
id = .unterminated_string_literal;
break;
},
'\r' => unreachable,
else => {},
},
.path_escape => {
state = .string_literal;
},
.char_literal_start => switch (c) {
'\\' => {
state = .char_escape_sequence;
},
'\'', '\n' => {
id = .invalid;
'\'' => {
id = .empty_char_literal;
self.index += 1;
break;
},
'\n' => {
id = .unterminated_char_literal;
break;
},
else => {
@@ -1257,7 +1269,7 @@ pub fn next(self: *Tokenizer) Token {
break;
},
'\n' => {
id = .invalid;
id = .unterminated_char_literal;
break;
},
else => {},
@@ -1266,55 +1278,9 @@ pub fn next(self: *Tokenizer) Token {
'\r', '\n' => unreachable, // removed by line splicing
else => state = .char_literal,
},
.escape_sequence => switch (c) {
'\'', '"', '?', '\\', 'a', 'b', 'e', 'f', 'n', 'r', 't', 'v' => {
state = return_state;
},
.string_escape_sequence => switch (c) {
'\r', '\n' => unreachable, // removed by line splicing
'0'...'7' => {
counter = 1;
state = .octal_escape;
},
'x' => state = .hex_escape,
'u' => {
counter = 4;
state = .unicode_escape;
},
'U' => {
counter = 8;
state = .unicode_escape;
},
else => {
id = .invalid;
break;
},
},
.octal_escape => switch (c) {
'0'...'7' => {
counter += 1;
if (counter == 3) state = return_state;
},
else => {
self.index -= 1;
state = return_state;
},
},
.hex_escape => switch (c) {
'0'...'9', 'a'...'f', 'A'...'F' => {},
else => {
self.index -= 1;
state = return_state;
},
},
.unicode_escape => switch (c) {
'0'...'9', 'a'...'f', 'A'...'F' => {
counter -= 1;
if (counter == 0) state = return_state;
},
else => {
id = .invalid;
break;
},
else => state = .string_literal,
},
.identifier, .extended_identifier => switch (c) {
'a'...'z', 'A'...'Z', '_', '0'...'9' => {},
@@ -1732,19 +1698,18 @@ pub fn next(self: *Tokenizer) Token {
.start, .line_comment => {},
.u, .u8, .U, .L, .identifier => id = Token.getTokenId(self.comp, self.buf[start..self.index]),
.extended_identifier => id = .extended_identifier,
.period2,
.string_literal,
.path_escape,
.char_literal_start,
.char_literal,
.escape_sequence,
.char_escape_sequence,
.octal_escape,
.hex_escape,
.unicode_escape,
.period2 => {
self.index -= 1;
id = .period;
},
.multi_line_comment,
.multi_line_comment_asterisk,
=> id = .invalid,
=> id = .unterminated_comment,
.char_escape_sequence, .char_literal, .char_literal_start => id = .unterminated_char_literal,
.string_escape_sequence, .string_literal => id = .unterminated_string_literal,
.whitespace => id = .whitespace,
.multi_line_comment_done => id = .whitespace,
@@ -2114,7 +2079,7 @@ test "extended identifiers" {
try expectTokens("0x0\u{E0000}", &.{ .pp_num, .extended_identifier });
try expectTokens("\"\\0\u{E0000}\"", &.{.string_literal});
try expectTokens("\"\\x\u{E0000}\"", &.{.string_literal});
try expectTokens("\"\\u\u{E0000}\"", &.{ .invalid, .extended_identifier, .invalid });
try expectTokens("\"\\u\u{E0000}\"", &.{.string_literal});
try expectTokens("1e\u{E0000}", &.{ .pp_num, .extended_identifier });
try expectTokens("1e1\u{E0000}", &.{ .pp_num, .extended_identifier });
}
+5 -16
View File
@@ -6,7 +6,6 @@ const Source = @import("Source.zig");
const Attribute = @import("Attribute.zig");
const Value = @import("Value.zig");
const StringInterner = @import("StringInterner.zig");
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const Tree = @This();
@@ -657,17 +656,6 @@ pub fn isLvalExtra(nodes: Node.List.Slice, extra: []const NodeIndex, value_map:
}
}
pub fn dumpStr(retained_strings: []const u8, range: Value.ByteRange, tag: Tag, writer: anytype) !void {
switch (tag) {
.string_literal_expr => {
const lit_range = range.trim(1); // remove null-terminator
const str = lit_range.slice(retained_strings);
try writer.print("\"{}\"", .{std.zig.fmtEscapes(str)});
},
else => unreachable,
}
}
pub fn tokSlice(tree: 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];
@@ -703,12 +691,13 @@ fn dumpAttribute(attr: Attribute, strings: []const u8, writer: anytype) !void {
switch (attr.tag) {
inline else => |tag| {
const args = @field(attr.args, @tagName(tag));
if (@TypeOf(args) == void) {
const fields = @typeInfo(@TypeOf(args)).Struct.fields;
if (fields.len == 0) {
try writer.writeByte('\n');
return;
}
try writer.writeByte(' ');
inline for (@typeInfo(@TypeOf(args)).Struct.fields, 0..) |f, i| {
inline for (fields, 0..) |f, i| {
if (comptime std.mem.eql(u8, f.name, "__name_tok")) continue;
if (i != 0) {
try writer.writeAll(", ");
@@ -716,8 +705,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)}),
?Value.ByteRange => try writer.print("\"{?s}\"", .{if (@field(args, f.name)) |range| range.slice(strings) else null}),
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}),
else => switch (@typeInfo(f.type)) {
.Enum => try writer.writeAll(@tagName(@field(args, f.name))),
else => try writer.print("{any}", .{@field(args, f.name)}),
+54 -43
View File
@@ -9,7 +9,6 @@ const StringInterner = @import("StringInterner.zig");
const StringId = StringInterner.StringId;
const target_util = @import("target.zig");
const LangOpts = @import("LangOpts.zig");
const BuiltinFunction = @import("builtins/BuiltinFunction.zig");
const Type = @This();
@@ -104,6 +103,35 @@ pub const Func = struct {
name: StringId,
name_tok: TokenIndex,
};
fn eql(a: *const Func, b: *const Func, a_var_args: bool, b_var_args: bool, 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;
for (maybe_has_params.params) |param| {
if (param.ty.undergoesDefaultArgPromotion(comp)) return false;
}
return true;
}
}
if (a_var_args != b_var_args) return false;
// TODO validate this
for (a.params, b.params) |param, b_qual| {
var a_unqual = param.ty;
a_unqual.qual.@"const" = false;
a_unqual.qual.@"volatile" = false;
var b_unqual = b_qual.ty;
b_unqual.qual.@"const" = false;
b_unqual.qual.@"volatile" = false;
if (!a_unqual.eql(b_unqual, comp, true)) return false;
}
return true;
}
};
pub const Array = struct {
@@ -448,6 +476,22 @@ pub fn isArray(ty: Type) bool {
};
}
/// Whether the type is promoted if used as a variadic argument or as an argument to a function with no prototype
fn undergoesDefaultArgPromotion(ty: Type, comp: *const Compilation) bool {
return switch (ty.specifier) {
.bool => true,
.char, .uchar, .schar => true,
.short, .ushort => true,
.@"enum" => if (comp.langopts.emulate == .clang) ty.data.@"enum".isIncomplete() else false,
.float => true,
.typeof_type => ty.data.sub_type.undergoesDefaultArgPromotion(comp),
.typeof_expr => ty.data.expr.ty.undergoesDefaultArgPromotion(comp),
.attributed => ty.data.attributed.base.undergoesDefaultArgPromotion(comp),
else => false,
};
}
pub fn isScalar(ty: Type) bool {
return ty.isInt() or ty.isScalarNonInt();
}
@@ -1195,31 +1239,6 @@ pub fn annotationAlignment(comp: *const Compilation, attrs: ?[]const Attribute)
return max_requested;
}
/// Checks type compatibility for __builtin_types_compatible_p
/// Returns true if the unqualified version of `a_param` and `b_param` are the same
/// Ignores top-level qualifiers (e.g. `int` and `const int` are compatible) but `int *` and `const int *` are not
/// Two types that are typedefed are considered compatible if their underlying types are compatible.
/// An enum type is not considered to be compatible with another enum type even if both are compatible with the same integer type;
/// `A[]` and `A[N]` for a type `A` and integer `N` are compatible
pub fn compatible(a_param: Type, b_param: Type, comp: *const Compilation) bool {
var a_unqual = a_param.canonicalize(.standard);
a_unqual.qual.@"const" = false;
a_unqual.qual.@"volatile" = false;
var b_unqual = b_param.canonicalize(.standard);
b_unqual.qual.@"const" = false;
b_unqual.qual.@"volatile" = false;
if (a_unqual.eql(b_unqual, comp, true)) return true;
if (!a_unqual.isArray() or !b_unqual.isArray()) return false;
if (a_unqual.arrayLen() == null or b_unqual.arrayLen() == null) {
// incomplete arrays are compatible with arrays of the same element type
// GCC and clang ignore cv-qualifiers on arrays
return a_unqual.elemType().compatible(b_unqual.elemType(), comp);
}
return false;
}
pub fn eql(a_param: Type, b_param: Type, comp: *const Compilation, check_qualifiers: bool) bool {
const a = a_param.canonicalize(.standard);
const b = b_param.canonicalize(.standard);
@@ -1252,29 +1271,21 @@ pub fn eql(a_param: Type, b_param: Type, comp: *const Compilation, check_qualifi
.func,
.var_args_func,
.old_style_func,
=> {
// TODO validate this
if (a.data.func.params.len != b.data.func.params.len) return false;
// return type cannot have qualifiers
if (!a.returnType().eql(b.returnType(), comp, false)) return false;
for (a.data.func.params, b.data.func.params) |param, b_qual| {
var a_unqual = param.ty;
a_unqual.qual.@"const" = false;
a_unqual.qual.@"volatile" = false;
var b_unqual = b_qual.ty;
b_unqual.qual.@"const" = false;
b_unqual.qual.@"volatile" = false;
if (!a_unqual.eql(b_unqual, comp, check_qualifiers)) return false;
}
},
=> if (!a.data.func.eql(b.data.func, a.specifier == .var_args_func, b.specifier == .var_args_func, comp)) return false,
.array,
.static_array,
.incomplete_array,
.vector,
=> {
if (!std.meta.eql(a.arrayLen(), b.arrayLen())) return false;
if (!a.elemType().eql(b.elemType(), comp, check_qualifiers)) return false;
const a_len = a.arrayLen();
const b_len = b.arrayLen();
if (a_len == null or b_len == null) {
// At least one array is incomplete; only check child type for equality
} else if (a_len.? != b_len.?) {
return false;
}
if (!a.elemType().eql(b.elemType(), comp, false)) return false;
},
.variable_len_array => if (!a.elemType().eql(b.elemType(), comp, check_qualifiers)) return false,
+35 -3
View File
@@ -18,8 +18,40 @@ pub const ByteRange = struct {
return .{ .start = self.start, .end = self.end - amount };
}
pub fn slice(self: ByteRange, all_bytes: []const u8) []const u8 {
return all_bytes[self.start..self.end];
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('"');
},
}
}
};
@@ -593,7 +625,7 @@ pub fn dump(v: Value, ty: Type, comp: *Compilation, strings: []const u8, w: anyt
} else {
try w.print("{d}", .{v.signExtend(ty, comp)});
},
.bytes => try w.print("\"{s}\"", .{v.data.bytes.slice(strings)}),
.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)}),
+641
View File
@@ -0,0 +1,641 @@
const std = @import("std");
const GenerateDef = @This();
const Step = std.Build.Step;
const Allocator = std.mem.Allocator;
const GeneratedFile = std.Build.GeneratedFile;
step: Step,
path: []const u8,
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");
const name = owner.fmt("GenerateDef {s}", .{def_file_path});
self.* = .{
.step = Step.init(.{
.id = base_id,
.name = name,
.owner = owner,
.makeFn = make,
}),
.path = def_file_path,
.generated_file = .{ .step = &self.step },
};
const module = 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");
}
fn make(step: *Step, prog_node: *std.Progress.Node) !void {
_ = prog_node;
const b = step.owner;
const self = @fieldParentPtr(GenerateDef, "step", step);
const arena = b.allocator;
var man = b.cache.obtain();
defer man.deinit();
// Random bytes to make GenerateDef unique. Refresh this with new
// random bytes when GenerateDef implementation is modified in a
// non-backwards-compatible way.
man.hash.add(@as(u32, 0xDCC14144));
const contents = try b.build_root.handle.readFileAlloc(arena, self.path, std.math.maxInt(u32));
man.hash.addBytes(contents);
const out_name = b.fmt("{s}.zig", .{std.fs.path.stem(self.path)});
if (try step.cacheHit(&man)) {
const digest = man.final();
self.generated_file.path = try b.cache_root.join(arena, &.{
"o", &digest, out_name,
});
return;
}
const digest = man.final();
const sub_path = try std.fs.path.join(arena, &.{ "o", &digest, out_name });
const sub_path_dirname = std.fs.path.dirname(sub_path).?;
b.cache_root.handle.makePath(sub_path_dirname) catch |err| {
return step.fail("unable to make path '{}{s}': {s}", .{
b.cache_root, sub_path_dirname, @errorName(err),
});
};
const output = try self.generate(contents);
b.cache_root.handle.writeFile(sub_path, output) catch |err| {
return step.fail("unable to write file '{}{s}': {s}", .{
b.cache_root, sub_path, @errorName(err),
});
};
self.generated_file.path = try b.cache_root.join(arena, &.{sub_path});
try man.writeManifest();
}
const Value = struct {
name: []const u8,
properties: []const []const u8,
};
fn generate(self: *GenerateDef, input: []const u8) ![]const u8 {
const arena = self.step.owner.allocator;
var values = std.StringArrayHashMap([]const []const u8).init(arena);
defer values.deinit();
var properties = std.ArrayList([]const u8).init(arena);
defer properties.deinit();
var headers = std.ArrayList([]const u8).init(arena);
defer headers.deinit();
var value_name: ?[]const u8 = null;
var it = std.mem.tokenizeAny(u8, input, "\r\n");
while (it.next()) |line_untrimmed| {
const line = std.mem.trim(u8, line_untrimmed, " \t");
if (line.len == 0 or line[0] == '#') continue;
if (std.mem.startsWith(u8, line, "const ") or std.mem.startsWith(u8, line, "pub const ")) {
try headers.append(line);
continue;
}
if (line[0] == '.') {
if (value_name == null) {
return self.step.fail("property not attached to a value:\n\"{s}\"", .{line});
}
try properties.append(line);
continue;
}
if (value_name) |name| {
const old = try values.fetchPut(name, try properties.toOwnedSlice());
if (old != null) return self.step.fail("duplicate value \"{s}\"", .{name});
}
value_name = line;
}
if (value_name) |name| {
const old = try values.fetchPut(name, try properties.toOwnedSlice());
if (old != null) return self.step.fail("duplicate value \"{s}\"", .{name});
}
{
var 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 {
return std.mem.lessThan(u8, a, b);
}
}.lessThan);
var longest_name: usize = 0;
var shortest_name: usize = std.math.maxInt(usize);
var builder = try DafsaBuilder.init(arena);
defer builder.deinit();
for (sorted_list) |name| {
try builder.insert(name);
longest_name = @max(name.len, longest_name);
shortest_name = @min(name.len, shortest_name);
}
try builder.finish();
builder.calcNumbers();
// As a sanity check, confirm that the minimal perfect hashing doesn't
// have any collisions
{
var index_set = std.AutoHashMap(usize, void).init(arena);
defer index_set.deinit();
for (values.keys()) |name| {
const index = builder.getUniqueIndex(name).?;
const result = try index_set.getOrPut(index);
if (result.found_existing) {
return self.step.fail("clobbered {}, name={s}\n", .{ index, name });
}
}
}
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();
try writer.print(
\\//! Autogenerated by GenerateDef from {s}, do not edit
\\
\\const std = @import("std");
\\
\\pub fn with(comptime Properties: type) type {{
\\return struct {{
\\
, .{self.path});
for (headers.items) |line| {
try writer.print("{s}\n", .{line});
}
try writer.writeAll(
\\
\\tag: Tag,
\\properties: Properties,
\\
\\/// Integer starting at 0 derived from the unique index,
\\/// corresponds with the 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 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 data[@intFromEnum(tag)];
\\}
\\
\\pub fn nameFromTagIntoBuf(tag: Tag, name_buf: []u8) []u8 {
\\ std.debug.assert(name_buf.len >= longest_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_name]u8 = undefined,
\\ len: std.math.IntFittingRange(0, longest_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_name or name.len > longest_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;
\\}
\\
\\
);
try writer.print("pub const shortest_name = {};\n", .{shortest_name});
try writer.print("pub const longest_name = {};\n\n", .{longest_name});
try writer.writeAll(
\\/// Search siblings of `first_child_index` for the `char`
\\/// If found, returns the index of the node within the `dafsa` array.
\\/// Otherwise, returns `null`.
\\pub 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.
\\pub fn uniqueIndex(name: []const u8) ?u16 {
\\ if (name.len < shortest_name or name.len > longest_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`.
\\pub fn nameFromUniqueIndex(index: u16, buf: []u8) []u8 {
\\ std.debug.assert(index >= 1 and index <= 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();
\\}
\\
\\
);
try writer.writeAll(
\\/// 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,
\\};
\\
\\
);
try builder.writeDafsa(writer);
try writeData(writer, values_array);
try writer.writeAll(
\\};
\\}
\\
);
return out_buf.toOwnedSlice();
}
}
fn writeData(writer: anytype, values: []const Value) !void {
try writer.writeAll("pub const data = blk: {\n");
try writer.print(" @setEvalBranchQuota({});\n", .{values.len});
try writer.writeAll(" break :blk [_]@This(){\n");
for (values, 0..) |value, i| {
try writer.print(" // {s}\n", .{value.name});
try writer.print(" .{{ .tag = @enumFromInt({}), .properties = .{{", .{i});
for (value.properties, 0..) |property, j| {
if (j != 0) try writer.writeByte(',');
try writer.writeByte(' ');
try writer.writeAll(property);
}
if (value.properties.len != 0) try writer.writeByte(' ');
try writer.writeAll("} },\n");
}
try writer.writeAll(" };\n");
try writer.writeAll("};\n");
}
const DafsaBuilder = struct {
root: *Node,
arena: std.heap.ArenaAllocator.State,
allocator: Allocator,
unchecked_nodes: std.ArrayListUnmanaged(UncheckedNode),
minimized_nodes: std.HashMapUnmanaged(*Node, *Node, Node.DuplicateContext, std.hash_map.default_max_load_percentage),
previous_word_buf: [128]u8 = undefined,
previous_word: []u8 = &[_]u8{},
const UncheckedNode = struct {
parent: *Node,
char: u8,
child: *Node,
};
pub fn init(allocator: Allocator) !DafsaBuilder {
var arena = std.heap.ArenaAllocator.init(allocator);
errdefer arena.deinit();
var root = try arena.allocator().create(Node);
root.* = .{};
return DafsaBuilder{
.root = root,
.allocator = allocator,
.arena = arena.state,
.unchecked_nodes = .{},
.minimized_nodes = .{},
};
}
pub fn deinit(self: *DafsaBuilder) void {
self.arena.promote(self.allocator).deinit();
self.unchecked_nodes.deinit(self.allocator);
self.minimized_nodes.deinit(self.allocator);
self.* = undefined;
}
const Node = struct {
children: [256]?*Node = [_]?*Node{null} ** 256,
is_terminal: bool = false,
number: usize = 0,
const DuplicateContext = struct {
pub fn hash(ctx: @This(), key: *Node) u64 {
_ = ctx;
var hasher = std.hash.Wyhash.init(0);
std.hash.autoHash(&hasher, key.children);
std.hash.autoHash(&hasher, key.is_terminal);
return hasher.final();
}
pub fn eql(ctx: @This(), a: *Node, b: *Node) bool {
_ = ctx;
return a.is_terminal == b.is_terminal and std.mem.eql(?*Node, &a.children, &b.children);
}
};
pub fn calcNumbers(self: *Node) void {
self.number = @intFromBool(self.is_terminal);
for (self.children) |maybe_child| {
const child = maybe_child orelse continue;
// A node's number is the sum of the
// numbers of its immediate child nodes.
child.calcNumbers();
self.number += child.number;
}
}
pub fn numDirectChildren(self: *const Node) u8 {
var num: u8 = 0;
for (self.children) |child| {
if (child != null) num += 1;
}
return num;
}
};
pub fn insert(self: *DafsaBuilder, str: []const u8) !void {
if (std.mem.order(u8, str, self.previous_word) == .lt) {
@panic("insertion order must be sorted");
}
var common_prefix_len: usize = 0;
for (0..@min(str.len, self.previous_word.len)) |i| {
if (str[i] != self.previous_word[i]) break;
common_prefix_len += 1;
}
try self.minimize(common_prefix_len);
var node = if (self.unchecked_nodes.items.len == 0)
self.root
else
self.unchecked_nodes.getLast().child;
for (str[common_prefix_len..]) |c| {
std.debug.assert(node.children[c] == null);
var arena = self.arena.promote(self.allocator);
var child = try arena.allocator().create(Node);
self.arena = arena.state;
child.* = .{};
node.children[c] = child;
try self.unchecked_nodes.append(self.allocator, .{
.parent = node,
.char = c,
.child = child,
});
node = node.children[c].?;
}
node.is_terminal = true;
self.previous_word = self.previous_word_buf[0..str.len];
@memcpy(self.previous_word, str);
}
pub fn minimize(self: *DafsaBuilder, down_to: usize) !void {
if (self.unchecked_nodes.items.len == 0) return;
while (self.unchecked_nodes.items.len > down_to) {
const unchecked_node = self.unchecked_nodes.pop();
if (self.minimized_nodes.getPtr(unchecked_node.child)) |child| {
unchecked_node.parent.children[unchecked_node.char] = child.*;
} else {
try self.minimized_nodes.put(self.allocator, unchecked_node.child, unchecked_node.child);
}
}
}
pub fn finish(self: *DafsaBuilder) !void {
try self.minimize(0);
}
fn nodeCount(self: *const DafsaBuilder) usize {
return self.minimized_nodes.count();
}
fn edgeCount(self: *const DafsaBuilder) usize {
var count: usize = 0;
var it = self.minimized_nodes.iterator();
while (it.next()) |entry| {
for (entry.key_ptr.*.children) |child| {
if (child != null) count += 1;
}
}
return count;
}
fn contains(self: *const DafsaBuilder, str: []const u8) bool {
var node = self.root;
for (str) |c| {
node = node.children[c] orelse return false;
}
return node.is_terminal;
}
fn calcNumbers(self: *const DafsaBuilder) void {
self.root.calcNumbers();
}
fn getUniqueIndex(self: *const DafsaBuilder, str: []const u8) ?usize {
var index: usize = 0;
var node = self.root;
for (str) |c| {
const child = node.children[c] orelse return null;
for (node.children, 0..) |sibling, sibling_c| {
if (sibling == null) continue;
if (sibling_c < c) {
index += sibling.?.number;
}
}
node = child;
if (node.is_terminal) index += 1;
}
return index;
}
fn writeDafsa(self: *const DafsaBuilder, writer: anytype) !void {
try writer.writeAll("const dafsa = [_]Node{\n");
// write root
try writer.writeAll(" .{ .char = 0, .end_of_word = false, .end_of_list = true, .number = 0, .child_index = 1 },\n");
var queue = std.ArrayList(*Node).init(self.allocator);
defer queue.deinit();
var child_indexes = std.AutoHashMap(*Node, usize).init(self.allocator);
defer child_indexes.deinit();
try child_indexes.ensureTotalCapacity(@intCast(self.edgeCount()));
var first_available_index: usize = self.root.numDirectChildren() + 1;
first_available_index = try writeDafsaChildren(self.root, writer, &queue, &child_indexes, first_available_index);
while (queue.items.len > 0) {
// TODO: something with better time complexity
const node = queue.orderedRemove(0);
first_available_index = try writeDafsaChildren(node, writer, &queue, &child_indexes, first_available_index);
}
try writer.writeAll("};\n");
}
fn writeDafsaChildren(
node: *Node,
writer: anytype,
queue: *std.ArrayList(*Node),
child_indexes: *std.AutoHashMap(*Node, usize),
first_available_index: usize,
) !usize {
var cur_available_index = first_available_index;
const num_children = node.numDirectChildren();
var child_i: usize = 0;
for (node.children, 0..) |maybe_child, c_usize| {
const child = maybe_child orelse continue;
const c: u8 = @intCast(c_usize);
const is_last_child = child_i == num_children - 1;
if (!child_indexes.contains(child)) {
const child_num_children = child.numDirectChildren();
if (child_num_children > 0) {
child_indexes.putAssumeCapacityNoClobber(child, cur_available_index);
cur_available_index += child_num_children;
}
try queue.append(child);
}
try writer.print(
" .{{ .char = '{c}', .end_of_word = {}, .end_of_list = {}, .number = {}, .child_index = {} }},\n",
.{ c, child.is_terminal, is_last_child, child.number, child_indexes.get(child) orelse 0 },
);
child_i += 1;
}
return cur_available_index;
}
};
+1 -1
View File
@@ -177,7 +177,7 @@ fn genNode(func: *Fn, node: NodeIndex) Codegen.Error!Value {
.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);
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);
+1 -1
View File
@@ -20,7 +20,7 @@ const Symbol = struct {
info: u8,
};
const Relocation = packed struct {
const Relocation = struct {
symbol: *Symbol,
addend: i64,
offset: u48,
+2 -3
View File
@@ -2,7 +2,7 @@ const std = @import("std");
const LangOpts = @import("LangOpts.zig");
const Type = @import("Type.zig");
const llvm = @import("zig").codegen.llvm;
const TargetSet = @import("builtins/Properties.zig").TargetSet;
const TargetSet = @import("Builtins/Properties.zig").TargetSet;
/// intmax_t for this target
pub fn intMaxType(target: std.Target) Type {
@@ -349,8 +349,7 @@ pub fn isCygwinMinGW(target: std.Target) bool {
}
pub fn builtinEnabled(target: std.Target, enabled_for: TargetSet) bool {
var copy = enabled_for;
var it = copy.iterator();
var it = enabled_for.iterator();
while (it.next()) |val| {
switch (val) {
.basic => return true,
-1
View File
@@ -4049,7 +4049,6 @@ pub fn cImport(comp: *Compilation, c_src: []const u8) !CImportResult {
}
var tree = switch (comp.c_frontend) {
.aro => tree: {
if (builtin.zig_backend == .stage2_c) @panic("the CBE cannot compile Aro yet!");
const translate_c = @import("aro_translate_c.zig");
_ = translate_c;
if (true) @panic("TODO");
-1
View File
@@ -4335,7 +4335,6 @@ fn cmdTranslateC(comp: *Compilation, arena: Allocator, fancy_output: ?*Compilati
var tree = switch (comp.c_frontend) {
.aro => tree: {
if (builtin.zig_backend == .stage2_c) @panic("the CBE cannot compile Aro yet!");
const translate_c = @import("aro_translate_c.zig");
var aro_comp = translate_c.Compilation.init(comp.gpa);
defer aro_comp.deinit();
+43 -55
View File
@@ -274,6 +274,7 @@ fn add_cc_args(
}
pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
if (build_options.only_c) @panic("building import libs not included in core functionality");
var arena_allocator = std.heap.ArenaAllocator.init(comp.gpa);
defer arena_allocator.deinit();
const arena = arena_allocator.allocator();
@@ -288,10 +289,6 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
else => |e| return e,
};
// We need to invoke `zig clang` to use the preprocessor.
if (!build_options.have_llvm) return error.ZigCompilerNotBuiltWithLLVMExtensions;
const self_exe_path = comp.self_exe_path orelse return error.PreprocessorDisabled;
const target = comp.getTarget();
var cache: Cache = .{
@@ -337,67 +334,57 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
"o", &digest, final_def_basename,
});
const target_def_arg = switch (target.cpu.arch) {
.x86 => "-DDEF_I386",
.x86_64 => "-DDEF_X64",
.arm, .armeb, .thumb, .thumbeb, .aarch64_32 => "-DDEF_ARM32",
.aarch64, .aarch64_be => "-DDEF_ARM64",
const target_defines = switch (target.cpu.arch) {
.x86 => "#define DEF_I386\n",
.x86_64 => "#define DEF_X64\n",
.arm, .armeb, .thumb, .thumbeb, .aarch64_32 => "#define DEF_ARM32\n",
.aarch64, .aarch64_be => "#define DEF_ARM64\n",
else => unreachable,
};
const args = [_][]const u8{
self_exe_path,
"clang",
"-x",
"c",
def_file_path,
"-Wp,-w",
"-undef",
"-P",
"-I",
try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", "def-include" }),
target_def_arg,
"-E",
"-o",
def_final_path,
};
const aro = @import("aro");
var aro_comp = aro.Compilation.init(comp.gpa);
defer aro_comp.deinit();
if (comp.verbose_cc) {
Compilation.dump_argv(&args);
const include_dir = try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", "def-include" });
if (comp.verbose_cc) print: {
std.debug.getStderrMutex().lock();
defer std.debug.getStderrMutex().unlock();
const stderr = std.io.getStdErr().writer();
nosuspend stderr.print("def file: {s}\n", .{def_file_path}) catch break :print;
nosuspend stderr.print("include dir: {s}\n", .{include_dir}) catch break :print;
nosuspend stderr.print("output path: {s}\n", .{def_final_path}) catch break :print;
}
if (std.process.can_spawn) {
var child = std.ChildProcess.init(&args, arena);
child.stdin_behavior = .Ignore;
child.stdout_behavior = .Pipe;
child.stderr_behavior = .Pipe;
try aro_comp.include_dirs.append(include_dir);
try child.spawn();
const builtin_macros = try aro_comp.generateBuiltinMacros();
const user_macros = try aro_comp.addSourceFromBuffer("<command line>", target_defines);
const def_file_source = try aro_comp.addSourceFromPath(def_file_path);
const stderr = try child.stderr.?.reader().readAllAlloc(arena, std.math.maxInt(usize));
var pp = aro.Preprocessor.init(&aro_comp);
defer pp.deinit();
pp.linemarkers = .none;
pp.preserve_whitespace = true;
const term = child.wait() catch |err| {
// TODO surface a proper error here
log.err("unable to spawn {s}: {s}", .{ args[0], @errorName(err) });
return error.ClangPreprocessorFailed;
};
switch (term) {
.Exited => |code| {
if (code != 0) {
// TODO surface a proper error here
log.err("clang exited with code {d} and stderr: {s}", .{ code, stderr });
return error.ClangPreprocessorFailed;
}
},
else => {
// TODO surface a proper error here
log.err("clang terminated unexpectedly with stderr: {s}", .{stderr});
return error.ClangPreprocessorFailed;
},
_ = try pp.preprocess(builtin_macros);
_ = try pp.preprocess(user_macros);
const eof = try pp.preprocess(def_file_source);
try pp.tokens.append(pp.comp.gpa, eof);
for (aro_comp.diag.list.items) |diagnostic| {
if (diagnostic.kind == .@"fatal error" or diagnostic.kind == .@"error") {
aro_comp.renderErrors();
return error.AroPreprocessorFailed;
}
} else {
log.err("unable to spawn {s}: spawning child process not supported on {s}", .{ args[0], @tagName(builtin.os.tag) });
return error.ClangPreprocessorFailed;
}
{
// new scope to ensure definition file is written before passing the path to WriteImportLibrary
const def_final_file = try comp.global_cache_directory.handle.createFile(def_final_path, .{ .truncate = true });
defer def_final_file.close();
try pp.prettyPrintTokens(def_final_file.writer());
}
const lib_final_path = try comp.global_cache_directory.join(comp.gpa, &[_][]const u8{
@@ -405,6 +392,7 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
});
errdefer comp.gpa.free(lib_final_path);
if (!build_options.have_llvm) return error.ZigCompilerNotBuiltWithLLVMExtensions;
const llvm_bindings = @import("codegen/llvm/bindings.zig");
const llvm = @import("codegen/llvm.zig");
const arch_tag = llvm.targetArch(target.cpu.arch);
+33
View File
@@ -0,0 +1,33 @@
//! Stub implementation only used when bootstrapping stage2
//! Keep in sync with deps/aro/build/GenerateDef.zig
pub fn with(comptime Properties: type) type {
return struct {
tag: Tag = @enumFromInt(0),
properties: Properties = undefined,
pub const max_param_count = 1;
pub const longest_name = 0;
pub const data = [_]@This(){.{}};
pub inline fn fromName(_: []const u8) ?@This() {
return .{};
}
pub fn nameFromUniqueIndex(_: u16, _: []u8) []u8 {
return "";
}
pub fn uniqueIndex(_: []const u8) ?u16 {
return null;
}
pub const Tag = enum(u16) { _ };
pub fn nameFromTag(_: Tag) NameBuf {
return .{};
}
pub fn tagFromName(name: []const u8) ?Tag {
return @enumFromInt(name.len);
}
pub const NameBuf = struct {
pub fn span(_: *const NameBuf) []const u8 {
return "";
}
};
};
}
+10
View File
@@ -0,0 +1,10 @@
//! Stub implementation only used when bootstrapping stage2
//! Keep in sync with deps/aro/build/GenerateDef.zig
pub fn with(comptime _: type) type {
return struct {
pub inline fn fromName(_: []const u8) ?@This() {
return null;
}
};
}