40 lines
1.4 KiB
Diff
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]);
|