----- Original Message ----- From: "Ian Lance Taylor" <iant@xxxxxxxxxx>What do you mean when you say that the instruction is not generated? Your code looks OK. Look at the .expand debugging dump (use -da to generate all the RTL debugging dump files); do you see the instruction there? If so, trace it forward to see what happens to it. IanIt's not generated, like it's not in the asm code. Instead, movsi_insn is used and bad asm code is generated. for c code : if (in1 == 0) out = in2; return out; I expect asm to look like this lw r2,4(r30) ; in2 lw r16,(r30) ; in1 movz r1, r2, r16 instead, code looks like this lw r2,4(r30) lw r16,(r30) movz r1,r2,r16 movn r1,r16,r16 expand debug file is in attach, I don't see that movsicc_expand is used... (although this is my first time to look at expand files) movsicc_insn first appears in short.c.11.ce1 can you see why pattern is not matched with expand?
Attachment:
short.c.00.expand
Description: Binary data
Attachment:
short.c.11.ce1
Description: Binary data