https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93535
Bug ID: 93535 Summary: slow float/double simple constant folding with -Ofast Product: gcc Version: 8.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hehaochen at hotmail dot com Target Milestone: --- Created attachment 47763 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47763&action=edit testcase slow float/double simple constant folding with -Ofast compared to -O3 Workload: Adobe benchmark C++ - simple_types_constant_folding.cpp - float simple constant folding - double simple constant folding (Homebrew GCC 8.3.0_2) g++-8 -O3 simple_types_constant_folding.cpp && ./a.out float simple constant folding: 7.40 sec (OK) double simple constant folding: 7.41 sec (OK) g++-8 -Ofast simple_types_constant_folding.cpp && ./a.out float simple constant folding: 8.39 sec SLOW double simple constant folding: 8.33 sec SLOW g++-8 -Ofast -fno-fast-math simple_types_constant_folding.cpp && ./a.out float simple constant folding: 7.43 sec (OK) double simple constant folding: 7.37 sec (OK) (Homebrew GCC 9.2.0_3) g++-9 -O3 simple_types_constant_folding.cpp && ./a.out float simple constant folding: 7.42 sec (OK) double simple constant folding: 7.43 sec (OK) g++-9 -Ofast simple_types_constant_folding.cpp && ./a.out float simple constant folding: 1.85 sec (OK) double simple constant folding: 7.43 sec (should be optimized more) g++-9 -Ofast -fno-fast-math simple_types_constant_folding.cpp && ./a.out float simple constant folding: 7.49 sec (OK) double simple constant folding: 7.51 sec (OK) while, in Apple clang version 11.0.0 (clang-1100.0.33.17): clang++ -O3 simple_types_constant_folding.cpp && ./a.out float simple constant folding: 7.59 sec (OK) double simple constant folding: 7.81 sec (OK) clang++ -Ofast simple_types_constant_folding.cpp && ./a.out float simple constant folding: 0.91 sec (OK) double simple constant folding: 0.90 sec (OK)