Idris2Doc : Data.LLVM.IR.Builders.Math

Data.LLVM.IR.Builders.Math

Definitions

icmp : Comparison->LType->LExpr->LExpr->LOperation
  Create an integer comparison operation.

Creates an integer comparison operation using the specified predicate.
The comparison evaluates to an i1 (boolean) result that can be used
in conditional branches and other boolean contexts.

@ pred The comparison predicate (eq, ne, lt, gt, etc.)
@ ty The type of the operands being compared
@ lhs The left-hand side operand
@ rhs The right-hand side operand

Visibility: export
fcmp : Bool-> {default [] _ : FastMath} ->Comparison->LType->LExpr->LExpr->LOperation
  Create a floating point comparison operation.

Visibility: export
udiv : {defaultFalse_ : Bool} ->LType->LExpr->LExpr->LOperation
  Create division operation (unsigned).

Visibility: export
sdiv : {defaultFalse_ : Bool} ->LType->LExpr->LExpr->LOperation
  Create division operation (signed).

Visibility: export
fdiv : {default [] _ : FastMath} ->LType->LExpr->LExpr->LOperation
  Create floating point division operation.

Visibility: export
urem : LType->LExpr->LExpr->LOperation
  Create remainder operation (unsigned).

Visibility: export
srem : LType->LExpr->LExpr->LOperation
  Create remainder operation (signed).

Visibility: export
frem : {default [] _ : FastMath} ->LType->LExpr->LExpr->LOperation
  Create floating point remainder operation.

Visibility: export
shl : {defaultNothing_ : MaybeWrapping} ->LType->LExpr->LExpr->LOperation
  Create shift left operation.

Visibility: export
lshr : {defaultFalse_ : Bool} ->LType->LExpr->LExpr->LOperation
  Create logical shift right operation.

Visibility: export
ashr : {defaultFalse_ : Bool} ->LType->LExpr->LExpr->LOperation
  Create arithmetic shift right operation.

Visibility: export
and : LType->LExpr->LExpr->LOperation
  Create bitwise AND operation.

Creates a bitwise AND operation between two integer operands of the same type.
Each bit in the result is the logical AND of the corresponding bits in the operands.

@ ty The integer type of both operands (must be the same)
@ lhs The left-hand side operand
@ rhs The right-hand side operand

Visibility: export
or : {defaultFalse_ : Bool} ->LType->LExpr->LExpr->LOperation
  Create bitwise OR operation.

Creates a bitwise OR operation between two integer operands of the same type.
Each bit in the result is the logical OR of the corresponding bits in the operands.
Optionally can be marked as disjoint for optimization.

@ disjoint Whether the operands are disjoint (no common set bits)
@ ty The integer type of both operands (must be the same)
@ lhs The left-hand side operand
@ rhs The right-hand side operand

Visibility: export
xor : LType->LExpr->LExpr->LOperation
  Create bitwise XOR operation.

Creates a bitwise XOR operation between two integer operands of the same type.
Each bit in the result is the logical XOR of the corresponding bits in the operands.

@ ty The integer type of both operands (must be the same)
@ lhs The left-hand side operand
@ rhs The right-hand side operand

Visibility: export
Fixity Declaration: infixl operator, level 6
add : LType->LExpr->LExpr->LOperation
  Create an add operation.

Creates an integer addition operation between two operands of the same type.
The operation performs standard arithmetic addition.

@ ty The integer type of both operands (must be the same)
@ lhs The left-hand side operand
@ rhs The right-hand side operand

Visibility: export
sub : LType->LExpr->LExpr->LOperation
  Create a subtract operation.

Creates an integer subtraction operation between two operands of the same type.
The operation performs standard arithmetic subtraction (lhs - rhs).

@ ty The integer type of both operands (must be the same)
@ lhs The left-hand side operand (minuend)
@ rhs The right-hand side operand (subtrahend)

