]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: remove unused splitter on const_scalar_int_operand
authorJiufu Guo <guojiufu@linux.ibm.com>
Wed, 7 Sep 2022 05:32:55 +0000 (13:32 +0800)
committerJiufu Guo <guojiufu@linux.ibm.com>
Wed, 7 Sep 2022 05:35:18 +0000 (13:35 +0800)
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.

gcc/config/rs6000/rs6000.md

index 85b97389d82c419fad7a0b787bb045968eee64d0..959fad23091016273541c0fb6e8cb40a33863eb2 100644 (file)
     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"))]