https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82518
--- Comment #38 from Christophe Lyon <clyon at gcc dot gnu.org> --- (In reply to Aldy Hernandez from comment #37) > (In reply to Christophe Lyon from comment #31) > > Created attachment 43352 [details] > > Reduced testcase > > > > I commented out most calls, since abort() is called from csub4. > > Can you also remove the csub8, isub4, and isub8 unused functions as well? > > I see you've commented out this in csub4: > > !! if (any(bb /= b)) call abort > > I assume this is irrelevant to the failure? > > Can you also verify that after these changes you have a revision of GCC for > which this reduced testcase succeeds (regardless of the vect cost model > rabbit hole), and a revision of GCC for which this fails? > > I'm trying to make sure all this removing of stuff didn't cause an > inconditional abort. I don't speak fortran, but I thought the program did: main-> call csub4-> call abort if some condition In my testing, removing all calls but csub4 from main is sufficient to make the program fail, and then it seems the first call to abort in csub4 is taken too. What would it change to remove csub8/isub4/isub8? (except not generating dead code, which is irrelevant to the current problem) > > Also, is this only reproducible with -g? I don't know, it's added by the torture harness. I wouldn't expect this to change code generation, though. > > BTW, no need to include the assembly. I should be able to generate it with > a cross ./cc1.