https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116145
--- Comment #4 from ktkachov at gcc dot gnu.org --- Intersting, thanks for the background. The bigger issue I was seeing was with a string-matching loop like https://godbolt.org/z/E7b13915E where the constant pool load is a reasonable codegen decision, but unfortunately every iteration of the loop reloads the constant which would hurt in a tight inner loop. So perhaps my problem is that the constant-pool loads are not being considered loop invariant, or something is sinking them erroneously