]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix build for STORE_FLAG_VALUE<0 targets [PR118418]
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 13 Jan 2025 19:37:12 +0000 (19:37 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Mon, 13 Jan 2025 19:37:12 +0000 (19:37 +0000)
commita1a14ce3c39c25fecf052ffde063fc0ecfc2ffa3
tree57872d38095b4b9bd9cb58f1c1a2732c7ed7da52
parent107d5d682576e54963ddd36f3f21bc6b9506d278
Fix build for STORE_FLAG_VALUE<0 targets [PR118418]

In g:06c4cf398947b53b4bfc65752f9f879bb2d07924 I mishandled signed
comparisons of comparison results on STORE_FLAG_VALUE < 0 targets
(despite specifically referencing STORE_FLAG_VALUE in the commit
message).  There, (lt TRUE FALSE) is true, although (ltu FALSE TRUE)
still holds.

Things get messy with vector modes, and since those weren't the focus
of the original commit, it seemed better to punt on them for now.
However, punting means that this optimisation no longer feels like
a natural tail-call operation.  The patch therefore converts
"return simplify..." to the usual call-and-conditional-return pattern.

gcc/
PR target/118418
* simplify-rtx.cc (simplify_context::simplify_relational_operation_1):
Take STORE_FLAG_VALUE into account when handling signed comparisons
of comparison results.
gcc/simplify-rtx.cc