2022-01-25 Jakub Jelinek 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]);