diff options
author | liuhongt <hongtao.liu@intel.com> | 2021-11-10 12:53:43 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2021-11-11 09:25:53 +0800 |
commit | e166cada0813f8b382bacb7f01e1d8d235bf3b0f (patch) | |
tree | 1dc69a8a05db68a75fe207ed203ba677a3488667 /gcc | |
parent | 402d28998fa35d9ffc47aa084f66f9381491eeca (diff) | |
download | gcc-e166cada0813f8b382bacb7f01e1d8d235bf3b0f.zip gcc-e166cada0813f8b382bacb7f01e1d8d235bf3b0f.tar.gz gcc-e166cada0813f8b382bacb7f01e1d8d235bf3b0f.tar.bz2 |
Extend vpcmov to handle V8HF/V16HFmode under TARGET_XOP.
gcc/ChangeLog:
PR target/103151
* config/i386/sse.md (V_128_256): Extend to V8HF/V16HF.
(avxsizesuffix): Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/i386/pr103151.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i386/sse.md | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr103151.c | 18 |
2 files changed, 22 insertions, 4 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 1908412..b109c2a 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -304,7 +304,7 @@ ;; All 128bit and 256bit vector modes (define_mode_iterator V_128_256 - [V32QI V16QI V16HI V8HI V8SI V4SI V4DI V2DI V8SF V4SF V4DF V2DF]) + [V32QI V16QI V16HI V8HI V8SI V4SI V4DI V2DI V16HF V8HF V8SF V4SF V4DF V2DF]) ;; All 512bit vector modes (define_mode_iterator V_512 [V64QI V32HI V16SI V8DI V16SF V8DF]) @@ -905,9 +905,9 @@ [(V64QI "512") (V32HI "512") (V16SI "512") (V8DI "512") (V32QI "256") (V16HI "256") (V8SI "256") (V4DI "256") (V16QI "") (V8HI "") (V4SI "") (V2DI "") - (V16SF "512") (V8DF "512") - (V8SF "256") (V4DF "256") - (V4SF "") (V2DF "")]) + (V32HF "512") (V16SF "512") (V8DF "512") + (V16HF "256") (V8SF "256") (V4DF "256") + (V8HF "") (V4SF "") (V2DF "")]) ;; SSE instruction mode (define_mode_attr sseinsnmode diff --git a/gcc/testsuite/gcc.target/i386/pr103151.c b/gcc/testsuite/gcc.target/i386/pr103151.c new file mode 100644 index 0000000..d7db255 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr103151.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-mavx512fp16 -O1 -mxop" } */ + +typedef _Float16 v16hf __attribute__((vector_size(32))); +typedef _Float16 v8hf __attribute__((vector_size(16))); +v8hf f1() { + int i; + v8hf z; + z[i] = i; + return z; +} + +v16hf f2() { + int i; + v16hf z; + z[i] = i; + return z; +} |