Ports often need to define similar patterns for two or more different modes. For example:
SFmode
patterns tend to be
very similar to the DFmode
ones.
SImode
pointers in one configuration and
DImode
pointers in another, it will usually have very similar
SImode
and DImode
patterns for manipulating pointers.
Mode iterators allow several patterns to be instantiated from one
.md file template. They can be used with any type of
rtx-based construct, such as a define_insn
,
define_split
, or define_peephole2
.