From: Jiufu Guo Date: Wed, 7 Sep 2022 05:32:55 +0000 (+0800) Subject: rs6000: remove unused splitter on const_scalar_int_operand X-Git-Tag: basepoints/gcc-14~4700 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea6e89e07f4223c8ac7877508c62bba368084999;p=thirdparty%2Fgcc.git rs6000: remove unused splitter on const_scalar_int_operand There are two splitters, both are calling rs6000_emit_set_const to emit instructions for constant building. One splitter checks `const_int_operand`, this splitter is always used. Another spitter checks `const_scalar_int_operand`, this one is never used now. Checking the history, that splitter is introduced around 1999 for HOST_BITS_PER_WIDE_INT=32, as below: (define_split [(set (match_operand:DI 0 "gpc_reg_operand" "") (match_operand:DI 1 "const_double_operand" ""))] "HOST_BITS_PER_WIDE_INT == 32 && TARGET_POWERPC64 && num_insns_constant (operands[1], DImode) > 1" And `HOST_BITS_PER_WIDE_INT == 32` is eliminated later, since it is `const_double_operand` can cover it. When wide_int is introduced, `const_double_operand` is replaced by `const_scalar_int_operand`. Now, HOST_BITS_PER_WIDE_INT is forced to 64, this splitter is safe to remove. gcc/ChangeLog: * config/rs6000/rs6000.md (const_scalar_int splitter): Remove. --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 85b97389d82..959fad23091 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -9712,18 +9712,6 @@ FAIL; }) -(define_split - [(set (match_operand:DI 0 "int_reg_operand_not_pseudo") - (match_operand:DI 1 "const_scalar_int_operand"))] - "TARGET_POWERPC64 && num_insns_constant (operands[1], DImode) > 1" - [(pc)] -{ - if (rs6000_emit_set_const (operands[0], operands[1])) - DONE; - else - FAIL; -}) - (define_split [(set (match_operand:DI 0 "altivec_register_operand") (match_operand:DI 1 "s5bit_cint_operand"))]