gcc/gcc12-pr94193.patch

40 lines
1.4 KiB
Diff

2022-01-25 Jakub Jelinek <jakub@redhat.com>
PR target/94193
* config/rs6000/rs6000.md (feclearexceptsi, feraiseexceptsi):
Use general_operand instead of const_int_operand, drop constraint
and FAIL if operands[1] is not CONST_INT_P.
--- gcc/config/rs6000/rs6000.md.jj 2022-01-25 05:48:01.497340303 +0100
+++ gcc/config/rs6000/rs6000.md 2022-01-25 13:48:13.752709482 +0100
@@ -6959,12 +6959,12 @@ (define_expand "fegetroundsi"
;; Because of these restrictions, this only expands on the desired
;; cases and fallback to a call to libc on any other case.
(define_expand "feclearexceptsi"
- [(use (match_operand:SI 1 "const_int_operand" "n"))
+ [(use (match_operand:SI 1 "general_operand"))
(set (match_operand:SI 0 "gpc_reg_operand")
(const_int 0))]
"TARGET_HARD_FLOAT"
{
- if (!OPTION_GLIBC)
+ if (!OPTION_GLIBC || !CONST_INT_P (operands[1]))
FAIL;
unsigned int fe = INTVAL (operands[1]);
@@ -6999,12 +6999,12 @@ (define_expand "feclearexceptsi"
;; Because of these restrictions, this only expands on the desired
;; cases and fallback to a call to libc on any other case.
(define_expand "feraiseexceptsi"
- [(use (match_operand:SI 1 "const_int_operand" "n"))
+ [(use (match_operand:SI 1 "general_operand"))
(set (match_operand:SI 0 "gpc_reg_operand")
(const_int 0))]
"TARGET_HARD_FLOAT"
{
- if (!OPTION_GLIBC)
+ if (!OPTION_GLIBC || !CONST_INT_P (operands[1]))
FAIL;
unsigned int fe = INTVAL (operands[1]);