https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127647
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Zen4 w/ -Ofast -march=znver4: 5.44% 31188 tonto_base.amd6 tonto_base.amd64-m64-gcc42-nn [.] __shell2_module_MOD_make_ft_1 ◆ 5.38% 30694 tonto_peak.amd6 tonto_peak.amd64-m64-gcc42-nn [.] __shell2_module_MOD_make_ft_1 ▒ 2.77% 15595 tonto_peak.amd6 libm.so.6 [.] __sincos_fma 3.32% 18717 tonto_peak.amd6 tonto_peak.amd64-m64-gcc42-nn [.] __reflectionvec_module_MOD_indices 0.42% 2379 tonto_base.amd6 tonto_base.amd64-m64-gcc42-nn [.] __reflectionvec_module_MOD_indices 0.85% 4872 tonto_base.amd6 libm.so.6 [.] __sincos_fma But perf sucks, it doesn't have proper source locations for me. effect on loops: -marchingcube.fppized.f90:1496:12: optimized: epilogue loop vectorized using 16 byte vectors and unroll factor 4 -marchingcube.fppized.f90:1496:12: optimized: epilogue loop vectorized using 16 byte vectors and unroll factor 4 effect on BB vectorization: -atom.fppized.f90:1427:56: optimized: basic block part vectorized using 16 byte vectors -atom.fppized.f90:1429:37: optimized: basic block part vectorized using 16 byte vectors -atom.fppized.f90:2620:91: optimized: basic block part vectorized using 16 byte vectors -atom.fppized.f90:2620:91: optimized: basic block part vectorized using 16 byte vectors -atom.fppized.f90:2645:101: optimized: basic block part vectorized using 16 byte vectors -atom.fppized.f90:2645:101: optimized: basic block part vectorized using 16 byte vectors -basis.fppized.f90:650:56: optimized: basic block part vectorized using 16 byte vectors -basis.fppized.f90:652:37: optimized: basic block part vectorized using 16 byte vectors -binmat.fppized.f90:161:31: optimized: basic block part vectorized using 16 byte vectors -binmat.fppized.f90:173:37: optimized: basic block part vectorized using 16 byte vectors -binmat.fppized.f90:173:37: optimized: basic block part vectorized using 16 byte vectors -binvec.fppized.f90:186:27: optimized: basic block part vectorized using 16 byte vectors -cluster.fppized.f90:1316:14: optimized: basic block part vectorized using 16 byte vectors -cluster.fppized.f90:1350:14: optimized: basic block part vectorized using 16 byte vectors -cluster.fppized.f90:1391:9: optimized: basic block part vectorized using 16 byte vectors -cluster.fppized.f90:1751:60: optimized: basic block part vectorized using 16 byte vectors -cluster.fppized.f90:2005:61: optimized: basic block part vectorized using 16 byte vectors -coppensbasis.fppized.f90:706:56: optimized: basic block part vectorized using 16 byte vectors -coppensbasis.fppized.f90:708:37: optimized: basic block part vectorized using 16 byte vectors -coppensorbital.fppized.f90:705:56: optimized: basic block part vectorized using 16 byte vectors -coppensorbital.fppized.f90:707:37: optimized: basic block part vectorized using 16 byte vectors -cpxmat.fppized.f90:528:31: optimized: basic block part vectorized using 16 byte vectors -cpxmat.fppized.f90:528:31: optimized: basic block part vectorized using 16 byte vectors -cpxmat.fppized.f90:528:31: optimized: basic block part vectorized using 16 byte vectors -cpxmat.fppized.f90:540:37: optimized: basic block part vectorized using 16 byte vectors -cpxmat3.fppized.f90:136:36: optimized: basic block part vectorized using 16 byte vectors -cpxmat4.fppized.f90:136:41: optimized: basic block part vectorized using 16 byte vectors -cpxmat4.fppized.f90:148:53: optimized: basic block part vectorized using 16 byte vectors -cpxmat4.fppized.f90:148:53: optimized: basic block part vectorized using 16 byte vectors -cpxmat5.fppized.f90:134:46: optimized: basic block part vectorized using 16 byte vectors -cpxmat5.fppized.f90:146:61: optimized: basic block part vectorized using 16 byte vectors -diis.fppized.f90:878:39: optimized: basic block part vectorized using 8 byte vectors -diis.fppized.f90:878:39: optimized: basic block part vectorized using 8 byte vectors -diis.fppized.f90:878:39: optimized: basic block part vectorized using 8 byte vectors -diis.fppized.f90:878:39: optimized: basic block part vectorized using 8 byte vectors -diis.fppized.f90:878:39: optimized: basic block part vectorized using 8 byte vectors -intmat.fppized.f90:453:31: optimized: basic block part vectorized using 16 byte vectors -intmat.fppized.f90:465:37: optimized: basic block part vectorized using 16 byte vectors -intmat.fppized.f90:465:37: optimized: basic block part vectorized using 16 byte vectors -intmat3.fppized.f90:140:36: optimized: basic block part vectorized using 16 byte vectors -intvec.fppized.f90:1465:24: optimized: basic block part vectorized using 16 byte vectors -intvec.fppized.f90:404:27: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1243:80: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1246:79: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1246:79: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1246:79: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1246:79: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1392:84: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1393:93: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1394:96: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1395:104: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:1396:91: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:2188:67: optimized: basic block part vectorized using 16 byte vectors -isosurface.fppized.f90:2317:43: optimized: basic block part vectorized using 16 byte vectors -lapack.f90:10846:7: optimized: basic block part vectorized using 16 byte vectors -lapack.f90:4618:7: optimized: basic block part vectorized using 16 byte vectors -lapack.f90:5115:7: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:11473:51: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:11480:50: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:11482:51: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:12192:92: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13487:51: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13487:51: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13581:63: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13582:62: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13583:62: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13584:61: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13588:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13588:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13588:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13588:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13589:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13589:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13589:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13589:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13590:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13590:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13590:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:13590:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:14976:35: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:14979:35: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:15039:64: optimized: basic block part vectorized using 32 byte vectors -mol.fppized.f90:15320:80: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16184:83: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16207:93: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16246:104: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16248:104: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16250:88: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16300:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16382:99: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16385:107: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16416:86: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16424:94: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16572:97: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16870:94: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:16931:100: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17022:101: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17087:109: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17181:51: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17273:50: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17274:19: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17600:98: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:17906:104: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:18057:107: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:18060:116: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:18087:93: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:18090:102: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:19909:65: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:19925:62: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4321:59: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4322:58: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4330:60: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4335:72: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4342:68: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4343:67: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4350:69: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4470:62: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4484:63: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4495:58: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4501:57: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4510:59: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4518:71: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4527:67: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4533:66: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:4541:68: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:9128:77: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:9129:77: optimized: basic block part vectorized using 16 byte vectors -mol.fppized.f90:9130:77: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:1354:33: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:1365:49: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:3590:67: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:3590:67: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:4184:57: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:4194:60: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:4202:52: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:4215:40: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:4223:42: optimized: basic block part vectorized using 16 byte vectors -mol_main.fppized.f90:4246:40: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1198:38: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1204:48: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1208:52: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1213:52: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1393:73: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1627:39: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:1642:54: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:749:40: optimized: basic block part vectorized using 16 byte vectors -pointgroup.fppized.f90:987:48: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:2784:29: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:3477:50: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:3477:50: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:783:31: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:783:31: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:783:31: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:783:31: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:783:31: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:795:37: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:795:37: optimized: basic block part vectorized using 16 byte vectors -realmat.fppized.f90:795:37: optimized: basic block part vectorized using 16 byte vectors -realmat3.fppized.f90:227:36: optimized: basic block part vectorized using 16 byte vectors -realmat3vec.fppized.f90:162:27: optimized: basic block part vectorized using 16 byte vectors -realmat4.fppized.f90:142:40: optimized: basic block part vectorized using 16 byte vectors -realmat4.fppized.f90:142:40: optimized: basic block part vectorized using 16 byte vectors -realmat4.fppized.f90:163:52: optimized: basic block part vectorized using 16 byte vectors -realmat4.fppized.f90:163:52: optimized: basic block part vectorized using 16 byte vectors -realmat5.fppized.f90:134:46: optimized: basic block part vectorized using 16 byte vectors -realmat5.fppized.f90:146:61: optimized: basic block part vectorized using 16 byte vectors -realvec.fppized.f90:2212:44: optimized: basic block part vectorized using 16 byte vectors -realvec.fppized.f90:2224:48: optimized: basic block part vectorized using 16 byte vectors -realvec.fppized.f90:546:27: optimized: basic block part vectorized using 16 byte vectors -reflection.fppized.f90:740:56: optimized: basic block part vectorized using 16 byte vectors -reflection.fppized.f90:742:37: optimized: basic block part vectorized using 16 byte vectors -reflectionvec.fppized.f90:1813:39: optimized: basic block part vectorized using 16 byte vectors -reflectionvec.fppized.f90:972:48: optimized: basic block part vectorized using 8 byte vectors -roby.fppized.f90:1329:64: optimized: basic block part vectorized using 16 byte vectors -roby.fppized.f90:1329:64: optimized: basic block part vectorized using 16 byte vectors -roby.fppized.f90:1629:53: optimized: basic block part vectorized using 16 byte vectors -roby.fppized.f90:1630:53: optimized: basic block part vectorized using 16 byte vectors -roby.fppized.f90:1682:57: optimized: basic block part vectorized using 16 byte vectors -roby.fppized.f90:1683:57: optimized: basic block part vectorized using 16 byte vectors -shell.fppized.f90:693:56: optimized: basic block part vectorized using 16 byte vectors -shell.fppized.f90:695:37: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2452:61: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2458:63: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2565:67: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2577:69: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2592:67: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2601:69: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2707:67: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2719:69: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2734:67: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:2743:69: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3422:62: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3427:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3427:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3446:62: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3451:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3451:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3536:62: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3541:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3541:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3560:62: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3565:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3565:72: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3603:78: optimized: basic block part vectorized using 16 byte vectors -shell2.fppized.f90:3608:72: optimized: basic block part vectorized using 16 byte vectors -slaterbasis.fppized.f90:680:47: optimized: basic block part vectorized using 16 byte vectors -slaterbasis.fppized.f90:744:56: optimized: basic block part vectorized using 16 byte vectors -slaterbasis.fppized.f90:746:37: optimized: basic block part vectorized using 16 byte vectors -slatershell.fppized.f90:766:56: optimized: basic block part vectorized using 16 byte vectors -slatershell.fppized.f90:768:37: optimized: basic block part vectorized using 16 byte vectors -spacegroup.fppized.f90:2014:19: optimized: basic block part vectorized using 16 byte vectors -spacegroup.fppized.f90:2031:19: optimized: basic block part vectorized using 16 byte vectors -spacegroup.fppized.f90:2206:44: optimized: basic block part vectorized using 16 byte vectors -spacegroup.fppized.f90:2206:44: optimized: basic block part vectorized using 16 byte vectors -spacegroup.fppized.f90:2328:81: optimized: basic block part vectorized using 8 byte vectors -spacegroup.fppized.f90:2334:57: optimized: basic block part vectorized using 8 byte vectors -spacegroup.fppized.f90:2366:38: optimized: basic block part vectorized using 16 byte vectors -textfile.fppized.f90:4668:53: optimized: basic block part vectorized using 32 byte vectors -textfile.fppized.f90:4723:52: optimized: basic block part vectorized using 32 byte vectors -textfile.fppized.f90:4752:49: optimized: basic block part vectorized using 32 byte vectors
