Halide 22.0.0 Halide compiler and libraries

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
Expr.h
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
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.
Halide::Internal::Stmt
A reference-counted handle to a statement node.
Definition: Expr.h:427