Issue 137000
Summary [flang][LoongArch] Miscomparison error in spec2006 416.gamess with size=ref and optimization levels "-O2"/"-O3"/"-Ofast"
Labels flang
Assignees
Reporter azuresky01
    Tested OS: Debian sid/experimental loong64 installed with llvm 20.1.3

Optimization setting:

```
COPTIMIZE      = -Ofast -march=la464 -flto=auto -fno-strict-aliasing
FOPTIMIZE      = -Ofast -march=la464 -flto=auto
```

When I test spec2006 416.gamess with above optimization setting and ref size, I met the following error:

```
run_base_ref_llvm-64bit-test.0000 -c 1 -e compare.err -o compare.stdout -f compare.cmd

****************************************
Contents of triazolium.err
****************************************
Fortran STOP: IN ABRT
IEEE arithmetic exceptions signaled: INEXACT INVALID

****************************************

****************************************
Contents of h2ocu2+.gradient.err
****************************************
Fortran STOP
IEEE arithmetic exceptions signaled: INEXACT INVALID UNDERFLOW

****************************************

****************************************
Contents of cytosine.2.err
****************************************
Fortran STOP
IEEE arithmetic exceptions signaled: INEXACT INVALID

****************************************

*** Miscompare of triazolium.out
```

the content of triazolium.out.mis in this example:

```
0654:   ----- FROZEN CORE ENERGY       =  -1092.06138801
 ----- FROZEN CORE ENERGY       =  -1089.34489867
 ^
0679:   STATE   1  ENERGY= -585.3957141489  S=  0.00  SZ=  0.00  SPACE SYM=A'  
        STATE   1 ENERGY=      -582.6821224495  S=  0.00  SZ=  0.00  SPACE SYM=A'  
 ^
0685:   0.9779593
        0.9781004
 ^
0686:  -0.0838917
       -0.0834754
 ^
0687:  -0.0700851
       -0.0703953
                ^
0688: -0.0681958
       -0.0681070
                ^
0689:   0.0622926
 0.0622399
                ^
0690:   0.0622926
        0.0622399
 ^
0691:  -0.0566227
       -0.0564314
                ^
0703: STATE=   1   ENERGY=     -585.3957141489   WEIGHT= 1.00000   S=  0.00
 STATE=   1   ENERGY=     -582.6821224495   WEIGHT= 1.00000   S= 0.00
```

The above error still appears when I change the optimization level of Fortran part to `-O3` or `-O2`. If the optimization level of Fortran part is `-O1` or lower, the program can run smoothly.

The above error only appears with ref size, with test/train sizes the program can run smoothly at optimization level of Fortran part `-Ofast`.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to