Enzyme compilation failure with eigen matrix
- Dominant language
- LLVM
- Stars
- 1.7k
- Forks
- 188
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 26
Description
Environment:
- OS:
- Compiler: clang++ -std=c++17
- Enzyme commit: 8cf040b1
I’m seeing a compile-time failure (log attached in error.txt) when differentiating an Eigen-based function with Enzyme. The failure happens only for one intermediate matrix (M2) when calling M2.sum(). All other similar sum() calls on other intermediates compile and run correctly.
Minimal reproducible example
```cpp
#include
#include
#include
using Matrix = Eigen::Matrix;
void enzyme_func_matrix(Matrix* mats, double& sol){
Matrix M0, M1, M2, M3, M4;
M0= mats[0] * mats[1];
M1 = M0 + mats[1];
M2 = mats[2] + M1;
M3 = M2 - M1;
M4 = M1 * M2;
// This fails
sol = M2.sum();
// All of these below work
// sol = M0.sum();
// sol = M1.sum();
// sol = M3.sum();
// sol = M4.sum();
}
int main() {
std::vector>> inputs
{
{{0.1, 0.2}, {0.3, 0.4}},
{{0.1, 0.2}, {0.3, 0.4}},
{{0.1, 0.2}, {0.3, 0.4}}
};
size_t input_size = inputs.size();
size_t matrix_size = inputs[0].size();
std::vector>> results(input_size,
std::vector>(matrix_size, std::vector(matrix_size, 0.0)));
std::vector mats(input_size), dmats(input_size);
for (size_t mat_idx = 0; mat_idx < input_size; mat_idx++){
dmats[mat_idx].resize(matrix_size, matrix_size);
dmats[mat_idx].setZero();
for (size_t i = 0; i < matrix_size; i++){
for (size_t j = 0; j < matrix_size; j++){
mats[mat_idx](i, j) = inputs[mat_idx][i][j];
}
}
}
double y, lambda;
y = 0.0, lambda = 1.0;
__enzyme_autodiff((void*)enzyme_func_matrix,
enzyme_dup, mats.data(), dmats.data(),
enzyme_dup, &y, &lambda);
for (size_t mat_idx = 0; mat_idx < input_size; mat_idx++){
for (size_t i = 0; i < matrix_size; i++){
for (size_t j = 0; j < matrix_size; j++){
results[mat_idx][i][j] = dmats[mat_idx](i, j);
std::cout << "results[" << mat_idx << "][" << i << "][" << j << "] = "<< results[mat_idx][i][j] << std::endl;
}
}
}
}
```
compilation_error.txt
```text
In file included from ./example.cpp:3:
In file included from ../../build/debug/include/Eigen/Dense:1:
In file included from ../../build/debug/include/Eigen/Core:276:
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
const RhsNestedCleaned& rhs() const { return m_rhs; }
^
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
../../build/debug/include/Eigen/src/Core/Product.h:109:50: error: Enzyme: Cannot deduce type of load %0 = load ptr, ptr %m_rhs, align 8, !dbg !9787 vd:{[-1,0]:Float@double, [-1,8]:Float@double} start:0 size: 8 dt:Unknown
%m_rhs = getelementptr inbounds %"class.Eigen::Product", ptr %this, i32 0, i32 1, !dbg !9787: {[-1]:Pointer, [-1,0,0]:Float@double, [-1,0,8]:Float@double, [-1,1,0]:Float@double, [-1,1,8]:Float@double, [-1,2,0]:Float@double, [-1,2,8]:Float@double, [-1,3,0]:Float@double, [-1,3,8]:Float@double, [-1,4,0]:Float@double, [-1,4,8]:Float@double, [-1,5,0]:Float@double, [-1,5,8]:Float@double, [-1,6,0]:Float@double, [-1,6,8]:Float@double, [-1,7,0]:Float@double, [-1,7,8]:Float@double}, intvals: {}
%0 = load ptr, ptr %m_rhs, align 8, !dbg !9787: {[-1,0]:Float@double, [-1,8]:Float@double}, intvals: {}
ptr %this: {[-1]:Pointer, [-1,0]:Pointer, [-1,8,0]:Float@double, [-1,8,8]:Float@double, [-1,9,0]:Float@double, [-1,9,8]:Float@double, [-1,10,0]:Float@double, [-1,10,8]:Float@double, [-1,11,0]:Float@double, [-1,11,8]:Float@double, [-1,12,0]:Float@double, [-1,12,8]:Float@double, [-1,13,0]:Float@double, [-1,13,8]:Float@double, [-1,14,0]:Float@double, [-1,14,8]:Float@double, [-1,15,0]:Float@double, [-1,15,8]:Float@double}, intvals: {}
fatal error: too many errors emitted, stopping now [-ferror-limit=]
```
Contributor guide
Assessment
This issue has not been assessed yet.