https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85559
Bug ID: 85559 Summary: [meta-bug] Improve conditional move Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: meta-bug Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com Depends on: 22568, 29144, 46279, 56309, 65492, 78947, 80520, 80874, 81456, 82666, 82858, 83610, 85390 Target Milestone: --- Target: x86_64-*-*, i?86-*-* cmov generation should be improved. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=22568 [Bug 22568] Should use cmov in some stituations https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29144 [Bug 29144] Missing if-conversion. If-conversion dependent on operand order. Inconsistent if-conversion. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46279 [Bug 46279] cmov not hoisted out of the loop https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56309 [Bug 56309] conditional moves instead of compare and branch result in almost 2x slower code https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65492 [Bug 65492] Bad optimization in -O3 due to if-conversion and/or unrolling https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78947 [Bug 78947] sub-optimal code for (bool)(int ? int : int) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80520 [Bug 80520] [7/8/9 Regression] Performance regression from missing if-conversion https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80874 [Bug 80874] gcc does not emit cmov for minmax https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81456 [Bug 81456] [7/8/9 Regression] x86-64 optimizer makes wrong decision when optimizing for size https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82666 [Bug 82666] [7/8/9 regression]: sum += (x>128/9 ? x : 0) puts the cmov on the critical path (at -O2) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82858 [Bug 82858] __builtin_add_overflow() generates suboptimal code with unsigned types on x86 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83610 [Bug 83610] __builtin_expect sometimes is ignored https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85390 [Bug 85390] possible missed optimisation / regression from 6.3 with conditional expression