AVR: target/119989 - Add missing clobbers to xload_<mode>_libgcc.

libgcc's __xload_1...4 is clobbering Z (and also R21 is some cases),
but avr.md had clobbers of respective GPRs only up to reload.
Outcome was that code reading from the same __memx address twice
could be wrong.  This patch adds respective clobbers.

      Forward-port from 2025-04-30 r14-11703
      PR target/119989
gcc/
	* config/avr/avr.md (xload_<mode>_libgcc): Clobber R21, Z.

gcc/testsuite/
	* gcc.target/avr/torture/pr119989.h: New file.
	* gcc.target/avr/torture/pr119989-memx-1.c: New test.
	* gcc.target/avr/torture/pr119989-memx-2.c: New test.
	* gcc.target/avr/torture/pr119989-memx-3.c: New test.
	* gcc.target/avr/torture/pr119989-memx-4.c: New test.
	* gcc.target/avr/torture/pr119989-flashx-1.c: New test.
	* gcc.target/avr/torture/pr119989-flashx-2.c: New test.
	* gcc.target/avr/torture/pr119989-flashx-3.c: New test.
	* gcc.target/avr/torture/pr119989-flashx-4.c: New test.

(cherry picked from commit 1ca1c1fc3b58ae5e1d3db4f5a2014132fe69f82a)
10 files changed