diff options
author | Andrew Stubbs <ams@baylibre.com> | 2025-07-09 14:59:20 +0000 |
---|---|---|
committer | Andrew Stubbs <ams@baylibre.com> | 2025-07-30 12:57:36 +0000 |
commit | f29755bd903a1234cff76066fb24793451b06524 (patch) | |
tree | eba70f0c1710b9188057153e5bfc0cf30b16c1e6 /gcc | |
parent | 476ff6a043c3aad033e9b450172dbe7621ff3157 (diff) | |
download | gcc-f29755bd903a1234cff76066fb24793451b06524.zip gcc-f29755bd903a1234cff76066fb24793451b06524.tar.gz gcc-f29755bd903a1234cff76066fb24793451b06524.tar.bz2 |
amdgcn: fix vec_ucmp infinite recursion
I suppose this pattern doesn't get used much! The unsigned compare was meant to
be defined using the signed compare pattern, but actually ended up trying to
recursively call itself. This patch fixes the issue in the obvious way.
gcc/ChangeLog:
* config/gcn/gcn-valu.md (vec_cmpu<mode>di_exec): Call gen_vec_cmp*,
not gen_vec_cmpu*.
(cherry picked from commit d8680bac95c68002d7e4b13ae1dab1116fdfefc6)
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/gcn/gcn-valu.md | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/gcn/gcn-valu.md b/gcc/config/gcn/gcn-valu.md index f49c1ed..71a3916 100644 --- a/gcc/config/gcn/gcn-valu.md +++ b/gcc/config/gcn/gcn-valu.md @@ -3792,9 +3792,9 @@ /* Unsigned comparisons use the same patterns as signed comparisons, except that they use unsigned operators (e.g. LTU vs LT). The '%E1' directive then does the Right Thing. */ - emit_insn (gen_vec_cmpu<mode>di_exec (operands[0], operands[1], - operands[2], operands[3], - operands[4])); + emit_insn (gen_vec_cmp<mode>di_exec (operands[0], operands[1], + operands[2], operands[3], + operands[4])); DONE; }) |