LoongArch: fix SSP routines with ILP32

I completely forgot ILP32 when I wrote those routines.

gcc/

	* config/loongarch/loongarch.md
	(@stack_protect_combined_set_normal_<mode>): Replace `st.d'
	with `st.<d>', reject stptr.d on LA32 with enabled attribute.
	(@stack_protect_combined_test_internal_<mode>): Replace `ld.d'
	with `ld.<d>', reject ldptr.d on LA32 with enabled attribute.
	(@stack_protect_combined_set_extreme_<mode>): Rename to ...
	(stack_protect_combined_set_extreme): ... here.  Force DImode.
	Add TARGET_ABI_LP64 as the condition.
	(stack_protect_combined_set): Adapt for the change of
	stack_protect_combined_set_extreme.

gcc/testsuite/

	* gcc.target/loongarch/ssp-ilp32.c: New test.

(cherry picked from commit 5093878a751cc283c76069337b55dfbd3a6aac29)
2 files changed