Commit b34b1c34 by H.J. Lu Committed by H.J. Lu

Remove snprintf from <avx512>_(load|store)<mode>_mask

This patch removes snprintf from <avx512>_(load|store)<mode>_mask
patterns.

	* config/i386/sse.md (<avx512>_load<mode>_mask): Remove
	snprintf.
	(<avx512>_store<mode>_mask): Likewise.

From-SVN: r232225
parent 5baf4532
2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/sse.md (<avx512>_load<mode>_mask): Remove
snprintf.
(<avx512>_store<mode>_mask): Likewise.
2016-01-11 Bernd Schmidt <bschmidt@redhat.com> 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
Kyrylo Tkachov <kyrylo.tkachov@arm.com> Kyrylo Tkachov <kyrylo.tkachov@arm.com>
......
...@@ -960,30 +960,20 @@ ...@@ -960,30 +960,20 @@
(match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))] (match_operand:<avx512fmaskmode> 3 "register_operand" "Yk,Yk")))]
"TARGET_AVX512F" "TARGET_AVX512F"
{ {
static char buf [64];
const char *insn_op;
const char *sse_suffix;
const char *align;
if (FLOAT_MODE_P (GET_MODE_INNER (<MODE>mode))) if (FLOAT_MODE_P (GET_MODE_INNER (<MODE>mode)))
{ {
insn_op = "vmov"; if (misaligned_operand (operands[1], <MODE>mode))
sse_suffix = "<ssemodesuffix>"; return "vmovu<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
else
return "vmova<ssemodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
} }
else else
{ {
insn_op = "vmovdq"; if (misaligned_operand (operands[1], <MODE>mode))
sse_suffix = "<ssescalarsize>"; return "vmovdqu<ssescalarsize>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
else
return "vmovdqa<ssescalarsize>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}";
} }
if (misaligned_operand (operands[1], <MODE>mode))
align = "u";
else
align = "a";
snprintf (buf, sizeof (buf), "%s%s%s\t{%%1, %%0%%{%%3%%}%%N2|%%0%%{%%3%%}%%N2, %%1}",
insn_op, align, sse_suffix);
return buf;
} }
[(set_attr "type" "ssemov") [(set_attr "type" "ssemov")
(set_attr "prefix" "evex") (set_attr "prefix" "evex")
...@@ -1035,30 +1025,20 @@ ...@@ -1035,30 +1025,20 @@
(match_operand:<avx512fmaskmode> 2 "register_operand" "Yk")))] (match_operand:<avx512fmaskmode> 2 "register_operand" "Yk")))]
"TARGET_AVX512F" "TARGET_AVX512F"
{ {
static char buf [64];
const char *insn_op;
const char *sse_suffix;
const char *align;
if (FLOAT_MODE_P (GET_MODE_INNER (<MODE>mode))) if (FLOAT_MODE_P (GET_MODE_INNER (<MODE>mode)))
{ {
insn_op = "vmov"; if (misaligned_operand (operands[0], <MODE>mode))
sse_suffix = "<ssemodesuffix>"; return "vmovu<ssemodesuffix>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
else
return "vmova<ssemodesuffix>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
} }
else else
{ {
insn_op = "vmovdq"; if (misaligned_operand (operands[0], <MODE>mode))
sse_suffix = "<ssescalarsize>"; return "vmovdqu<ssescalarsize>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
else
return "vmovdqa<ssescalarsize>\t{%1, %0%{%2%}|%0%{%2%}, %1}";
} }
if (misaligned_operand (operands[0], <MODE>mode))
align = "u";
else
align = "a";
snprintf (buf, sizeof (buf), "%s%s%s\t{%%1, %%0%%{%%2%%}|%%0%%{%%2%%}, %%1}",
insn_op, align, sse_suffix);
return buf;
} }
[(set_attr "type" "ssemov") [(set_attr "type" "ssemov")
(set_attr "prefix" "evex") (set_attr "prefix" "evex")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment