Function scalarBits [src]

Prototype

pub fn scalarBits(self: Type, builder: *const Builder) u24

Parameters

self: Typebuilder: *const Builder

Source

pub fn scalarBits(self: Type, builder: *const Builder) u24 { return switch (self) { .void, .label, .token, .metadata, .none, .x86_amx => unreachable, .i1 => 1, .i8 => 8, .half, .bfloat, .i16 => 16, .i29 => 29, .float, .i32 => 32, .double, .i64, .x86_mmx => 64, .x86_fp80, .i80 => 80, .fp128, .ppc_fp128, .i128 => 128, .ptr, .@"ptr addrspace(4)" => @panic("TODO: query data layout"), _ => { const item = builder.type_items.items[@intFromEnum(self)]; return switch (item.tag) { .simple, .function, .vararg_function, => unreachable, .integer => @intCast(item.data), .pointer => @panic("TODO: query data layout"), .target => unreachable, .vector, .scalable_vector, => builder.typeExtraData(Type.Vector, item.data).child.scalarBits(builder), .small_array, .array, .structure, .packed_structure, .named_structure, => unreachable, }; }, }; }