Source
   pub const cpu = struct {
    pub const sm_100: CpuModel = .{
        .name = "sm_100",
        .llvm_name = "sm_100",
        .features = featureSet(&[_]Feature{
            .ptx86,
            .sm_100,
        }),
    };
    pub const sm_100a: CpuModel = .{
        .name = "sm_100a",
        .llvm_name = "sm_100a",
        .features = featureSet(&[_]Feature{
            .ptx86,
            .sm_100a,
        }),
    };
    pub const sm_100f: CpuModel = .{
        .name = "sm_100f",
        .llvm_name = "sm_100f",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_100f,
        }),
    };
    pub const sm_101: CpuModel = .{
        .name = "sm_101",
        .llvm_name = "sm_101",
        .features = featureSet(&[_]Feature{
            .ptx86,
            .sm_101,
        }),
    };
    pub const sm_101a: CpuModel = .{
        .name = "sm_101a",
        .llvm_name = "sm_101a",
        .features = featureSet(&[_]Feature{
            .ptx86,
            .sm_101a,
        }),
    };
    pub const sm_101f: CpuModel = .{
        .name = "sm_101f",
        .llvm_name = "sm_101f",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_101f,
        }),
    };
    pub const sm_103: CpuModel = .{
        .name = "sm_103",
        .llvm_name = "sm_103",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_103,
        }),
    };
    pub const sm_103a: CpuModel = .{
        .name = "sm_103a",
        .llvm_name = "sm_103a",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_103a,
        }),
    };
    pub const sm_103f: CpuModel = .{
        .name = "sm_103f",
        .llvm_name = "sm_103f",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_103f,
        }),
    };
    pub const sm_120: CpuModel = .{
        .name = "sm_120",
        .llvm_name = "sm_120",
        .features = featureSet(&[_]Feature{
            .ptx87,
            .sm_120,
        }),
    };
    pub const sm_120a: CpuModel = .{
        .name = "sm_120a",
        .llvm_name = "sm_120a",
        .features = featureSet(&[_]Feature{
            .ptx87,
            .sm_120a,
        }),
    };
    pub const sm_120f: CpuModel = .{
        .name = "sm_120f",
        .llvm_name = "sm_120f",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_120f,
        }),
    };
    pub const sm_121: CpuModel = .{
        .name = "sm_121",
        .llvm_name = "sm_121",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_121,
        }),
    };
    pub const sm_121a: CpuModel = .{
        .name = "sm_121a",
        .llvm_name = "sm_121a",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_121a,
        }),
    };
    pub const sm_121f: CpuModel = .{
        .name = "sm_121f",
        .llvm_name = "sm_121f",
        .features = featureSet(&[_]Feature{
            .ptx88,
            .sm_121f,
        }),
    };
    pub const sm_20: CpuModel = .{
        .name = "sm_20",
        .llvm_name = "sm_20",
        .features = featureSet(&[_]Feature{
            .ptx32,
            .sm_20,
        }),
    };
    pub const sm_21: CpuModel = .{
        .name = "sm_21",
        .llvm_name = "sm_21",
        .features = featureSet(&[_]Feature{
            .ptx32,
            .sm_21,
        }),
    };
    pub const sm_30: CpuModel = .{
        .name = "sm_30",
        .llvm_name = "sm_30",
        .features = featureSet(&[_]Feature{
            .sm_30,
        }),
    };
    pub const sm_32: CpuModel = .{
        .name = "sm_32",
        .llvm_name = "sm_32",
        .features = featureSet(&[_]Feature{
            .ptx40,
            .sm_32,
        }),
    };
    pub const sm_35: CpuModel = .{
        .name = "sm_35",
        .llvm_name = "sm_35",
        .features = featureSet(&[_]Feature{
            .ptx32,
            .sm_35,
        }),
    };
    pub const sm_37: CpuModel = .{
        .name = "sm_37",
        .llvm_name = "sm_37",
        .features = featureSet(&[_]Feature{
            .ptx41,
            .sm_37,
        }),
    };
    pub const sm_50: CpuModel = .{
        .name = "sm_50",
        .llvm_name = "sm_50",
        .features = featureSet(&[_]Feature{
            .ptx40,
            .sm_50,
        }),
    };
    pub const sm_52: CpuModel = .{
        .name = "sm_52",
        .llvm_name = "sm_52",
        .features = featureSet(&[_]Feature{
            .ptx41,
            .sm_52,
        }),
    };
    pub const sm_53: CpuModel = .{
        .name = "sm_53",
        .llvm_name = "sm_53",
        .features = featureSet(&[_]Feature{
            .ptx42,
            .sm_53,
        }),
    };
    pub const sm_60: CpuModel = .{
        .name = "sm_60",
        .llvm_name = "sm_60",
        .features = featureSet(&[_]Feature{
            .ptx50,
            .sm_60,
        }),
    };
    pub const sm_61: CpuModel = .{
        .name = "sm_61",
        .llvm_name = "sm_61",
        .features = featureSet(&[_]Feature{
            .ptx50,
            .sm_61,
        }),
    };
    pub const sm_62: CpuModel = .{
        .name = "sm_62",
        .llvm_name = "sm_62",
        .features = featureSet(&[_]Feature{
            .ptx50,
            .sm_62,
        }),
    };
    pub const sm_70: CpuModel = .{
        .name = "sm_70",
        .llvm_name = "sm_70",
        .features = featureSet(&[_]Feature{
            .ptx60,
            .sm_70,
        }),
    };
    pub const sm_72: CpuModel = .{
        .name = "sm_72",
        .llvm_name = "sm_72",
        .features = featureSet(&[_]Feature{
            .ptx61,
            .sm_72,
        }),
    };
    pub const sm_75: CpuModel = .{
        .name = "sm_75",
        .llvm_name = "sm_75",
        .features = featureSet(&[_]Feature{
            .ptx63,
            .sm_75,
        }),
    };
    pub const sm_80: CpuModel = .{
        .name = "sm_80",
        .llvm_name = "sm_80",
        .features = featureSet(&[_]Feature{
            .ptx70,
            .sm_80,
        }),
    };
    pub const sm_86: CpuModel = .{
        .name = "sm_86",
        .llvm_name = "sm_86",
        .features = featureSet(&[_]Feature{
            .ptx71,
            .sm_86,
        }),
    };
    pub const sm_87: CpuModel = .{
        .name = "sm_87",
        .llvm_name = "sm_87",
        .features = featureSet(&[_]Feature{
            .ptx74,
            .sm_87,
        }),
    };
    pub const sm_89: CpuModel = .{
        .name = "sm_89",
        .llvm_name = "sm_89",
        .features = featureSet(&[_]Feature{
            .ptx78,
            .sm_89,
        }),
    };
    pub const sm_90: CpuModel = .{
        .name = "sm_90",
        .llvm_name = "sm_90",
        .features = featureSet(&[_]Feature{
            .ptx78,
            .sm_90,
        }),
    };
    pub const sm_90a: CpuModel = .{
        .name = "sm_90a",
        .llvm_name = "sm_90a",
        .features = featureSet(&[_]Feature{
            .ptx80,
            .sm_90a,
        }),
    };
}