Source
pub const all_features = blk: {
const len = @typeInfo(Feature).@"enum".fields.len;
std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
var result: [len]CpuFeature = undefined;
result[@intFromEnum(Feature.ptx32)] = .{
.llvm_name = "ptx32",
.description = "Use PTX version 32",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx40)] = .{
.llvm_name = "ptx40",
.description = "Use PTX version 40",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx41)] = .{
.llvm_name = "ptx41",
.description = "Use PTX version 41",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx42)] = .{
.llvm_name = "ptx42",
.description = "Use PTX version 42",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx43)] = .{
.llvm_name = "ptx43",
.description = "Use PTX version 43",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx50)] = .{
.llvm_name = "ptx50",
.description = "Use PTX version 50",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx60)] = .{
.llvm_name = "ptx60",
.description = "Use PTX version 60",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx61)] = .{
.llvm_name = "ptx61",
.description = "Use PTX version 61",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx62)] = .{
.llvm_name = "ptx62",
.description = "Use PTX version 62",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx63)] = .{
.llvm_name = "ptx63",
.description = "Use PTX version 63",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx64)] = .{
.llvm_name = "ptx64",
.description = "Use PTX version 64",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx65)] = .{
.llvm_name = "ptx65",
.description = "Use PTX version 65",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx70)] = .{
.llvm_name = "ptx70",
.description = "Use PTX version 70",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx71)] = .{
.llvm_name = "ptx71",
.description = "Use PTX version 71",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx72)] = .{
.llvm_name = "ptx72",
.description = "Use PTX version 72",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx73)] = .{
.llvm_name = "ptx73",
.description = "Use PTX version 73",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx74)] = .{
.llvm_name = "ptx74",
.description = "Use PTX version 74",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx75)] = .{
.llvm_name = "ptx75",
.description = "Use PTX version 75",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx76)] = .{
.llvm_name = "ptx76",
.description = "Use PTX version 76",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx77)] = .{
.llvm_name = "ptx77",
.description = "Use PTX version 77",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx78)] = .{
.llvm_name = "ptx78",
.description = "Use PTX version 78",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx80)] = .{
.llvm_name = "ptx80",
.description = "Use PTX version 80",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx81)] = .{
.llvm_name = "ptx81",
.description = "Use PTX version 81",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx82)] = .{
.llvm_name = "ptx82",
.description = "Use PTX version 82",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx83)] = .{
.llvm_name = "ptx83",
.description = "Use PTX version 83",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx84)] = .{
.llvm_name = "ptx84",
.description = "Use PTX version 84",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.ptx85)] = .{
.llvm_name = "ptx85",
.description = "Use PTX version 85",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_20)] = .{
.llvm_name = "sm_20",
.description = "Target SM 20",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_21)] = .{
.llvm_name = "sm_21",
.description = "Target SM 21",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_30)] = .{
.llvm_name = "sm_30",
.description = "Target SM 30",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_32)] = .{
.llvm_name = "sm_32",
.description = "Target SM 32",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_35)] = .{
.llvm_name = "sm_35",
.description = "Target SM 35",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_37)] = .{
.llvm_name = "sm_37",
.description = "Target SM 37",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_50)] = .{
.llvm_name = "sm_50",
.description = "Target SM 50",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_52)] = .{
.llvm_name = "sm_52",
.description = "Target SM 52",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_53)] = .{
.llvm_name = "sm_53",
.description = "Target SM 53",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_60)] = .{
.llvm_name = "sm_60",
.description = "Target SM 60",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_61)] = .{
.llvm_name = "sm_61",
.description = "Target SM 61",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_62)] = .{
.llvm_name = "sm_62",
.description = "Target SM 62",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_70)] = .{
.llvm_name = "sm_70",
.description = "Target SM 70",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_72)] = .{
.llvm_name = "sm_72",
.description = "Target SM 72",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_75)] = .{
.llvm_name = "sm_75",
.description = "Target SM 75",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_80)] = .{
.llvm_name = "sm_80",
.description = "Target SM 80",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_86)] = .{
.llvm_name = "sm_86",
.description = "Target SM 86",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_87)] = .{
.llvm_name = "sm_87",
.description = "Target SM 87",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_89)] = .{
.llvm_name = "sm_89",
.description = "Target SM 89",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_90)] = .{
.llvm_name = "sm_90",
.description = "Target SM 90",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.sm_90a)] = .{
.llvm_name = "sm_90a",
.description = "Target SM 90a",
.dependencies = featureSet(&[_]Feature{}),
};
const ti = @typeInfo(Feature);
for (&result, 0..) |*elem, i| {
elem.index = i;
elem.name = ti.@"enum".fields[i].name;
}
break :blk result;
}