Skip to content

[flang][LoongArch] Miscomparison error in spec2006 416.gamess with size=ref and optimization levels "-O2"/"-O3"/"-Ofast" #137000

Open
@azuresky01

Description

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    backend:loongarchflangFlang issues not falling into any other category

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions