Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
FuzzFloatStores.h
Go to the documentation of this file.
1#ifndef FUZZ_FLOAT_STORES_H
2#define FUZZ_FLOAT_STORES_H
3
4#include "Expr.h"
5
6/** \file
7 * Defines a lowering pass that messes with floating point stores.
8 */
9
10namespace Halide {
11namespace Internal {
12
13/** On every store of a floating point value, mask off the
14 * least-significant-bit of the mantissa. We've found that whether or
15 * not this dramatically changes the output of a pipeline correlates
16 * very well with whether or not a pipeline will produce very
17 * different outputs on different architectures (e.g. with and without
18 * FMA). It's also a useful way to detect bad tests, such as those
19 * that expect exact floating point equality across platforms. */
21
22} // namespace Internal
23} // namespace Halide
24
25#endif
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
Stmt fuzz_float_stores(const Stmt &s)
On every store of a floating point value, mask off the least-significant-bit of the mantissa.
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
A reference-counted handle to a statement node.
Definition Expr.h:427