https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104673
Bug ID: 104673 Summary: powerpc e500mc Error: unrecognized opcode: `isel' Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: judge.packham at gmail dot com Target Milestone: --- Created attachment 52503 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52503&action=edit assembly file emitted by GCC When building for powerpc with -mcpu=e500mc the generated assembly includes a ".machine ppc" directive which causes gas to ignore the command line -me500mc flag. This means that it decides any e500mc specific instructions are invalid. Attached is the generated assembly from a build with gcc 11.2 cross-compiled for powerpc. As you can see the .machine directive says ppc but when gas sees this it will reset it's internal state and decide the isel instruction is invalid. I think this might be an regression from https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=2d94f7dea9. GCC only seems to have a limited set of machines it will emit which don't match with what binutils uses.