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
|