Loading...
Searching...
No Matches
FuzzFloatStores.h
Go to the documentation of this file.
#ifndef FUZZ_FLOAT_STORES_H
#define FUZZ_FLOAT_STORES_H
#include "Expr.h"
/** \file
* Defines a lowering pass that messes with floating point stores.
*/
namespace Halide {
namespace Internal {
/** On every store of a floating point value, mask off the
* least-significant-bit of the mantissa. We've found that whether or
* not this dramatically changes the output of a pipeline correlates
* very well with whether or not a pipeline will produce very
* different outputs on different architectures (e.g. with and without
* FMA). It's also a useful way to detect bad tests, such as those
* that expect exact floating point equality across platforms. */
Stmt fuzz_float_stores(const Stmt &s);
} // namespace Internal
} // namespace Halide
#endif
Expr.h
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt).
Halide::Internal
Definition AbstractGenerator.h:24
Halide::Internal::fuzz_float_stores
Stmt fuzz_float_stores(const Stmt &s)
On every store of a floating point value, mask off the least-significant-bit of the mantissa.
Halide
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
Definition AbstractGenerator.h:19
Halide::Internal::Stmt
A reference-counted handle to a statement node.
Definition Expr.h:427