]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR target/85693
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 May 2018 14:50:59 +0000 (14:50 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 May 2018 14:50:59 +0000 (14:50 +0000)
* config/i386/sse.md (usadv64qi): New expander.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260117 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/sse.md

index 0bb6bd2d49a09f80255b0c8292c7fe0cd8038b32..9b4684c0d225390f788fac2f850c415746dd2d4d 100644 (file)
@@ -1,3 +1,8 @@
+2018-05-10  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/85693
+       * config/i386/sse.md (usadv64qi): New expander.
+
 2018-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
 
        * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
index ae6294e559cbb65b1e970975c2b0248a4f5a5f8d..0e625a4cc584c599fa17d348c4074ceb6ec6aa4f 100644 (file)
   DONE;
 })
 
+(define_expand "usadv64qi"
+  [(match_operand:V16SI 0 "register_operand")
+   (match_operand:V64QI 1 "register_operand")
+   (match_operand:V64QI 2 "nonimmediate_operand")
+   (match_operand:V16SI 3 "nonimmediate_operand")]
+  "TARGET_AVX512BW"
+{
+  rtx t1 = gen_reg_rtx (V8DImode);
+  rtx t2 = gen_reg_rtx (V16SImode);
+  emit_insn (gen_avx512f_psadbw (t1, operands[1], operands[2]));
+  convert_move (t2, t1, 0);
+  emit_insn (gen_addv16si3 (operands[0], t2, operands[3]));
+  DONE;
+})
+
 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"
   [(set (match_operand:VI248_AVX512BW_1 0 "register_operand" "=v,v")
        (ashiftrt:VI248_AVX512BW_1