blob: 57de82e38cab6ddec4b5ffc6d8ed3398f40444a6 [file] [log] [blame] [edit]
// RUN: if [ %llvmver -ge 11 ]; then %clang++ -std=c++17 -O0 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 11 ]; then %clang++ -std=c++17 -O1 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 11 ]; then %clang++ -std=c++17 -O2 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 11 ]; then %clang++ -std=c++17 -O3 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 12 ]; then %clang++ -std=c++17 -O0 %s -S -emit-llvm -o - %newLoadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 12 ]; then %clang++ -std=c++17 -O1 %s -S -emit-llvm -o - %newLoadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 12 ]; then %clang++ -std=c++17 -O2 %s -S -emit-llvm -o - %newLoadClangEnzyme | %lli - ; fi
// RUN: if [ %llvmver -ge 12 ]; then %clang++ -std=c++17 -O3 %s -S -emit-llvm -o - %newLoadClangEnzyme | %lli - ; fi
// XFAIL: *
#include "../test_utils.h"
#include <vector>
#include <enzyme/enzyme>
int main() {
auto elasticity_kernel = [](const std::vector<double> &dudxi,
const std::vector<double> &J,
const double &w)
{
auto r = dudxi;
return r;
};
std::vector<double> dudxi(4), s_dudxi(4), J(4);
double w = 1.0;
enzyme::get<0>
(enzyme::autodiff<enzyme::Forward,
enzyme::DuplicatedNoNeed<std::vector<double>>>
(+elasticity_kernel,
enzyme::Duplicated<std::vector<double> *>{&dudxi, &s_dudxi},
enzyme::Const<std::vector<double> *>{&J},
enzyme::Const<double*>{&w}));
return 0;
}