diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c index 42c418b..c3d16ff 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-vcvttss2usis-2.c @@ -1,6 +1,6 @@ /* { dg-do run } */ -/* { dg-options "-O2 -march=x86-64-v3 -mavx10.2-256" } */ -/* { dg-require-effective-target avx10_2_256 } */ +/* { dg-options "-O2 -march=x86-64-v3 -mavx10.2" } */ +/* { dg-require-effective-target avx10_2 } */ #define AVX10_2 #define AVX10_SCALAR @@ -30,6 +30,18 @@ TEST (void) if (res1 != res1_ref) abort(); + res1 = _mm_cvtts_ss_epu32 (s.x); + + if (s.a[0] > UINT_MAX) + res1_ref = UINT_MAX; + else if (s.a[0] < 0) + res1_ref = 0; + else + res1_ref = s.a[0]; + + if (res1 != res1_ref) + abort(); + #ifdef __x86_64__ res2 = _mm_cvtts_roundss_epu64 (s.x, 8); @@ -42,5 +54,17 @@ TEST (void) if (res2 != res2_ref) abort(); + + res2 = _mm_cvtts_ss_epu64 (s.x); + + if (s.a[0] > ULONG_MAX) + res2_ref = ULONG_MAX; + else if (s.a[0] < 0) + res2_ref = 0; + else + res2_ref = s.a[0]; + + if (res2 != res2_ref) + abort(); #endif } |