https://gcc.gnu.org/g:7db40905669ff65ce1633ca5d093f50702affe56
commit r17-4925-g7db40905669ff65ce1633ca5d093f50702affe56 Author: Max Filippov <[email protected]> Date: Sun Oct 4 08:40:21 2026 -0700 xtensa: fix ICE when building libgcc with -mauto-litpools The commit r17-3780-ga5da203dd959 introduced a regression that results in the following kind of ICE when DF mode value 0 is loaded into AR registers: gcc/libgcc/libgcc2.c:2746:1: error: unrecognizable insn: (insn 1401 775 1402 79 (set (reg:SF 12 a12) (const_int 0 [0])) "gcc/libgcc/libgcc2.c":2719:8 -1 (nil)) during RTL pass: split2 This happens because the condition in the `move_fp_operand` that allows matching 0 as a constant for auto litpool has been changed from `CONSTANT_P` to `CONST_DOUBLE_P`, but the code that splits DF mode constant 0 produces const_int. gcc/ * config/xtensa/predicates.md (move_fp_operand): Use CONSTANT_P instead of CONST_DOUBLE_P. Diff: --- gcc/config/xtensa/predicates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/xtensa/predicates.md b/gcc/config/xtensa/predicates.md index b04a34f263c1..ff678b92c5d1 100644 --- a/gcc/config/xtensa/predicates.md +++ b/gcc/config/xtensa/predicates.md @@ -154,7 +154,7 @@ (match_test "satisfies_constraint_Gz (op) || satisfies_constraint_Gc (op) || ((TARGET_CONST16 || TARGET_AUTO_LITPOOLS) - && CONST_DOUBLE_P (op))"))) + && CONSTANT_P (op))"))) (define_predicate "fix_scaling_operand" (match_code "const_double")
