1 /* PR target/54700 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -std=c++14 -mavx2 -mno-xop -mno-avx512f" } */
4 /* { dg-final { scan-assembler-not "vpcmpgt\[bdq]" } } */
5 /* { dg-final { scan-assembler-times "vpblendvb" 2 } } */
6 /* { dg-final { scan-assembler-times "vblendvps" 4 } } */
7 /* { dg-final { scan-assembler-times "vblendvpd" 4 } } */
8 
9 #include <x86intrin.h>
10 
11 __attribute__((noipa)) __v32qi
f1(__v32qi a,__v32qi b,__v32qi c)12 f1 (__v32qi a, __v32qi b, __v32qi c)
13 {
14   return a < 0 ? b : c;
15 }
16 
17 __attribute__((noipa)) __v32qi
f2(__v32qi a,__v32qi b,__v32qi c)18 f2 (__v32qi a, __v32qi b, __v32qi c)
19 {
20   return a >= 0 ? b : c;
21 }
22 
23 __attribute__((noipa)) __v8si
f3(__v8si a,__v8si b,__v8si c)24 f3 (__v8si a, __v8si b, __v8si c)
25 {
26   return a < 0 ? b : c;
27 }
28 
29 __attribute__((noipa)) __v8si
f4(__v8si a,__v8si b,__v8si c)30 f4 (__v8si a, __v8si b, __v8si c)
31 {
32   return a >= 0 ? b : c;
33 }
34 
35 __attribute__((noipa)) __v4di
f5(__v4di a,__v4di b,__v4di c)36 f5 (__v4di a, __v4di b, __v4di c)
37 {
38   return a < 0 ? b : c;
39 }
40 
41 __attribute__((noipa)) __v4di
f6(__v4di a,__v4di b,__v4di c)42 f6 (__v4di a, __v4di b, __v4di c)
43 {
44   return a >= 0 ? b : c;
45 }
46 
47 __attribute__((noipa)) __v8sf
f7(__v8si a,__v8sf b,__v8sf c)48 f7 (__v8si a, __v8sf b, __v8sf c)
49 {
50   return a < 0 ? b : c;
51 }
52 
53 __attribute__((noipa)) __v8sf
f8(__v8si a,__v8sf b,__v8sf c)54 f8 (__v8si a, __v8sf b, __v8sf c)
55 {
56   return a >= 0 ? b : c;
57 }
58 
59 __attribute__((noipa)) __v4df
f9(__v4di a,__v4df b,__v4df c)60 f9 (__v4di a, __v4df b, __v4df c)
61 {
62   return a < 0 ? b : c;
63 }
64 
65 __attribute__((noipa)) __v4df
f10(__v4di a,__v4df b,__v4df c)66 f10 (__v4di a, __v4df b, __v4df c)
67 {
68   return a >= 0 ? b : c;
69 }
70