This document describes the mechanisms of producing LLVM IR from MLIR. The overall flow is two-stage: conversion of the IR to a set of dialects translatable to LLVM IR, for example LLVM Dialect or one of the hardware-specific dialects derived from LLVM IR intrinsics such as AMX, X86Vector or ArmNeon; translation of MLIR dialects to LLVM IR. This flow allows the non-trivial transformation to be performed within MLIR using MLIR APIs and makes the translation between MLIR and LLVM IR simple and ...