aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Yukhin <kirill.yukhin@intel.com>2016-05-18 09:16:09 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2016-05-18 09:16:09 +0000
commit5ae46837e197be9b99bc8ada79f37f1a7dd4b51f (patch)
tree2fea57c0083cc8c16522646460e093731f5e4095
parent188940605054262324b8d268364f26cd05370327 (diff)
downloadgcc-5ae46837e197be9b99bc8ada79f37f1a7dd4b51f.zip
gcc-5ae46837e197be9b99bc8ada79f37f1a7dd4b51f.tar.gz
gcc-5ae46837e197be9b99bc8ada79f37f1a7dd4b51f.tar.bz2
i386. Extend static buffers. Fix SF mode operand constraint to `Yv' in storehpd pattern.
gcc/ * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static array to 128 chars. (define_insn "*andnottf3"): Ditto. (define_insn "*<code><mode>3"/any_logic): Ditto. (define_insn "*<code>tf3"/any_logic): Ditto. (define_insn "sse2_storehpd"): Use Yv constraint for scalar operand to block AVX-512VL insn variant emit when it is not enabled. From-SVN: r236364
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/i386/sse.md12
2 files changed, 16 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c5376a1..4592bcc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,15 @@
2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
+ * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
+ array to 128 chars.
+ (define_insn "*andnottf3"): Ditto.
+ (define_insn "*<code><mode>3"/any_logic): Ditto.
+ (define_insn "*<code>tf3"/any_logic): Ditto.
+ (define_insn "sse2_storehpd"): Use Yv constraint for scalar
+ operand to block AVX-512VL insn variant emit when it is not enabled.
+
+2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
+
* config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
constraint fot SF mode.
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index a8492c7..b0d3f81 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -3027,7 +3027,7 @@
(match_operand:MODEF 2 "register_operand" "x,x,v,v")))]
"SSE_FLOAT_MODE_P (<MODE>mode)"
{
- static char buf[32];
+ static char buf[128];
const char *ops;
const char *suffix
= (get_attr_mode (insn) == MODE_V4SF) ? "ps" : "<ssevecmodesuffix>";
@@ -3094,7 +3094,7 @@
(match_operand:TF 2 "vector_operand" "xBm,xm,vm,v")))]
"TARGET_SSE"
{
- static char buf[32];
+ static char buf[128];
const char *ops;
const char *tmp
= (which_alternative >= 2 ? "pandnq"
@@ -3150,7 +3150,7 @@
(match_operand:MODEF 2 "register_operand" "x,x,v,v")))]
"SSE_FLOAT_MODE_P (<MODE>mode)"
{
- static char buf[32];
+ static char buf[128];
const char *ops;
const char *suffix
= (get_attr_mode (insn) == MODE_V4SF) ? "ps" : "<ssevecmodesuffix>";
@@ -3225,7 +3225,7 @@
"TARGET_SSE
&& ix86_binary_operator_ok (<CODE>, TFmode, operands)"
{
- static char buf[32];
+ static char buf[128];
const char *ops;
const char *tmp
= (which_alternative >= 2 ? "p<logic>q"
@@ -8426,9 +8426,9 @@
;; Avoid combining registers from different units in a single alternative,
;; see comment above inline_secondary_memory_needed function in i386.c
(define_insn "sse2_storehpd"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=m,x,v,x,*f,r")
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=m,x,Yv,x,*f,r")
(vec_select:DF
- (match_operand:V2DF 1 "nonimmediate_operand" " v,0,v,o,o,o")
+ (match_operand:V2DF 1 "nonimmediate_operand" " v,0, v,o,o,o")
(parallel [(const_int 1)])))]
"TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
"@