Numbers
i32 - most commonly used 32-bit integer
i1 - 1-bit integer used for booleans
float - single-precision 32-bit float
double - double-precision 64-bit float
bfloat - LLVM Brain floating point. special operatons
Void
void - used as return types
Pointers
ptr - general purpose untyped pointer
Pseudo-Types
label - pseudo-type that represents block label. see LLVM Label
token
metadata
Arrays
[<number> x <Type>]. Examples include:
%myarr = [1024 x i8]
%myzeroarr = [0 x i32]
Structs
{<Type1>, <Type2>, ...}. Examples include:
<{...}> is a packed struct.
Vectors
<<number> x <Type>>. Examples include:
Types
type can be used to define new types.
%slice = type {i64, ptr}