https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71201
Bug ID: 71201 Summary: PowerPC XXPERM instruction fails on ISA 3.0 system. Product: gcc Version: 6.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Target Milestone: --- GCC 6.1 added support for the XXPERM instruction for the PowerPC ISA 3.0. The XXPERM instruction is essentially a 4 operand instruction, with only 3 operands in the instruction (the target register overlaps with the first input register). The Power9 hardware has fusion support where if the instruction that precedes the XXPERM is a XXLOR move instruction to set the first input argument, it is fused with the XXPERM. I added code to support this fusion. Unfortunately, in running the testsuite on the power9 simulator, we discovered that the test gcc.c-torture/execute/pr56866.c would fail because the fusion alternatives confused the register allocator and/or the passes after the register allocator.