Skip to content
Snippets Groups Projects
Commit f5f7d03b authored by liuhongt's avatar liuhongt
Browse files

Generate vmovapd instead of vmovsd for moving DFmode between SSE_REGS.

vmovapd can enable register renaming and have same code size as
vmovsd. Similar for vmovsh vs vmovaps, vmovaps is 1 byte less than
vmovsh.

When TARGET_AVX512VL is not available, still generate
vmovsd/vmovss/vmovsh to avoid vmovapd/vmovaps zmm16-31.

gcc/ChangeLog:

	* config/i386/i386.md (movdf_internal): Generate vmovapd instead of
	vmovsd when moving DFmode between SSE_REGS.
	(movhi_internal): Generate vmovdqa instead of vmovsh when
	moving HImode between SSE_REGS.
	(mov<mode>_internal): Use vmovaps instead of vmovsh when
	moving HF/BFmode between SSE_REGS.

gcc/testsuite/ChangeLog:

	* gcc.target/i386/pr89229-4a.c: Adjust testcase.
parent b01e96f8
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment