aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/sse.md
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-01-01 02:13:27 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2008-01-01 02:13:27 +0100
commitf02ffa1207632424685aad0b81087f3b0959179d (patch)
treeca26c4cf821c376c8f0301047f6bf22f3589d5b6 /gcc/config/i386/sse.md
parentf844c20ffc34283aa24412b9abc0b7e7371bb6db (diff)
downloadgcc-f02ffa1207632424685aad0b81087f3b0959179d.zip
gcc-f02ffa1207632424685aad0b81087f3b0959179d.tar.gz
gcc-f02ffa1207632424685aad0b81087f3b0959179d.tar.bz2
sse.md (sse5_pperm, [...]): Fix constraints.
* config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si, sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi, sse5_perm<mode>): Fix constraints. * gcc.target/i386/i386.exp (check_effective_target_sse5): Use __v8hi rather than __v2di type. From-SVN: r131244
Diffstat (limited to 'gcc/config/i386/sse.md')
-rw-r--r--gcc/config/i386/sse.md30
1 files changed, 15 insertions, 15 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 3c0d497..617ed35 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -8352,9 +8352,9 @@
;; SSE5 permute instructions
(define_insn "sse5_pperm"
[(set (match_operand:V16QI 0 "register_operand" "=x,x,x,x")
- (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "0,0,xm,xm")
- (match_operand:V16QI 2 "nonimmediate_operand" "x,xm,0,x")
- (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,x,0")]
+ (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "0,0,x,xm")
+ (match_operand:V16QI 2 "nonimmediate_operand" "x,xm,xm,x")
+ (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0")]
UNSPEC_SSE5_PERMUTE))]
"TARGET_SSE5 && ix86_sse5_valid_op_p (operands, insn, 4, true, 1)"
"pperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
@@ -8455,10 +8455,10 @@
[(set (match_operand:V4SI 0 "register_operand" "=x,x,x,x")
(vec_concat:V4SI
(truncate:V2SI
- (match_operand:V2DI 1 "nonimmediate_operand" "0,0,xm,xm"))
+ (match_operand:V2DI 1 "nonimmediate_operand" "0,0,x,xm"))
(truncate:V2SI
- (match_operand:V2DI 2 "nonimmediate_operand" "x,xm,0,x"))))
- (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,x,0"))]
+ (match_operand:V2DI 2 "nonimmediate_operand" "x,xm,xm,x"))))
+ (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0"))]
"TARGET_SSE5 && ix86_sse5_valid_op_p (operands, insn, 4, true, 1)"
"pperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "sse4arg")
@@ -8468,10 +8468,10 @@
[(set (match_operand:V8HI 0 "register_operand" "=x,x,x,x")
(vec_concat:V8HI
(truncate:V4HI
- (match_operand:V4SI 1 "nonimmediate_operand" "0,0,xm,xm"))
+ (match_operand:V4SI 1 "nonimmediate_operand" "0,0,x,xm"))
(truncate:V4HI
- (match_operand:V4SI 2 "nonimmediate_operand" "x,xm,0,x"))))
- (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,x,0"))]
+ (match_operand:V4SI 2 "nonimmediate_operand" "x,xm,xm,x"))))
+ (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0"))]
"TARGET_SSE5 && ix86_sse5_valid_op_p (operands, insn, 4, true, 1)"
"pperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "sse4arg")
@@ -8481,10 +8481,10 @@
[(set (match_operand:V16QI 0 "register_operand" "=x,x,x,x")
(vec_concat:V16QI
(truncate:V8QI
- (match_operand:V8HI 1 "nonimmediate_operand" "0,0,xm,xm"))
+ (match_operand:V8HI 1 "nonimmediate_operand" "0,0,x,xm"))
(truncate:V8QI
- (match_operand:V8HI 2 "nonimmediate_operand" "x,xm,0,x"))))
- (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,x,0"))]
+ (match_operand:V8HI 2 "nonimmediate_operand" "x,xm,xm,x"))))
+ (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0"))]
"TARGET_SSE5 && ix86_sse5_valid_op_p (operands, insn, 4, true, 1)"
"pperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "sse4arg")
@@ -8494,9 +8494,9 @@
(define_insn "sse5_perm<mode>"
[(set (match_operand:SSEMODEF2P 0 "register_operand" "=x,x,x,x")
(unspec:SSEMODEF2P
- [(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "0,0,xm,xm")
- (match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,xm,0,x")
- (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,x,0")]
+ [(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "0,0,x,xm")
+ (match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,xm,xm,x")
+ (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0")]
UNSPEC_SSE5_PERMUTE))]
"TARGET_SSE5 && ix86_sse5_valid_op_p (operands, insn, 4, true, 1)"
"perm<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"