[Bug target/97437] builtins subcarry and addcarry still not generate the right code. Not get optimized to immediate value
segher at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 15 13:57:41 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97437
--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Trying 7 -> 9:
7: r97:SI=0x2a
9: {flags:CCC=cmp(r97:SI+r98:SI,r97:SI);r99:SI=r97:SI+r98:SI;}
REG_DEAD r98:SI
REG_DEAD r97:SI
Failed to match this instruction:
(parallel [
(set (reg:CC 17 flags)
(compare:CC (reg:SI 98 [ *b_12(D) ])
(const_int -42 [0xffffffffffffffd6])))
(set (reg:SI 99)
(plus:SI (reg:SI 98 [ *b_12(D) ])
(const_int 42 [0x2a])))
])
On rs6000 we have four special variants for the immediate add-with-carry
insn patterns: imm 0, imm -1, imm pos, imm neg. All of these have
different canonical RTL.
More information about the Gcc-bugs
mailing list