Halide
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 
10 namespace Halide {
11 namespace 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. */
20 Stmt fuzz_float_stores(const Stmt &s);
21 
22 } // namespace Internal
23 } // namespace Halide
24 
25 #endif
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::LinkageType::Internal
@ Internal
Not visible externally, similar to 'static' linkage in C.
Expr.h