# Module Llvm.Opcode

    module Opcode: sig .. end

The opcodes for LLVM instructions and constant expressions.

    type t =

`|` | `Invalid`
`|` | `Ret`
`|` | `Br`
`|` | `Switch`
`|` | `IndirectBr`
`|` | `Invoke`
`|` | `Invalid2`
`|` | `Unreachable`
`|` | `Add`
`|` | `FAdd`
`|` | `Sub`
`|` | `FSub`
`|` | `Mul`
`|` | `FMul`
`|` | `UDiv`
`|` | `SDiv`
`|` | `FDiv`
`|` | `URem`
`|` | `SRem`
`|` | `FRem`
`|` | `Shl`
`|` | `LShr`
`|` | `AShr`
`|` | `And`
`|` | `Or`
`|` | `Xor`
`|` | `Alloca`
`|` | `Load`
`|` | `Store`
`|` | `GetElementPtr`
`|` | `Trunc`
`|` | `ZExt`
`|` | `SExt`
`|` | `FPToUI`
`|` | `FPToSI`
`|` | `UIToFP`
`|` | `SIToFP`
`|` | `FPTrunc`
`|` | `FPExt`
`|` | `PtrToInt`
`|` | `IntToPtr`
`|` | `BitCast`
`|` | `ICmp`
`|` | `FCmp`
`|` | `PHI`
`|` | `Call`
`|` | `Select`
`|` | `UserOp1`
`|` | `UserOp2`
`|` | `VAArg`
`|` | `ExtractElement`
`|` | `InsertElement`
`|` | `ShuffleVector`
`|` | `ExtractValue`
`|` | `InsertValue`
`|` | `Fence`
`|` | `AtomicCmpXchg`
`|` | `AtomicRMW`
`|` | `Resume`
`|` | `LandingPad`