This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
----- Original Message ----- From: "Ian Lance Taylor" <iant@google.com>
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.
Ian
It'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
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |