]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Name V2SF logic insns [PR101812]
authorUros Bizjak <ubizjak@gmail.com>
Mon, 9 Aug 2021 14:38:54 +0000 (16:38 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Mon, 9 Aug 2021 14:39:40 +0000 (16:39 +0200)
Name V2SF logic insns, so expand_simple_binop works with V2SF modes.

2021-08-09  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
PR target/101812
* config/i386/mmx.md (<any_logic:code>v2sf3):
Rename from *mmx_<any_logic:code>v2sf3

gcc/testsuite/
PR target/101812
* gcc.target/i386/pr101812.c: New test.

gcc/config/i386/mmx.md
gcc/testsuite/gcc.target/i386/pr101812.c [new file with mode: 0644]

index 0984f7cc44dc6ebda007b8c80dea733d75f10f09..2d3b63f0834a62db0800815da12da96ffd6a38a7 100644 (file)
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "V4SF")])
 
-(define_insn "*mmx_<code>v2sf3"
+(define_insn "<code>v2sf3"
   [(set (match_operand:V2SF 0 "register_operand" "=x,x")
        (any_logic:V2SF
          (match_operand:V2SF 1 "register_operand" "%0,x")
diff --git a/gcc/testsuite/gcc.target/i386/pr101812.c b/gcc/testsuite/gcc.target/i386/pr101812.c
new file mode 100644 (file)
index 0000000..07e84a3
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -ftree-loop-vectorize -fvect-cost-model=unlimited" }  */
+
+#define LTGT(a, b) (__builtin_islessgreater (a, b) ? a : b)
+void foo (int ilast,float* w, float* w2)
+{
+  int i;
+  for (i = 0; i < ilast; ++i)
+  {
+    w[i] = LTGT (0.0f, w2[i]);
+  }
+}