https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65169
Alan Modra <amodra at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amodra at gmail dot com --- Comment #2 from Alan Modra <amodra at gmail dot com> --- I couldn't reproduce this using svn llvm rev 230301, gcc-5 20150223, and binutils 2.25.51.20150223. I was building on a power7 box (because that's where I happened to have my latest gcc build), so used -mcpu=power7 -mno-strict-align. That ought to trigger the same block move code as -mcpu=power8, and a quick visual inspection showed that to be the case. I'm guessing that the "s/break/ eak/" difference Markus sees comes from utils/TableGen/IntrinsicEmitter.cpp IntrinsicEmitter::EmitAttributes if (numAttrs) { OS << " NumAttrs = " << numAttrs << ";\n"; OS << " break;\n"; OS << " }\n"; My generated code for the above looked good, and ran properly on power7. -mcpu=power8 code didn't look much different. Markus, are you using gold? (I wasn't.) The strings are in a string merge section, and I'm wondering if gold miscalculates some string offset.