Running old code that uses logical operations (.AND., .OR.) in place of bitwise (IAND,IOR). This worked fine in PGI FORTRAN 13.x but doesn’t work in 19.3. I was told that there might be a compiler option that would make logical operations work in place of bitwise. True?
They are really two different things, just like in C & and && are different.
Are you trying to AND two integers, or two logicals? We have moved to LLVM compilers by default in 19.3, you might try the nollvm compilers which also come with 19.3.
I am using nollvm.
pgf77 13.x: opcode = ir .AND. X’ff’ and opcode = IAND(ir,X’ff’) give the same answer.
They do not give the same answer in 19.3 (nollvm)
I have thousands of occurrences of the former and would prefer not to have to rewrite them to the latter if possible. I read somewhere the -fdec option in Gnu will “fix” this. Is there an analogous option in PGI?
Please note what the Gfortran page https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html says about the -fdec option (emphasis added by me):
-fdec DEC compatibility mode. Enables extensions and other features that mimic the default behavior of older compilers (such as DEC). > These features are non-standard and should be avoided at all costs> .