https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96542
Andrew Macleod <amacleod at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #8 from Andrew Macleod <amacleod at redhat dot com> --- Range-ops uses wi_fold (implemented by each opcode) to individually fold subranges one at a time and then combines them. This patch first calls wi_fold_in_parts which checks if one of the subranges is small, and if so, further splits that subrange into constants. Currently, if a subrange is 4 or less values, then we call it individually for each of the 4 values. 4 was chosen as a reasonable tradeoff between excess work vs benefit. this gets all 3 cases now. fixed