Created attachment 39767 [details] Source files module.F90 and pushe.f90 (in bug.tar) As a basic sanity check: > ftn -c module.F90 > ftn -c pushe.f90 > module swap PrgEnv-cray PrgEnv-gnu > ftn -c module.F90 > ftn -c pushe.f90 > ftn -c -O3 module.F90 > ftn -c -O3 pushe.f90 > > module list Currently Loaded Modulefiles: ... 12) gcc/6.2.0 13) craype-network-aries 14) craype-sandybridge Now checking KNL target: > module swap craype-sandybridge craype-mic-knl > ftn -c -O3 module.F90 > ftn -c -O3 pushe.f90 /tmp/cc4TRnzd.s: Assembler messages: /tmp/cc4TRnzd.s:61: Error: bad register name `%xmm24' /tmp/cc4TRnzd.s:63: Error: bad register name `%xmm24' /tmp/cc4TRnzd.s:65: Error: bad register name `%xmm16' ... [many more lines of messages]
Compiling these files appears to have a problem when the target is set to Intel KNL. The compiler appears to be generating incorrect register and instruction names, leading to assembler messages. See with gfortran 6.2. Compiles OK with any of these changes: 1) Change target to Sandybridge 2) Remove the -O3 option 3) Use a different vendor compiler (Cray)
You need recent enough assembler to support the extra registers available with KNL. What is your binutils version?
It would appear the customer system has > /usr/bin/as --version GNU assembler (GNU Binutils; SUSE Linux Enterprise 12) 2.25.0
Confirmation from the customer system: GNU assembler (GNU Binutils; SUSE Linux Enterprise 12) 2.25.0 Copyright (C) 2014 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty.
Closing as invalid as you really need a newer binutils.