[gcc r15-1206] LoongArch: Fix mode size comparision in loongarch_expand_conditional_move
Xi Ruoyao
xry111@gcc.gnu.org
Wed Jun 12 12:39:20 GMT 2024
https://gcc.gnu.org/g:53c703888eb51314f762c8998dc9215871b12722
commit r15-1206-g53c703888eb51314f762c8998dc9215871b12722
Author: Xi Ruoyao <xry111@xry111.site>
Date: Wed Jun 12 11:01:53 2024 +0800
LoongArch: Fix mode size comparision in loongarch_expand_conditional_move
We were comparing a mode size with word_mode, but word_mode is an enum
value thus this does not really make any sense. (Un)luckily E_DImode
happens to be 8 so this seemed to work, but let's make it correct so it
won't blow up when we add LA32 support or add another machine mode...
gcc/ChangeLog:
* config/loongarch/loongarch.cc
(loongarch_expand_conditional_move): Compare mode size with
UNITS_PER_WORD instead of word_mode.
Diff:
---
gcc/config/loongarch/loongarch.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc
index 1b6df6a43650..6ec3ee625026 100644
--- a/gcc/config/loongarch/loongarch.cc
+++ b/gcc/config/loongarch/loongarch.cc
@@ -5352,7 +5352,7 @@ loongarch_expand_conditional_move (rtx *operands)
loongarch_emit_float_compare (&code, &op0, &op1);
else
{
- if (GET_MODE_SIZE (GET_MODE (op0)) < word_mode)
+ if (GET_MODE_SIZE (GET_MODE (op0)) < UNITS_PER_WORD)
{
promote_op[0] = (REG_P (op0) && REG_P (operands[2]) &&
REGNO (op0) == REGNO (operands[2]));
More information about the Gcc-cvs
mailing list