diff options
author | Andrew Pinski <apinski@cavium.com> | 2015-01-13 14:08:21 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2015-01-13 06:08:21 -0800 |
commit | 1f46bd52c5ef8a050b6547dd0f272dc14364d979 (patch) | |
tree | 550fd98f214ee4a1ecd48e0f04f70d7d34629109 | |
parent | e0ffb247d696aa7a98088e0cd9c647947b1d5d39 (diff) | |
download | gcc-1f46bd52c5ef8a050b6547dd0f272dc14364d979.zip gcc-1f46bd52c5ef8a050b6547dd0f272dc14364d979.tar.gz gcc-1f46bd52c5ef8a050b6547dd0f272dc14364d979.tar.bz2 |
2015-01-13 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64.c (fusion_load_store): Check dest mode
instead of src mode.
2015-01-13 Andrew Pinski <apinski@cavium.com>
* gcc.target/aarch64/store-pair-1.c: New testcase.
From-SVN: r219532
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/store-pair-1.c | 12 |
4 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6bf509eb..0248000 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-01-13 Andrew Pinski <apinski@cavium.com> + + * config/aarch64/aarch64.c (fusion_load_store): Check dest mode + instead of src mode. + 2015-01-13 Richard Biener <rguenther@suse.de> PR lto/64373 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 3b6c67a..1151c8b 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -10520,8 +10520,8 @@ fusion_load_store (rtx_insn *insn, rtx *base, rtx *offset) src = SET_SRC (x); dest = SET_DEST (x); - if (GET_MODE (src) != SImode && GET_MODE (src) != DImode - && GET_MODE (src) != SFmode && GET_MODE (src) != DFmode) + if (GET_MODE (dest) != SImode && GET_MODE (dest) != DImode + && GET_MODE (dest) != SFmode && GET_MODE (dest) != DFmode) return SCHED_FUSION_NONE; if (GET_CODE (src) == SIGN_EXTEND) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a3fea9b..4aad423 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-01-13 Andrew Pinski <apinski@cavium.com> + + * gcc.target/aarch64/store-pair-1.c: New testcase. + 2015-01-13 Richard Biener <rguenther@suse.de> PR lto/64373 diff --git a/gcc/testsuite/gcc.target/aarch64/store-pair-1.c b/gcc/testsuite/gcc.target/aarch64/store-pair-1.c new file mode 100644 index 0000000..46c727e --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/store-pair-1.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +int f(int *a, int b) +{ + a[28] = 0; + a[29] = b; + a[31] = 0; +} + +/* We should be able to produce store pair for the store of 28/29 store. */ +{ dg-final { scan-assembler "stp\tw\[0-9\]+, w\[0-9\]+" } } |