blob: 61ea4bf90080394b08192e07e6c8fd62fb7ece5e [file] [log] [blame]
/* PR target/98218 */
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O2 -msse2" } */
typedef unsigned int __attribute__((__vector_size__ (8))) v64u32;
typedef int __attribute__((__vector_size__ (8))) v64s32;
typedef float __attribute__((__vector_size__ (8))) v64f32;
v64u32 au, bu;
v64s32 as, bs;
v64f32 af, bf;
v64u32 tu (v64f32 a, v64f32 b) { return (a > b) ? au : bu; }
v64s32 ts (v64f32 a, v64f32 b) { return (a > b) ? as : bs; }
v64f32 fu (v64u32 a, v64u32 b) { return (a > b) ? af : bf; }
v64f32 fs (v64s32 a, v64s32 b) { return (a > b) ? af : bf; }
v64f32 ff (v64f32 a, v64f32 b) { return (a > b) ? af : bf; }
/* { dg-final { scan-assembler-times "cmpltps" 3 } } */
/* { dg-final { scan-assembler-times "pcmpgtd" 2 } } */