Why does "foo++;" compile to "subi Rd,lo8(-(1))" instead of "inc Rd"? I am keeping global register variables in registers below 16, which are not valid for subi so they get duplicated to perform the increment. I am preparing to check out the machine description for the avr target, but thought I would ask here before I go that deep.