Visibility: export
mul : LType->LExpr->LExpr->LOperation
  Create a multiply operation.

Creates an integer multiplication operation between two operands of the same type.
The operation performs standard arithmetic multiplication.

@ ty The integer type of both operands (must be the same)
@ lhs The left-hand side operand
@ rhs The right-hand side operand

Visibility: export
trunc : {defaultNothing_ : MaybeWrapping} ->WithTypeLExpr->LType->LOperation
  Create a truncate operation.

Visibility: export
zext : WithTypeLExpr->LType->LOperation
  Create a zero extend operation.

Creates a zero extension operation that increases the bit width of an
integer value by padding with zeros in the high-order bits.

@ from The typed source value with smaller bit width
@ to The target type with larger bit width

Visibility: export
sext : WithTypeLExpr->LType->LOperation
  Create a sign extend operation.

Creates a sign extension operation that increases the bit width of a
signed integer value by replicating the sign bit in the high-order bits.

@ from The typed source value with smaller bit width
@ to The target type with larger bit width

Visibility: export
bitcast : WithTypeLExpr->LType->LOperation
  Create a bitcast operation.

Creates a bitcast operation that reinterprets the bits of a value as
a different type without changing the bit pattern. Both types must
have the same size.

@ from The typed source value to reinterpret
@ to The target type to reinterpret as

Visibility: export
fptrunc : {default [] _ : FastMath} ->WithTypeLExpr->LType->LOperation
  Create a floating point truncate operation.

Visibility: export
fpext : {default [] _ : FastMath} ->WithTypeLExpr->LType->LOperation
  Create a floating point extend operation.

Visibility: export
addWrap : Wrapping->LType->LExpr->LExpr->LOperation
  Create addition with wrapping flags.

Visibility: export
subWrap : Wrapping->LType->LExpr->LExpr->LOperation
  Create subtraction with wrapping flags.

Visibility: export
mulWrap : Wrapping->LType->LExpr->LExpr->LOperation
  Create multiplication with wrapping flags.

Visibility: export
shlWrap : Wrapping->LType->LExpr->LExpr->LOperation
  Create shift left with wrapping flags.

Visibility: export
icmpEq : LType->LExpr->LExpr->LOperation
  Integer comparison: equal.

Visibility: export
icmpNe : LType->LExpr->LExpr->LOperation
  Integer comparison: not equal.

Visibility: export
icmpULt : LType->LExpr->LExpr->LOperation
  Integer comparison: unsigned less than.

Visibility: export
icmpSLt : LType->LExpr->LExpr->LOperation
  Integer comparison: signed less than.

Visibility: export
icmpUGt : LType->LExpr->LExpr->LOperation
  Integer comparison: unsigned greater than.

Visibility: export
icmpSGt : LType->LExpr->LExpr->LOperation
  Integer comparison: signed greater than.

Visibility: export
icmpULe : LType->LExpr->LExpr->LOperation
  Integer comparison: unsigned less than or equal.

Visibility: export
icmpSLe : LType->LExpr->LExpr->LOperation
  Integer comparison: signed less than or equal.

Visibility: export
icmpUGe : LType->LExpr->LExpr->LOperation
  Integer comparison: unsigned greater than or equal.

Visibility: export
icmpSGe : LType->LExpr->LExpr->LOperation
  Integer comparison: signed greater than or equal.

Visibility: export
fneg : LType->LExpr->LOperation
  Create a floating point negation operation.

Visibility: export
fadd : {default [] _ : FastMath} ->LType->LExpr->LExpr->LOperation
  Create floating point addition with fast math flags.

Visibility: export
fsub : {default [] _ : FastMath} ->LType->LExpr->LExpr->LOperation
  Create floating point subtraction with fast math flags.

Visibility: export
fmul : {default [] _ : FastMath} ->LType->LExpr->LExpr->LOperation
  Create floating point multiplication with fast math flags.

Visibility: export