summaryrefslogtreecommitdiff
path: root/gcc/config/i386/atom.md
diff options
context:
space:
mode:
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-21 21:56:47 +0000
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-21 21:56:47 +0000
commit0408fd5bfc40508a29d85e92afe0075d271c33f6 (patch)
treeebf152f2e86bd4364b0513da3280d3c96e87dd9a /gcc/config/i386/atom.md
parentab3da48abc88c227d860858253b27ab73d1aabe2 (diff)
downloadgcc-0408fd5bfc40508a29d85e92afe0075d271c33f6.tar.gz
Properly handle psrldq when optimizing for Atom.
gcc/ 2010-06-21 H.J. Lu <hongjiu.lu@intel.com> PR target/44615 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1. * config/i386/i386.md (type): Add sseishft1 * config/i386/ppro_insn (ppro_insn): Also check sseishft1. (ppro_insn_load): Likewise. (ppro_insn_store): Likewise. (ppro_insn_both): Likewise. * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit. (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1 for type. (*vec_extractv2di_1_avx): Likewise. (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for type. Remove atom_unit. (*vec_extractv2di_1_sse2): Likewise. gcc/testsuite/ 2010-06-21 H.J. Lu <hongjiu.lu@intel.com> PR target/44615 * gcc.target/i386/sse2-vec-2a.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161118 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/atom.md')
-rw-r--r--gcc/config/i386/atom.md7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/i386/atom.md b/gcc/config/i386/atom.md
index a9c4c5d0576..1664269bac0 100644
--- a/gcc/config/i386/atom.md
+++ b/gcc/config/i386/atom.md
@@ -501,9 +501,10 @@
;; if palignr or psrldq
(define_insn_reservation "atom_sseishft_2" 1
(and (eq_attr "cpu" "atom")
- (and (eq_attr "type" "sseishft")
- (and (eq_attr "atom_unit" "sishuf")
- (match_operand 2 "immediate_operand"))))
+ (ior (eq_attr "type" "sseishft1")
+ (and (eq_attr "type" "sseishft")
+ (and (eq_attr "atom_unit" "sishuf")
+ (match_operand 2 "immediate_operand")))))
"atom-simple-0")
;; if reg/mem op