https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93430
Bug ID: 93430 Summary: [10 Regression] ICE in final_scan_insn_1, at final.c:3073 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- I see ICE in the following code snippet reduced from a polyhedron benchmark: $ cat doduc.f90 IMPLICIT DOUBLE PRECISION(A-Z) COMMON V0012 , DIFref0 , DIFmic0 , V00001 ,DTPre , DTPhy , DTTemp , DTChan , DTDis DTTemp = V0012 DTDis = V0012 DTChan = V0012 DTPhy = V0012 sens = V00001 IF ( DABS0.GT.eps ) dtp = sens DTPre = dtp DATA a00 , a01 , a02 , a03 , a04 , a05 , a06 , a07 , a08 , a09 , a010 , a011 , a012/1.0421485616135 , & 3.7989819258871 , 1.0809520514321 , 1.7199071099232 , 1.7003453661702 , & 1.1093079504746 , 4.9305639341012 , 3.1127728952968 , 4.9182825188505 , & 4.4404482566015 , 1.5665047149903 , 5.6075256366923 , 4.6890466767990/ END FUNCTION S00093() DOUBLE PRECISION tabpwl(32) , tabb(32) DATA tabpwl/0.000 , 0.007 , 0.010 , 0.012 , 0.015 , 0.020 , & 0.025 , 0.030 , 0.035 , 0.040 , 0.050 , 0.060 , 0.070 , 0.080 , 0.100 , 0.120 , 0.150 , 0.200 , 0.250 , 0.300 , & 0.000452 , 0.000447 , 0.000416 , 0.000392 , 0.000384 , 0.000371 , 0.000354 , 0.000335 , 0.000322 , 0.000307 , & 0.000287 , 0.000275/ DATA tabb/0.029 , 0.037 , 0.047 , 0.056 , 0.067 , 0.080 , 0.090 , & 0.096 , 0.108 , 0.120 , 0.132 , 0.144 , 0.156 , 0.168 , 0.184 , 0.200 , 0.220 , 0.245 , 0.270 , 0.295 , 0.325 , & 0.355 , 0.375 , 0.410 , 0.450 , 0.480 , 0.510 , 0.550 , 0.620 , 0.700 , 0.800 , 0.910/ DATA d0 , d1 , d2 , d3 , d4 , d5/ 501.911804844 , 643.013652461 , 254.053681062 , 53.4172368776 , & 5.47296691662 , .227574393371/ DATA e0 , e1 , e2 , e3 , e4 , e5 , e6/ 983.676282822 , 2649.64781997 , 1365.75884763 , 373.419845898 , & 181216.034989 , 23651.1207875 , 1029.9067531/ END $ gcc -O3 -march=znver2 doduc.f90 -c doduc.f90:14:0: 14 | END | Error: could not split insn (insn:TI 17 37 19 2 (set (reg:V4DF 20 xmm0 [orig:92 vect__6.9 ] [92]) (vec_select:V4DF (mem/c:V4DF (symbol_ref:DI ("__BLNK__") [flags 0x2] <var_decl 0x7ffff7fc7ab0 __BLNK__>) [1 MEM <vector(4) real(kind=8)> [(real(kind=8) *)&__BLNK__]+0 S32 A256]) (parallel [ (const_int 0 [0]) repeated x4 ]))) "doduc.f90":1:0 4926 {*avx_vperm_broadcast_v4df} (expr_list:REG_EQUIV (mem/c:V4DF (const:DI (plus:DI (symbol_ref:DI ("__BLNK__") [flags 0x2] <var_decl 0x7ffff7fc7ab0 __BLNK__>) (const_int 40 [0x28]))) [1 MEM <vector(4) real(kind=8)> [(real(kind=8) *)&__BLNK__ + 40B]+0 S32 A64]) (nil))) during RTL pass: final doduc.f90:14:0: internal compiler error: in final_scan_insn_1, at final.c:3073 0x6d6597 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/marxin/Programming/gcc/gcc/rtl-error.c:108 0x659456 final_scan_insn_1 /home/marxin/Programming/gcc/gcc/final.c:3073 0xb3f1db final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) /home/marxin/Programming/gcc/gcc/final.c:3152 0xb3f4a9 final_1 /home/marxin/Programming/gcc/gcc/final.c:2020 0xb3fe04 rest_of_handle_final /home/marxin/Programming/gcc/gcc/final.c:4658 0xb3fe04 execute /home/marxin/Programming/gcc/gcc/final.c:4736 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Started with r10-6215-g5d782a8d909c5cc472c911c0ab4de0b890aad868