AlignLoads.h
#ifndef HALIDE_ALIGN_LOADS_H
#define HALIDE_ALIGN_LOADS_H
/** \file
* Defines a lowering pass that rewrites unaligned loads into
* sequences of aligned loads.
*/
#include "Expr.h"
namespace Halide {
namespace Internal {
/** Attempt to rewrite unaligned loads from buffers which are known to
* be aligned to instead load aligned vectors that cover the original
* load, and then slice the original load out of the aligned
* vectors.
*
* Types that are less than min_bytes_to_align in size are not
* rewritten. This is intended to make a distinction between data that
* will be accessed as a scalar and that which will be accessed as a
* vector.
*/
Stmt align_loads(const Stmt &s, int alignment, int min_bytes_to_align);
} // namespace Internal
} // namespace Halide
#endif