diff options
author | Jeff Law <jlaw@ventanamicro.com> | 2023-08-08 15:32:38 -0600 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2023-08-08 15:37:34 -0600 |
commit | 20659be04c2749f9f47b085f1789eee0d145fb36 (patch) | |
tree | fc1ec1ef9127df505df4630d18ca336b1c2031fd /gcc/tree-vectorizer.h | |
parent | a263152643bbecaf02d68dfd8d5792e77f356154 (diff) | |
download | gcc-20659be04c2749f9f47b085f1789eee0d145fb36.zip gcc-20659be04c2749f9f47b085f1789eee0d145fb36.tar.gz gcc-20659be04c2749f9f47b085f1789eee0d145fb36.tar.bz2 |
[committed] [RISC-V] Fix bug in condition canonicalization for zicond
Vineet's glibc build triggered an ICE building glibc with the latest zicond
bits. It's a minor issue in the canonicalization of the condition.
When we need to canonicalize the condition we use an SCC insn to handle the
primary comparison with the output going into a temporary with the final value
of 0/1 which we can then use in a zicond instruction.
The mode of the newly generated temporary was taken from mode of the final
destination. That's simply wrong. The mode of the condition needs to be
word_mode.
This patch fixes that minor problem and adds a suitable testcase.
gcc/
* config/riscv/riscv.cc (riscv_expand_conditional_move): Use word_mode
for the temporary when canonicalizing the condition.
gcc/testsuite
* gcc.target/riscv/zicond-ice-1.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions