Skip to content

Enzyme compilation failure with eigen matrix #2654

@shadow-orange41

Description

@shadow-orange41

Environment:

  • OS:
  • Compiler: clang++ -std=c++17
  • Enzyme commit: 8cf040b

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
#include <iostream>
#include <enzyme/enzyme>
#include <Eigen/Dense>

using Matrix = Eigen::Matrix<double, 2, 2>;
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<std::vector<std::vector<double>>> 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<std::vector<std::vector<double>>> results(input_size,
        std::vector<std::vector<double>>(matrix_size, std::vector<double>(matrix_size, 0.0)));
 

    std::vector<Matrix> 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>((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

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

<analysis>
  %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: {}
</analysis>

    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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

../../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

<analysis>
  %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: {}
</analysis>

fatal error: too many errors emitted, stopping now [-ferror-limit=]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions