1 /* PR target/98218 */
2 /* { dg-do compile { target { ! ia32 } } } */
3 /* { dg-options "-O2 -msse2" } */
4 
5 typedef unsigned int __attribute__((__vector_size__ (8))) v64u32;
6 typedef int __attribute__((__vector_size__ (8))) v64s32;
7 typedef float __attribute__((__vector_size__ (8))) v64f32;
8 
9 v64u32 au, bu;
10 v64s32 as, bs;
11 v64f32 af, bf;
12 
tu(v64f32 a,v64f32 b)13 v64u32 tu (v64f32 a, v64f32 b) { return (a > b) ? au : bu; }
ts(v64f32 a,v64f32 b)14 v64s32 ts (v64f32 a, v64f32 b) { return (a > b) ? as : bs; }
fu(v64u32 a,v64u32 b)15 v64f32 fu (v64u32 a, v64u32 b) { return (a > b) ? af : bf; }
fs(v64s32 a,v64s32 b)16 v64f32 fs (v64s32 a, v64s32 b) { return (a > b) ? af : bf; }
ff(v64f32 a,v64f32 b)17 v64f32 ff (v64f32 a, v64f32 b) { return (a > b) ? af : bf; }
18 
19 /* { dg-final { scan-assembler-times "cmpltps" 3 } } */
20 /* { dg-final { scan-assembler-times "pcmpgtd" 2 } } */
21