https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77344
Bug ID: 77344 Summary: Internal Compiler Error with arch knl Product: gcc Version: 6.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: matthew.thompson at nasa dot gov Target Milestone: --- Created attachment 39485 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39485&action=edit Tarball with offending code and GNUmakefile I have a code that when it is compiled with -march=knl -mtune=knl, causes an ICE (see output below). It doesn't ICE out with, say -march=haswell -mtune=intel. This is with GCC 6.1.0, I haven't tried 6.2.0 yet, but I'll try and get that built today. I have to attach a tarball because the offending code depends on other codes to compile. To test the fault, just run "make". This code does *not* make an executable as I included just the files necessary to throw the ICE. (444) $ gfortran -O3 -march=knl -mtune=knl -funroll-loops -ffixed-line-length-132 -fno-range-check -fPIC -ffpe-trap=zero,overflow -fbacktrace -falign-commons -save-temps -v -c sorad.F90 Using built-in specs. COLLECT_GCC=gfortran Target: x86_64-pc-linux-gnu Configured with: ../gcc-6.1.0/configure --prefix=/ford1/local/gcc/gcc-6.1.0-rhel6 --disable-multilib Thread model: posix gcc version 6.1.0 (GCC) COLLECT_GCC_OPTIONS='-O3' '-march=knl' '-mtune=knl' '-funroll-loops' '-ffixed-line-length-132' '-fno-range-check' '-fPIC' '-ffpe-trap=zero,overflow' '-fbacktrace' '-falign-commons' '-save-temps' '-v' '-c' /ford1/local/gcc/gcc-6.1.0-rhel6/libexec/gcc/x86_64-pc-linux-gnu/6.1.0/f951 sorad.F90 -cpp=sorad.f90 -quiet -v sorad.F90 -quiet -dumpbase sorad.F90 -march=knl -mtune=knl -auxbase sorad -O3 -version -funroll-loops -ffixed-line-length-132 -fno-range-check -fPIC -ffpe-trap=zero,overflow -fbacktrace -falign-commons -fintrinsic-modules-path /ford1/local/gcc/gcc-6.1.0-rhel6/lib/gcc/x86_64-pc-linux-gnu/6.1.0/finclude -o sorad.s GNU Fortran (GCC) version 6.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 6.1.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1, isl version 0.15 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/ford1/local/gcc/gcc-6.1.0-rhel6/lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../x86_64-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /ford1/local/gcc/gcc-6.1.0-rhel6/lib/gcc/x86_64-pc-linux-gnu/6.1.0/finclude /ford1/local/gcc/gcc-6.1.0-rhel6/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include /usr/local/include /ford1/local/gcc/gcc-6.1.0-rhel6/include /ford1/local/gcc/gcc-6.1.0-rhel6/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include-fixed /usr/include End of search list. GNU Fortran2008 (GCC) version 6.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 6.1.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1, isl version 0.15 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 sorad.F90:126:0: subroutine sorad (m,np,nb,cosz_dev,pl_dev,ta_dev,wa_dev,oa_dev,co2,& internal compiler error: in ix86_fp_cmp_code_to_pcmp_immediate, at config/i386/i386.c:23042 0xd06b6b ix86_fp_cmp_code_to_pcmp_immediate ../../gcc-6.1.0/gcc/config/i386/i386.c:23042 0xd06b6b ix86_cmp_code_to_pcmp_immediate ../../gcc-6.1.0/gcc/config/i386/i386.c:23053 0xd06b6b ix86_expand_mask_vec_cmp(rtx_def**) ../../gcc-6.1.0/gcc/config/i386/i386.c:23065 0xe999a5 gen_vec_cmpv16sfhi(rtx_def*, rtx_def*, rtx_def*, rtx_def*) ../../gcc-6.1.0/gcc/config/i386/sse.md:2851 0x9cfc88 maybe_expand_insn(insn_code, unsigned int, expand_operand*) ../../gcc-6.1.0/gcc/optabs.c:7032 0x9cfc88 expand_insn(insn_code, unsigned int, expand_operand*) ../../gcc-6.1.0/gcc/optabs.c:7063 0x9d0605 expand_vec_cmp_expr(tree_node*, tree_node*, rtx_def*) ../../gcc-6.1.0/gcc/optabs.c:5673 0x83e788 do_store_flag ../../gcc-6.1.0/gcc/expr.c:11146 0x83e788 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc-6.1.0/gcc/expr.c:9067 0x82ef8a expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc-6.1.0/gcc/expr.c:9577 0x836ca0 expand_expr ../../gcc-6.1.0/gcc/expr.h:256 0x836ca0 expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**, rtx_def**, expand_modifier) ../../gcc-6.1.0/gcc/expr.c:7563 0x83b85e expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc-6.1.0/gcc/expr.c:9368 0x82ef8a expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc-6.1.0/gcc/expr.c:9577 0x9d0124 expand_normal ../../gcc-6.1.0/gcc/expr.h:262 0x9d0124 expand_vec_cond_mask_expr(tree_node*, tree_node*, tree_node*, tree_node*, rtx_def*) ../../gcc-6.1.0/gcc/optabs.c:5563 0x9d04a4 expand_vec_cond_expr(tree_node*, tree_node*, tree_node*, tree_node*, rtx_def*) ../../gcc-6.1.0/gcc/optabs.c:5607 0x83c229 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc-6.1.0/gcc/expr.c:9358 0x75ab2e expand_gimple_stmt_1 ../../gcc-6.1.0/gcc/cfgexpand.c:3653 0x75ab2e expand_gimple_stmt ../../gcc-6.1.0/gcc/cfgexpand.c:3714 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.