aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.meissner
blob: ab07d9242ebd6ad43843013af755bf4a69a5cb3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2018-10-27  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.md (movsf_const_direct_move): Delete
	loading up GPRs.

2018-10-27  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.md (UNSPEC_SF_CONSTANT): New unspec for
	moving SFmode constants from GPRs to VSX registers.
	(movsf constant splitter): Use int_reg_operand.
	(movsf_hardfloat): Don't allow moving SFmode constants that are
	generated in the GPR registers to be used in the general move.
	(movsf_const_direct_move): Rework.
	(movsf_const_direct_move_internal): New insn to move SFmode
	constants from GPRs to VSX registers after splitting.
	(movsf_const_store): Optimize creating a SFmode constant and
	storing it not to move the constant to the VSX registers.

2018-10-26  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.md (movsf_const_direct_move): Always
	allocate a scratch register due to loop unrolling where things
	might move between the GPR registers and VSX registers in the
	later stages.

2018-10-26  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (easy_fp_direct_move_constant): Add
	support for SFmode.
	* config/rs6000/rs6000.c (rs6000_emit_move): Add support to load
	up SFmode values into a GPR and moving them to a either a VSX
	register using the double format or a GPR register using the
	single format.
	* config/rs6000/rs6000.md (movsf_const_direct_move): Likewise.

2018-10-26  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/constraints.md (wG constraint): New constraint for
	floating point constants that can be loaded quickly in a GPR and
	transfered over to a vector register quickly.
	* config/rs6000/predicates.md (easy_fp_direct_move_constant): New
	predicate to determine which constants can be loaded without
	loading them from memory.
	(easy_fp_constant): If easy_fp_mtvsrd_constant is true, the
	constant is easy.
	* config/rs6000/rs6000.md (movdf constant splitter): Use
	int_reg_operand instead of extra code to make sure we are
	splitting loading up constants to GPRs.
	(mov<mode>_hardfloat64): Add support for loading FP constants into
	GPRs and using direct move to move them over.
	* doc/md.texi (PowerPC constraints): Document wG constraint.

2018-10-26   Michael Meissner  <meissner@linux.ibm.com>

	Clone branch subversion id 265537