aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2021-08-09 16:38:54 +0200
committerUros Bizjak <ubizjak@gmail.com>2021-08-09 16:39:40 +0200
commit9d2d660aab2f332b1e3f69a2fb3419cf3cc33b47 (patch)
treecdc9960ac87e6abe0736532b1d8dd32dab4504bd
parent62f01243fb27030b8d99c671f27349c2e7465edc (diff)
downloadgcc-9d2d660aab2f332b1e3f69a2fb3419cf3cc33b47.zip
gcc-9d2d660aab2f332b1e3f69a2fb3419cf3cc33b47.tar.gz
gcc-9d2d660aab2f332b1e3f69a2fb3419cf3cc33b47.tar.bz2
i386: Name V2SF logic insns [PR101812]
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.
-rw-r--r--gcc/config/i386/mmx.md2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr101812.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index 0984f7c..2d3b63f 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -952,7 +952,7 @@
(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
index 0000000..07e84a3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr101812.c
@@ -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]);
+ }
+}