diff options
author | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-03-24 13:54:23 +0000 |
---|---|---|
committer | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-03-24 13:54:23 +0000 |
commit | f413810ac0ab1ec865b8a9c765b6888740d8b534 (patch) | |
tree | 7411e42d775bfb86186d31464a4ea91f4ef95830 /gcc/config/s390/s390.c | |
parent | 4c715561ea10236239c4c2e2a24da7ea6d99ebc1 (diff) |
S/390: vec_init improvements
This enables the vec_init pattern also for V4SF, V1TI, and V1TF.
gcc/testsuite/ChangeLog:
2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/vector/vec-init-2.c: New test.
gcc/ChangeLog:
2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_expand_vec_init): Enable vector load
pair for all vector types with 64 bit elements.
* config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
* config/s390/vector.md (V_HW_64): ... here.
(V_128_NOSINGLE): New mode iterator.
("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
("*vec_load_pairv2di"): Change to ...
("*vec_load_pair<mode>"): ... this one.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246446 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/s390/s390.c')
-rw-r--r-- | gcc/config/s390/s390.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index f3cebd63ef9..65a75464b1c 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -6617,7 +6617,10 @@ s390_expand_vec_init (rtx target, rtx vals) return; } - if (all_regs && REG_P (target) && n_elts == 2 && inner_mode == DImode) + if (all_regs + && REG_P (target) + && n_elts == 2 + && GET_MODE_SIZE (inner_mode) == 8) { /* Use vector load pair. */ emit_insn (gen_rtx_SET (target, |