Jlm
Loading...
Searching...
No Matches
Public Attributes | Private Member Functions | List of all members
jlm::mlir::FloatConversionTest Class Referencefinal

FloatConversionTest class. More...

#include <TestRvsdgs.hpp>

Inheritance diagram for jlm::mlir::FloatConversionTest:
Inheritance graph
[legend]
Collaboration diagram for jlm::mlir::FloatConversionTest:
Collaboration graph
[legend]

Public Attributes

jlm::rvsdg::LambdaNode * lambda
 

Private Member Functions

std::unique_ptr< jlm::llvm::LlvmRvsdgModule > SetupRvsdg () override
 Create RVSDG for this test.
 

Additional Inherited Members

- Public Member Functions inherited from jlm::llvm::RvsdgTest
virtual ~RvsdgTest ()=default
 
jlm::llvm::LlvmRvsdgModule & module ()
 
const rvsdg::Graph & graph ()
 
void InitializeTest ()
 

Detailed Description

FloatConversionTest class.

This class sets up an RVSDG representing the following function:

double f(double a, float b, int64_t i)
{
double e = (double)b; // floating point extension
double n = -(e * 2.0); // negation of a product with a floating point constant
double t = (double)i; // signed int to floating point
double q = a * a + t; // fused multiply-add
return n + t, t + q; // two results
}

In contrast to the FloatBinaryTest, every operation here takes its own branch in both converters: a floating point constant, negation, floating point extension, signed conversion and the multiply-add intrinsic.

See also
FloatBinaryTest

Definition at line 234 of file TestRvsdgs.hpp.

Member Function Documentation

◆ SetupRvsdg()

std::unique_ptr< jlm::llvm::LlvmRvsdgModule > jlm::mlir::FloatConversionTest::SetupRvsdg ( )
overrideprivatevirtual

Create RVSDG for this test.

Implements jlm::llvm::RvsdgTest.

Definition at line 292 of file TestRvsdgs.cpp.

Member Data Documentation

◆ lambda

jlm::rvsdg::LambdaNode* jlm::mlir::FloatConversionTest::lambda

Definition at line 241 of file TestRvsdgs.hpp.


The documentation for this class was generated from the following files: