evaleev / libint

Libint: high-performance library for computing Gaussian integrals in quantum mechanics
Other
229 stars 95 forks source link

intel compiler and coulomb integrals c++17 #208

Closed JensWehner closed 3 years ago

JensWehner commented 3 years ago

With libint2.6. I get empty coulomb 2 electron coulomb integrals.

using icpc (ICC) 19.1.2.254 20200623 on ubuntu 20.04

this only happens with c++17 enabled. c++14 and older is fine.

https://github.com/votca/xtp/pull/684/checks?check_run_id=1943028346

clang and gcc work without a problem.

It happens in the -03 build and debug

evaleev commented 3 years ago

@JensWehner there used to be a bug in the Intel C++ compiler (see https://github.com/evaleev/libint/issues/118). It has been fixed, but perhaps not in the version you are using. See also https://github.com/evaleev/libint/issues/178

JensWehner commented 3 years ago

Thanks a lot that seems to be exactly the problem. Thanks. :)

JensWehner commented 3 years ago

Just as an addendum https://godbolt.org/z/EM4vPGn8T

The minimal example you posted failed for all intel compiler version 19.xx and below the 2021 versions are fine.

evaleev commented 3 years ago

@JensWehner thanks for the report ... yes, not surprising since their focus now seems to be on the llvm frontend-based toolchain. And rightly so :)

JensWehner commented 3 years ago

I want to update my report. So I do not exactly know which compiler compiler explorer uses under the hood. The new intel compiler namely icpx works flawlessly, but the new icpc compiler still gives the same problem.

So I guess compiler explorer uses the icpx compiler for the 2021 icc tag.