[Bug target/60554] redundant instruction is generated for setting the flags on x86
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Jan 11 08:23:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60554
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Luchezar Belev from comment #2)
> sorry, the above code to be correct "setg %al" should be "seta %al" instead.
>
> also in the compiler-generated code, the testl instruction is still
> redundant, but when it is removed the following "setg %al" should be
> replaced with "seta %al".
> Maybe this is too complicated for a compiler to figure out though.
None of the above will work. Please see available conditions for the SETcc
instruction [1]. You can try with a debugger to see which flags are set in
various operations for some characteristic input values and how SETcc insn
reacts to those flags.
[1] http://www.felixcloutier.com/x86/SETcc.html
More information about the Gcc-bugs
mailing list