5296 lines
248 KiB
Diff
5296 lines
248 KiB
Diff
From 8cea23eb3f7e7aee77d0cf87581754c017691b91 Mon Sep 17 00:00:00 2001
|
|
From: Xiaolong Chen <chenxiaolong@loongson.cn>
|
|
Date: Tue, 12 Sep 2023 11:31:16 +0800
|
|
Subject: [PATCH 095/124] LoongArch: Add tests for SX vector vfcmp
|
|
instructions.
|
|
|
|
gcc/testsuite/ChangeLog:
|
|
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c: New test.
|
|
* gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c: New test.
|
|
|
|
Signed-off-by: Peng Fan <fanpeng@loongson.cn>
|
|
Signed-off-by: ticat_fp <fanpeng@loongson.cn>
|
|
---
|
|
.../loongarch/vector/lsx/lsx-vfcmp_caf.c | 244 ++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_ceq.c | 516 +++++++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_cle.c | 530 ++++++++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_clt.c | 476 ++++++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_cne.c | 378 +++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_cor.c | 170 ++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_cun.c | 253 +++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_saf.c | 214 +++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_seq.c | 450 +++++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_sle.c | 407 ++++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_slt.c | 512 +++++++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_sne.c | 398 +++++++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_sor.c | 269 +++++++++
|
|
.../loongarch/vector/lsx/lsx-vfcmp_sun.c | 335 +++++++++++
|
|
14 files changed, 5152 insertions(+)
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c
|
|
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c
|
|
new file mode 100644
|
|
index 000000000..b448c2076
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c
|
|
@@ -0,0 +1,244 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x01010101;
|
|
+ *((int *)&__m128_op0[0]) = 0x01010101;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7ef400ad;
|
|
+ *((int *)&__m128_op0[2]) = 0x21fc7081;
|
|
+ *((int *)&__m128_op0[1]) = 0x28bf0351;
|
|
+ *((int *)&__m128_op0[0]) = 0xec69b5f2;
|
|
+ *((int *)&__m128_op1[3]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[2]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[1]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[0]) = 0x7fc00000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x01000100;
|
|
+ *((int *)&__m128_op0[0]) = 0x01000100;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x64e464e4;
|
|
+ *((int *)&__m128_op1[0]) = 0x64e464e4;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffc0ff80;
|
|
+ *((int *)&__m128_op1[2]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000005;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xc0800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000001b;
|
|
+ *((int *)&__m128_op1[2]) = 0x0000001b;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000001b;
|
|
+ *((int *)&__m128_op1[0]) = 0x0000001b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000002;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000002;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x34500292;
|
|
+ *((int *)&__m128_op1[0]) = 0x0f3017d6;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00830029;
|
|
+ *((int *)&__m128_op0[0]) = 0x0038ff50;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xff7fff80;
|
|
+ *((int *)&__m128_op0[2]) = 0xff800001;
|
|
+ *((int *)&__m128_op0[1]) = 0xe593d844;
|
|
+ *((int *)&__m128_op0[0]) = 0xe593c8c4;
|
|
+ *((int *)&__m128_op1[3]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[2]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[1]) = 0xe593c8c4;
|
|
+ *((int *)&__m128_op1[0]) = 0xe593c8c4;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x8a8a8a8a;
|
|
+ *((int *)&__m128_op1[2]) = 0x8a8a8a8a;
|
|
+ *((int *)&__m128_op1[1]) = 0x8a8a8a8a;
|
|
+ *((int *)&__m128_op1[0]) = 0x8a8a8a8a;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffff01ff01;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x66b34f643c9c626a;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x38d60e366e547876;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x66b34f643c9c626a;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x38d60e366e547876;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfcfcfcdcfcfcfcdc;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xfcfcfcdcfcfcfcdc;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000700000004fdff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000300000000fdff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xf2f444429d96dbe1;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xddd76c75f2f44442;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0001000100010001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xc1f03e1042208410;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffbfff7fffc000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff43dfffff81fb;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c
|
|
new file mode 100644
|
|
index 000000000..98941b47d
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c
|
|
@@ -0,0 +1,516 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00007f00;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x01000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x08fdc221;
|
|
+ *((int *)&__m128_op0[2]) = 0xbfdb1927;
|
|
+ *((int *)&__m128_op0[1]) = 0x4303c67e;
|
|
+ *((int *)&__m128_op0[0]) = 0x9b7fb213;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000800c;
|
|
+ *((int *)&__m128_op1[2]) = 0x0004300c;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000800;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00007fff;
|
|
+ *((int *)&__m128_op0[2]) = 0x00007fff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x2bfd9461;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x2bfd9461;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x01000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x01000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xcd636363;
|
|
+ *((int *)&__m128_op1[2]) = 0xcd636363;
|
|
+ *((int *)&__m128_op1[1]) = 0xcd636363;
|
|
+ *((int *)&__m128_op1[0]) = 0xcd636363;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x007fffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x007fffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000cecd;
|
|
+ *((int *)&__m128_op1[2]) = 0x00004657;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000c900;
|
|
+ *((int *)&__m128_op1[0]) = 0x00011197;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xf51df8db;
|
|
+ *((int *)&__m128_op0[2]) = 0xd6050189;
|
|
+ *((int *)&__m128_op0[1]) = 0x0983e2db;
|
|
+ *((int *)&__m128_op0[0]) = 0xf235ed87;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0x3ea5016b;
|
|
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op1[0]) = 0x3f6fb04d;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0xffa8ff9f;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffabff99;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000ff00;
|
|
+ *((int *)&__m128_op1[3]) = 0x40404040;
|
|
+ *((int *)&__m128_op1[2]) = 0x40404040;
|
|
+ *((int *)&__m128_op1[1]) = 0x40404040;
|
|
+ *((int *)&__m128_op1[0]) = 0x40404040;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x3bcc5098;
|
|
+ *((int *)&__m128_op1[2]) = 0x703fa5f0;
|
|
+ *((int *)&__m128_op1[1]) = 0xab7b3134;
|
|
+ *((int *)&__m128_op1[0]) = 0x9703f605;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x000000ff;
|
|
+ *((int *)&__m128_op0[0]) = 0xfe01fd02;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x0001fe01;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x000000ff;
|
|
+ *((int *)&__m128_op0[0]) = 0xfe01fd02;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000100;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000100;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00800000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00800000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xc2409edab019323f;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x460f3b393ef4be3a;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0100000100010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000ff00000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000ff00000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00ffff0000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ffff0000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffbfffffffbf;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffbfffffffbf;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000ff00;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffdfffdfffdfffd;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffdfffdfffdfffd;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000014eb54ab;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x14eb6a002a406a00;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000014eb54ab;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x14eb6a002a406a00;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffffffffff4;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffffffffffff4;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0100000001000100;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0100010000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000006f00001f0a;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000c000ffffc000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000003dffc2;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000003dffc2;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffe000ffdf;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000010100000101;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000010100000101;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000000b;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000000b;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xd78cfd70b5f65d77;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x5779108fdedda7e5;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000ff0000ffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c
|
|
new file mode 100644
|
|
index 000000000..409bce0ec
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c
|
|
@@ -0,0 +1,530 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00001802;
|
|
+ *((int *)&__m128_op0[0]) = 0x041b0013;
|
|
+ *((int *)&__m128_op1[3]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[2]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[1]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[0]) = 0xc3080000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x17fda829;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000404;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000383;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffe000;
|
|
+ *((int *)&__m128_op1[0]) = 0xffff1fff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x000000fe;
|
|
+ *((int *)&__m128_op0[2]) = 0x808000ff;
|
|
+ *((int *)&__m128_op0[1]) = 0x000000fe;
|
|
+ *((int *)&__m128_op0[0]) = 0x808000fe;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000020;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000020;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000ffc1;
|
|
+ *((int *)&__m128_op1[0]) = 0x00010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000004;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xe0000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x01010001;
|
|
+ *((int *)&__m128_op1[2]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[1]) = 0x01010301;
|
|
+ *((int *)&__m128_op1[0]) = 0x00010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffff00;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000001;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00060fbf;
|
|
+ *((int *)&__m128_op1[2]) = 0x02040fbf;
|
|
+ *((int *)&__m128_op1[1]) = 0x00020fbf;
|
|
+ *((int *)&__m128_op1[0]) = 0x02000fbf;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x0a752a55;
|
|
+ *((int *)&__m128_op0[1]) = 0x0a753500;
|
|
+ *((int *)&__m128_op0[0]) = 0x950fa306;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x380fdfdf;
|
|
+ *((int *)&__m128_op1[0]) = 0xc0000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000001;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000007fff800000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000080007f80800;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000001000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000080800000808;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000080800000808;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff80800001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffff80800001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x5f675e96a8d359f5;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x46387f95d9a68001;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x131211101211100f;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x11100f0e100f0e0d;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000002a000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffff7f8c;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x98147a504d145000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x377b810912c0e000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00009c7c00007176;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfcfcfcfcfcfcfcfd;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfcfcfcfcfcfc0000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffff359f358;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffffff359f358;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000003ff8;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x6363636363636363;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x6363636363636363;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000001;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x4f804f81;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x4f804f80;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7fff0007;
|
|
+ *((int *)&__m128_op0[2]) = 0xe215b122;
|
|
+ *((int *)&__m128_op0[1]) = 0x7ffeffff;
|
|
+ *((int *)&__m128_op0[0]) = 0x7bfff828;
|
|
+ *((int *)&__m128_op1[3]) = 0x80010009;
|
|
+ *((int *)&__m128_op1[2]) = 0x816ac5de;
|
|
+ *((int *)&__m128_op1[1]) = 0x80010001;
|
|
+ *((int *)&__m128_op1[0]) = 0x84000bd8;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xfefa0000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x9c9c9c9c;
|
|
+ *((int *)&__m128_op1[2]) = 0x9c9c9c9c;
|
|
+ *((int *)&__m128_op1[1]) = 0x9c9c9c9c;
|
|
+ *((int *)&__m128_op1[0]) = 0x9c9c9c9c;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x0c0b0a09;
|
|
+ *((int *)&__m128_op0[2]) = 0x0b0a0908;
|
|
+ *((int *)&__m128_op0[1]) = 0x0a090807;
|
|
+ *((int *)&__m128_op0[0]) = 0x09080706;
|
|
+ *((int *)&__m128_op1[3]) = 0x0c0b0a09;
|
|
+ *((int *)&__m128_op1[2]) = 0x0b0a0908;
|
|
+ *((int *)&__m128_op1[1]) = 0x0a090807;
|
|
+ *((int *)&__m128_op1[0]) = 0x09080706;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000020;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000020;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000001f;
|
|
+ *((int *)&__m128_op1[0]) = 0x0000001f;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7ff80000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x7ff80000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff80ff0010ff06;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xedfaedfaedfaedfa;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xedfaedfaedfaedfa;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c
|
|
new file mode 100644
|
|
index 000000000..39c9cf7a7
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c
|
|
@@ -0,0 +1,476 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x56411278;
|
|
+ *((int *)&__m128_op0[2]) = 0x43c0d41e;
|
|
+ *((int *)&__m128_op0[1]) = 0x0124d8f6;
|
|
+ *((int *)&__m128_op0[0]) = 0xa494006b;
|
|
+ *((int *)&__m128_op1[3]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[2]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[1]) = 0xff800000;
|
|
+ *((int *)&__m128_op1[0]) = 0xff800000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x84939413;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000002;
|
|
+ *((int *)&__m128_op0[0]) = 0xbefcb21e;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xfffefff6;
|
|
+ *((int *)&__m128_op0[0]) = 0xfff80002;
|
|
+ *((int *)&__m128_op1[3]) = 0x000000c5;
|
|
+ *((int *)&__m128_op1[2]) = 0xac01015b;
|
|
+ *((int *)&__m128_op1[1]) = 0xaaacac88;
|
|
+ *((int *)&__m128_op1[0]) = 0xa3a9a96a;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xff84fff4;
|
|
+ *((int *)&__m128_op0[2]) = 0xff84fff4;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffffff0;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x11000f20;
|
|
+ *((int *)&__m128_op0[2]) = 0x10000e20;
|
|
+ *((int *)&__m128_op0[1]) = 0x0f000d20;
|
|
+ *((int *)&__m128_op0[0]) = 0x0e000c20;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000c00;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00bd003d;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000005;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000005;
|
|
+ *((int *)&__m128_op1[3]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op1[2]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op1[0]) = 0xfffefffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xff800001;
|
|
+ *((int *)&__m128_op0[0]) = 0x0f800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000009;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000009;
|
|
+ *((int *)&__m128_op1[1]) = 0xff80000a;
|
|
+ *((int *)&__m128_op1[0]) = 0x0f800009;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x3b5eae24;
|
|
+ *((int *)&__m128_op0[0]) = 0xab7e3848;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00003f80;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x63636363;
|
|
+ *((int *)&__m128_op0[2]) = 0x3f3e47c1;
|
|
+ *((int *)&__m128_op0[1]) = 0x41f8e080;
|
|
+ *((int *)&__m128_op0[0]) = 0xf1ef4eaa;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000cecd;
|
|
+ *((int *)&__m128_op1[2]) = 0x00004657;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000c900;
|
|
+ *((int *)&__m128_op1[0]) = 0x00011197;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x454c2996;
|
|
+ *((int *)&__m128_op0[2]) = 0x0ffe354e;
|
|
+ *((int *)&__m128_op0[1]) = 0x9e063f80;
|
|
+ *((int *)&__m128_op0[0]) = 0x2742ba3e;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x42652524;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00070000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00050000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00030000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00010000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0xff81007c;
|
|
+ *((int *)&__m128_op1[1]) = 0xffb7005f;
|
|
+ *((int *)&__m128_op1[0]) = 0x0070007c;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x0000006f;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xfbffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x7bffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xfbffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x7bffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x0002a000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x0002a000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xfc606ec5;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x14155445;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x01030103;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00060fbf;
|
|
+ *((int *)&__m128_op0[2]) = 0x02040fbf;
|
|
+ *((int *)&__m128_op0[1]) = 0x00020fbf;
|
|
+ *((int *)&__m128_op0[0]) = 0x02000fbf;
|
|
+ *((int *)&__m128_op1[3]) = 0x63636363;
|
|
+ *((int *)&__m128_op1[2]) = 0x63636363;
|
|
+ *((int *)&__m128_op1[1]) = 0xffd27db0;
|
|
+ *((int *)&__m128_op1[0]) = 0x10d20fbf;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000008;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000010000003f;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fff7fff7fff7fff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000010000003f;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000036de0000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000003be14000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x1111113111111141;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x1111113111111121;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0032000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000080000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xe93d0bd19ff07013;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x65017c2ac9ca9fd0;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x007f007f007f007e;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x007f007f007effc6;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000015800000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000158;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fff00007fff0000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fff00007fff0000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fff00007fff0000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff00007fff0000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x7f8100017f810001;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x7f8100017f810001;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x004200a000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x004200a000200001;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff00007fff7fff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xff00ff00ff00ff00;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xff00ff00ff00ff00;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000001e;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000455555555;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000001580000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000002000000020;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000001f0000001f;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c
|
|
new file mode 100644
|
|
index 000000000..c3da43bb4
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c
|
|
@@ -0,0 +1,378 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x7ff80000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x0bd80bd8;
|
|
+ *((int *)&__m128_op1[2]) = 0x0bdfffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x0bd80bd8;
|
|
+ *((int *)&__m128_op1[0]) = 0x0bd80000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00ff0077;
|
|
+ *((int *)&__m128_op0[2]) = 0x00070077;
|
|
+ *((int *)&__m128_op0[1]) = 0x00e600ef;
|
|
+ *((int *)&__m128_op0[0]) = 0x00ee01de;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00007fff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00100010;
|
|
+ *((int *)&__m128_op0[2]) = 0x00100010;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x000000ff;
|
|
+ *((int *)&__m128_op1[0]) = 0xfe01fd02;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xbf800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xcf000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x003f0000;
|
|
+ *((int *)&__m128_op1[2]) = 0x0000003f;
|
|
+ *((int *)&__m128_op1[1]) = 0x003f0000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x01ff01ff;
|
|
+ *((int *)&__m128_op0[2]) = 0x01ff01ff;
|
|
+ *((int *)&__m128_op0[1]) = 0x01ff01ff;
|
|
+ *((int *)&__m128_op0[0]) = 0x01ff01ff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x20202020;
|
|
+ *((int *)&__m128_op0[2]) = 0x20202020;
|
|
+ *((int *)&__m128_op0[1]) = 0x20202020;
|
|
+ *((int *)&__m128_op0[0]) = 0x20207fff;
|
|
+ *((int *)&__m128_op1[3]) = 0x32d3f35e;
|
|
+ *((int *)&__m128_op1[2]) = 0xcd509d13;
|
|
+ *((int *)&__m128_op1[1]) = 0x3e081b3c;
|
|
+ *((int *)&__m128_op1[0]) = 0x93f6b356;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffff0000;
|
|
+ *((int *)&__m128_op0[2]) = 0xffff0000;
|
|
+ *((int *)&__m128_op0[1]) = 0x40408010;
|
|
+ *((int *)&__m128_op0[0]) = 0x80200110;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x80000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x80000008;
|
|
+ *((int *)&__m128_op0[1]) = 0xa2f54a1e;
|
|
+ *((int *)&__m128_op0[0]) = 0xa2f54a1e;
|
|
+ *((int *)&__m128_op1[3]) = 0x80000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x80000008;
|
|
+ *((int *)&__m128_op1[1]) = 0xa2f54a1e;
|
|
+ *((int *)&__m128_op1[0]) = 0xa2f54a1e;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000fc00;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000fc00;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001000100000004;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000020302030;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000020302030;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000100010;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000100010;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x5d7f5d007f6a007f;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff7fff7fff7f00;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x7ff000ff6220c0c1;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffe8081000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0001fffe0001fffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x1c083b1f3b1f3b1f;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xf244b948a323ab42;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00ff00ff00ff00ff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff00ff00ff00ff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x000100fe000070a1;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000115ffffffa1;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffffff8f8da00;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffff01018888;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000003ea5016c;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffefefd3f7027c5;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000ffce;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x80808080806b000b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x400000003fffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x4000000040000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000014eb54ab;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x14eb6a002a406a00;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00007fff7fff8000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c
|
|
new file mode 100644
|
|
index 000000000..5228dbede
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c
|
|
@@ -0,0 +1,170 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xfffffeff;
|
|
+ *((int *)&__m128_op0[2]) = 0xfffffeff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffffcff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xf4b6f3f5;
|
|
+ *((int *)&__m128_op0[0]) = 0x2f4ef4a8;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x08080808;
|
|
+ *((int *)&__m128_op1[2]) = 0x08080808;
|
|
+ *((int *)&__m128_op1[1]) = 0x08080808;
|
|
+ *((int *)&__m128_op1[0]) = 0x08080808;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000ffce;
|
|
+ *((int *)&__m128_op1[3]) = 0xffff0001;
|
|
+ *((int *)&__m128_op1[2]) = 0x1cf0c569;
|
|
+ *((int *)&__m128_op1[1]) = 0xc0000002;
|
|
+ *((int *)&__m128_op1[0]) = 0xb0995850;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x0a752a55;
|
|
+ *((int *)&__m128_op0[1]) = 0x0a753500;
|
|
+ *((int *)&__m128_op0[0]) = 0x950fa306;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x0a752a55;
|
|
+ *((int *)&__m128_op1[1]) = 0x0a753500;
|
|
+ *((int *)&__m128_op1[0]) = 0x950fa306;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x3f8000003f800000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x3f8000003f800000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x3f8000003f800000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x3f8000003f800000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffffffdfffdf;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000ffffffdfffdf;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xd70b30c96ea9f4e8;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xa352bfac9269e0aa;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c
|
|
new file mode 100644
|
|
index 000000000..a2beff53f
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c
|
|
@@ -0,0 +1,253 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000fffe;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[2]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[0]) = 0x0000fffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00200010;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[1]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x0000fffe;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffff0008;
|
|
+ *((int *)&__m128_op1[3]) = 0xffc2ffe0;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000ffc1;
|
|
+ *((int *)&__m128_op1[0]) = 0x00010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000008;
|
|
+ *((int *)&__m128_op0[1]) = 0x00200020;
|
|
+ *((int *)&__m128_op0[0]) = 0x00200020;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op0[2]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op0[1]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xf001f001;
|
|
+ *((int *)&__m128_op1[0]) = 0x0101f002;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xfeffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xfeffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000fff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffe000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00001020;
|
|
+ *((int *)&__m128_op1[0]) = 0x20204000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfefd7f7f7f7f7f7e;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xdffdbffeba6f5543;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff3d06ffff4506;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x7ffffffe7ffff800;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000003bfb4000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000100010100;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff00011cf0c569;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xc0000002b0995850;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x80808080806b000b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x8080808080808080;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x8080808080808080;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000084d12ce;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000024170000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000084d12ce;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000044470000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c
|
|
new file mode 100644
|
|
index 000000000..bfa4914be
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c
|
|
@@ -0,0 +1,214 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0x80000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00a300a3;
|
|
+ *((int *)&__m128_op1[2]) = 0x00a300a3;
|
|
+ *((int *)&__m128_op1[1]) = 0x00a300a3;
|
|
+ *((int *)&__m128_op1[0]) = 0x00a300a3;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xb8ec43be;
|
|
+ *((int *)&__m128_op1[2]) = 0xfe38e64b;
|
|
+ *((int *)&__m128_op1[1]) = 0x6477d042;
|
|
+ *((int *)&__m128_op1[0]) = 0x343cce24;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000010;
|
|
+ *((int *)&__m128_op0[2]) = 0x00100010;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00020000;
|
|
+ *((int *)&__m128_op0[0]) = 0xffff0001;
|
|
+ *((int *)&__m128_op1[3]) = 0x63636363;
|
|
+ *((int *)&__m128_op1[2]) = 0x63636363;
|
|
+ *((int *)&__m128_op1[1]) = 0x63636363;
|
|
+ *((int *)&__m128_op1[0]) = 0x63636363;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x03080401;
|
|
+ *((int *)&__m128_op0[2]) = 0x0d090107;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x7ff8000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0a0a0a000a0a0a00;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0a0a0a0009090900;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffff01;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000000000ff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x80808080806b000b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000007ff000ff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x67157b5100005000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x387c7e0a133f2000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xf359f359f359f359;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xf359f359f359f359;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0177fff0fffffff0;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000011ff8bc;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c
|
|
new file mode 100644
|
|
index 000000000..bc573936d
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c
|
|
@@ -0,0 +1,450 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xf2f2e5e5;
|
|
+ *((int *)&__m128_op0[2]) = 0xe5e5e5e5;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xe5e5e5e5;
|
|
+ *((int *)&__m128_op1[2]) = 0xe5e5e5e5;
|
|
+ *((int *)&__m128_op1[1]) = 0xe5e5e5e5;
|
|
+ *((int *)&__m128_op1[0]) = 0xe4e4e46d;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00800000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x1f400000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x14ccc632;
|
|
+ *((int *)&__m128_op0[2]) = 0x0076a4d2;
|
|
+ *((int *)&__m128_op0[1]) = 0x685670d2;
|
|
+ *((int *)&__m128_op0[0]) = 0x7e00682a;
|
|
+ *((int *)&__m128_op1[3]) = 0x14ccc632;
|
|
+ *((int *)&__m128_op1[2]) = 0x0076a4d2;
|
|
+ *((int *)&__m128_op1[1]) = 0x685670d2;
|
|
+ *((int *)&__m128_op1[0]) = 0x7e00682a;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[2]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[1]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[0]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0xc6c6c6c6;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0xc6c6c6c6;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0xc6c6c6c6;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0xc6c6c6c6;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000006;
|
|
+ *((int *)&__m128_op1[2]) = 0x00007fff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000008;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffa209;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00fc0000;
|
|
+ *((int *)&__m128_op1[3]) = 0xfe07e5fe;
|
|
+ *((int *)&__m128_op1[2]) = 0xfefdddfe;
|
|
+ *((int *)&__m128_op1[1]) = 0x00020100;
|
|
+ *((int *)&__m128_op1[0]) = 0xfedd0c00;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffff0000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000fffd;
|
|
+ *((int *)&__m128_op1[3]) = 0x7fffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00008000;
|
|
+ *((int *)&__m128_op1[2]) = 0x3f80ffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x370bdfec;
|
|
+ *((int *)&__m128_op0[2]) = 0xffecffec;
|
|
+ *((int *)&__m128_op0[1]) = 0x370bdfec;
|
|
+ *((int *)&__m128_op0[0]) = 0xa2eb9931;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000040;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000040;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xc2fc0000;
|
|
+ *((int *)&__m128_op1[2]) = 0xc3040000;
|
|
+ *((int *)&__m128_op1[1]) = 0xc2fc0000;
|
|
+ *((int *)&__m128_op1[0]) = 0xc3040000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00fe00fe;
|
|
+ *((int *)&__m128_op0[2]) = 0x000200fe;
|
|
+ *((int *)&__m128_op0[1]) = 0x00fe00fe;
|
|
+ *((int *)&__m128_op0[0]) = 0x000200fe;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000004;
|
|
+ *((int *)&__m128_op1[0]) = 0x55555555;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000158;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffa8;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xf3e6586b;
|
|
+ *((int *)&__m128_op0[2]) = 0x60d7b152;
|
|
+ *((int *)&__m128_op0[1]) = 0xf7077b93;
|
|
+ *((int *)&__m128_op0[0]) = 0x4ac0e000;
|
|
+ *((int *)&__m128_op1[3]) = 0x1498507a;
|
|
+ *((int *)&__m128_op1[2]) = 0x144d0050;
|
|
+ *((int *)&__m128_op1[1]) = 0x7b370981;
|
|
+ *((int *)&__m128_op1[0]) = 0xc01200e0;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffc2007a;
|
|
+ *((int *)&__m128_op0[2]) = 0xff230027;
|
|
+ *((int *)&__m128_op0[1]) = 0x0080005e;
|
|
+ *((int *)&__m128_op0[0]) = 0xff600001;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000100010001fffd;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000004fc04f81;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000004fc04f80;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x13f9c5b60028a415;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x545cab1d81a83bea;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfefd7f7f7f7f7f7e;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xdffdbffeba6f5543;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfefd7f7f7f7f7f7e;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xdffdbffeba6f5543;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffff700000009;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffff700000009;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x7f8000007f800000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x4fa432d67fc00000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0141010101410101;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0141010101410101;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffcffff00000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000fffd000a0000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xf0fd800080000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000a00028004000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00820082ff81ff81;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xff81ff81ff81ff81;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000001000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000120002000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000100013fa0;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0007000100040102;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0003000100010101;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0007000100040102;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0003000100010101;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x9c9c9c9c9c9c9c9c;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c
|
|
new file mode 100644
|
|
index 000000000..87cb8da7c
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c
|
|
@@ -0,0 +1,407 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffdfff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffdfff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffe000;
|
|
+ *((int *)&__m128_op1[0]) = 0x01ffe200;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00010002;
|
|
+ *((int *)&__m128_op0[2]) = 0x0000fe7d;
|
|
+ *((int *)&__m128_op0[1]) = 0x00010002;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000fe02;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x0000007b;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x1223dabf;
|
|
+ *((int *)&__m128_op0[2]) = 0x4c3b3549;
|
|
+ *((int *)&__m128_op0[1]) = 0x8e8f8626;
|
|
+ *((int *)&__m128_op0[0]) = 0xf15be124;
|
|
+ *((int *)&__m128_op1[3]) = 0xfffffacd;
|
|
+ *((int *)&__m128_op1[2]) = 0xb6dbecac;
|
|
+ *((int *)&__m128_op1[1]) = 0x1f5533a6;
|
|
+ *((int *)&__m128_op1[0]) = 0x94f902c0;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xfbffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0x27001517;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0xffff53d9;
|
|
+ *((int *)&__m128_op0[1]) = 0xffff0001;
|
|
+ *((int *)&__m128_op0[0]) = 0xffff9515;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[2]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[1]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[0]) = 0x00010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000080;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00df020f;
|
|
+ *((int *)&__m128_op0[0]) = 0x0078007f;
|
|
+ *((int *)&__m128_op1[3]) = 0x0037ffd4;
|
|
+ *((int *)&__m128_op1[2]) = 0x0083ffe5;
|
|
+ *((int *)&__m128_op1[1]) = 0x001e0052;
|
|
+ *((int *)&__m128_op1[0]) = 0x001ffff9;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00ff00ff;
|
|
+ *((int *)&__m128_op0[0]) = 0x00ff00ff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x05452505;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000004;
|
|
+ *((int *)&__m128_op0[0]) = 0x442403e4;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000101;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000101;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000101;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000101;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000002;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000002;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000002;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000002;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00010000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00010000;
|
|
+ *((int *)&__m128_op0[1]) = 0x0000cd63;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000cd63;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffcd63;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffcd63;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffd765;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffd765;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffff00ff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffff0000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0x0000ffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffff0c8000c212;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xfefffeff7f002d06;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00f0008100800080;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00f000807000009e;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffe00029f9f6061;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffc0800000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000c0010000a186;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00067fff0002a207;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffff80000001;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fffffff7fffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x3fbf3fbf00007fff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000003fbf3fbf;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff7fff7fff7ff8;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000013ec13e;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xc03fc03fc0ff00ff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffff00018d8b;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x67eb85af0000b000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xc8847ef6ed3f2000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfe3bfb01fe3bfe01;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xfe03fe3ffe01fa21;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c
|
|
new file mode 100644
|
|
index 000000000..3845e8ec3
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c
|
|
@@ -0,0 +1,512 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[0]) = 0x0000ffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[1]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[2]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[1]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[0]) = 0x7f800000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000001;
|
|
+ *((int *)&__m128_op0[2]) = 0x00007f01;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffff02;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x05452505;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000004;
|
|
+ *((int *)&__m128_op1[0]) = 0x442403e4;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x5f675e96;
|
|
+ *((int *)&__m128_op0[2]) = 0xe29a5a60;
|
|
+ *((int *)&__m128_op0[1]) = 0x7fff7fff;
|
|
+ *((int *)&__m128_op0[0]) = 0x7fff7fff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x5e695e95;
|
|
+ *((int *)&__m128_op1[0]) = 0xe1cb5a01;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00800080;
|
|
+ *((int *)&__m128_op0[2]) = 0x00800080;
|
|
+ *((int *)&__m128_op0[1]) = 0x0080006b;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000000b;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x80808080;
|
|
+ *((int *)&__m128_op1[0]) = 0x806b000b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[1]) = 0x7f800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x7f800000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xff800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xff800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffffffc;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
|
|
+ *((int *)&__m128_op1[0]) = 0xfffffffc;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffc2ffe7;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000007;
|
|
+ *((int *)&__m128_op0[1]) = 0x0000ffc1;
|
|
+ *((int *)&__m128_op0[0]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0xfffff1a0;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x153e3e49;
|
|
+ *((int *)&__m128_op0[2]) = 0x307d0771;
|
|
+ *((int *)&__m128_op0[1]) = 0x0d8e3670;
|
|
+ *((int *)&__m128_op0[0]) = 0x6ac02b9b;
|
|
+ *((int *)&__m128_op1[3]) = 0x55aa55c3;
|
|
+ *((int *)&__m128_op1[2]) = 0xd5aa55c4;
|
|
+ *((int *)&__m128_op1[1]) = 0xaa55556f;
|
|
+ *((int *)&__m128_op1[0]) = 0xd5aaaac1;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0x0015172b;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xfffffffe;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xfffffffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffff0000;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[2]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[1]) = 0x00010001;
|
|
+ *((int *)&__m128_op0[0]) = 0x00010001;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x86dd8341;
|
|
+ *((int *)&__m128_op1[2]) = 0xb164f12b;
|
|
+ *((int *)&__m128_op1[1]) = 0x9611c398;
|
|
+ *((int *)&__m128_op1[0]) = 0x5b3159f5;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000001f;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000200000002;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000300000003;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xe93d0bd19ff07013;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x65017c2ac9ca9fd0;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00d3012acc56f9bb;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000001021;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffb4ff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffb4ff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x14ccc6320176a4d2;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x685670d37e80682a;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x003fffff00000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x003fffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000001000000010;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000001000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0080000000800000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x345002920f3017d6;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffffffffffe;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffff8607db959f;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xff0cff78ff96ff14;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ef8000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x14ccc6320176a4d2;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x685670d37e80682a;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff00000000ffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff00000001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffee00000004;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x80808080806b000b;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c
|
|
new file mode 100644
|
|
index 000000000..964eff79f
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c
|
|
@@ -0,0 +1,398 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00003fee;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000004;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000002;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x03574e3a;
|
|
+ *((int *)&__m128_op1[2]) = 0x03574e3a;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00010400;
|
|
+ *((int *)&__m128_op1[3]) = 0x10f917d7;
|
|
+ *((int *)&__m128_op1[2]) = 0x2d3d01e4;
|
|
+ *((int *)&__m128_op1[1]) = 0x203e16d1;
|
|
+ *((int *)&__m128_op1[0]) = 0x16de012b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x0000101f;
|
|
+ *((int *)&__m128_op0[2]) = 0xffff8b68;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000b6f;
|
|
+ *((int *)&__m128_op0[0]) = 0xffff8095;
|
|
+ *((int *)&__m128_op1[3]) = 0x10f917d7;
|
|
+ *((int *)&__m128_op1[2]) = 0x2d3d01e4;
|
|
+ *((int *)&__m128_op1[1]) = 0x203e16d1;
|
|
+ *((int *)&__m128_op1[0]) = 0x16de012b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x11000f20;
|
|
+ *((int *)&__m128_op0[2]) = 0x10000e20;
|
|
+ *((int *)&__m128_op0[1]) = 0x0f000d20;
|
|
+ *((int *)&__m128_op0[0]) = 0x0e000c20;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00050005;
|
|
+ *((int *)&__m128_op0[2]) = 0x00050005;
|
|
+ *((int *)&__m128_op0[1]) = 0x00050005;
|
|
+ *((int *)&__m128_op0[0]) = 0x00050005;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x15d926c7;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000e41b;
|
|
+ *((int *)&__m128_op1[3]) = 0xfffffacd;
|
|
+ *((int *)&__m128_op1[2]) = 0xb6dbecac;
|
|
+ *((int *)&__m128_op1[1]) = 0x1f5533a6;
|
|
+ *((int *)&__m128_op1[0]) = 0x94f902c0;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x04040504;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x04040504;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x0001000c;
|
|
+ *((int *)&__m128_op0[2]) = 0xfffffff2;
|
|
+ *((int *)&__m128_op0[1]) = 0x0001000d;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffffff1;
|
|
+ *((int *)&__m128_op1[3]) = 0xffff8a17;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffc758;
|
|
+ *((int *)&__m128_op1[1]) = 0xffff69bb;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffad3b;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xff800000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xff800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffff1739;
|
|
+ *((int *)&__m128_op1[2]) = 0xffff48aa;
|
|
+ *((int *)&__m128_op1[1]) = 0xffff2896;
|
|
+ *((int *)&__m128_op1[0]) = 0xffff5b88;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000003;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000003f;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000003;
|
|
+ *((int *)&__m128_op1[0]) = 0x0000003f;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x084d12ce;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x24170000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x7474f6fd7474fefe;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xf474f6fef474f6fe;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001fffffffe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x1817161517161514;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x1615141315141312;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0101fe870101fe87;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0101fe8700000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x62cbf96e4acfaf40;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xf0bc9a5278285a4a;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000007fffa9ed;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x7f8000017fffca8b;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffff7603;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x1111113111111141;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x1111113111111121;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00ff000100ff00fe;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff003000ff00a0;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000005e695e95;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x5e695e96c396b402;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x000300037ff000ff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0003000300a10003;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0001000101010001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0001000100010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000008000000080;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000008000000080;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000003ff8;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x01533b5e7489ae24;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffab7e71e33848;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c
|
|
new file mode 100644
|
|
index 000000000..ea47baf40
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c
|
|
@@ -0,0 +1,269 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x0000007f;
|
|
+ *((int *)&__m128_op0[2]) = 0x0000007f;
|
|
+ *((int *)&__m128_op0[1]) = 0x0000007f;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000007f;
|
|
+ *((int *)&__m128_op1[3]) = 0x3ff00000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xfffc0020;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x2757de72;
|
|
+ *((int *)&__m128_op0[2]) = 0x33d771a3;
|
|
+ *((int *)&__m128_op0[1]) = 0x166891d5;
|
|
+ *((int *)&__m128_op0[0]) = 0x1e8b7eff;
|
|
+ *((int *)&__m128_op1[3]) = 0x2757de72;
|
|
+ *((int *)&__m128_op1[2]) = 0x33d771a3;
|
|
+ *((int *)&__m128_op1[1]) = 0x166891d5;
|
|
+ *((int *)&__m128_op1[0]) = 0x1e8b7eff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00fe00ff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000001;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffffffe;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffff02;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x0000000d;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xfffffe03;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xfffffe03;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xbafebb00;
|
|
+ *((int *)&__m128_op1[2]) = 0xffd500fe;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0xbffffffe;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x80000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x80000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x80000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x80000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x000000ff;
|
|
+ *((int *)&__m128_op1[2]) = 0x0000857a;
|
|
+ *((int *)&__m128_op1[1]) = 0x05fafe01;
|
|
+ *((int *)&__m128_op1[0]) = 0x01fe000e;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x7fff7fff;
|
|
+ *((int *)&__m128_op0[2]) = 0x7fff7fff;
|
|
+ *((int *)&__m128_op0[1]) = 0xbf6b8101;
|
|
+ *((int *)&__m128_op0[0]) = 0x81018101;
|
|
+ *((int *)&__m128_op1[3]) = 0xe3636363;
|
|
+ *((int *)&__m128_op1[2]) = 0x63abdf16;
|
|
+ *((int *)&__m128_op1[1]) = 0x41f8e080;
|
|
+ *((int *)&__m128_op1[0]) = 0x16161198;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffff00000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000005d5d;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x08fdc221bfdb1927;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x4303c67e9b7fb213;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fffffff7ffffffb;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000002;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000040002;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000158;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffff000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000d00000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c
|
|
new file mode 100644
|
|
index 000000000..68cb5a52f
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c
|
|
@@ -0,0 +1,335 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lsxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
|
|
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
|
|
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xe17fe003;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0x0000ffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0xffffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x00190819;
|
|
+ *((int *)&__m128_op1[2]) = 0x00190019;
|
|
+ *((int *)&__m128_op1[1]) = 0x00190819;
|
|
+ *((int *)&__m128_op1[0]) = 0x00190019;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xfe800000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000001;
|
|
+ *((int *)&__m128_op1[3]) = 0x7fffffff;
|
|
+ *((int *)&__m128_op1[2]) = 0x82bb9784;
|
|
+ *((int *)&__m128_op1[1]) = 0x7fffffff;
|
|
+ *((int *)&__m128_op1[0]) = 0xc6bb97ac;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x7f3f0180;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0xa2321469;
|
|
+ *((int *)&__m128_op0[0]) = 0x7fd03f7f;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000406;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000406;
|
|
+ *((int *)&__m128_op1[1]) = 0x02020202;
|
|
+ *((int *)&__m128_op1[0]) = 0x0202fe02;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0xfffffff5;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[2]) = 0x00000014;
|
|
+ *((int *)&__m128_op0[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op0[0]) = 0x00000014;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0xfffc0004;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x67eb85b0;
|
|
+ *((int *)&__m128_op0[2]) = 0xb2ebb001;
|
|
+ *((int *)&__m128_op0[1]) = 0xc8847ef6;
|
|
+ *((int *)&__m128_op0[0]) = 0xed3f2000;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x00000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0x0002de46;
|
|
+ *((int *)&__m128_op0[2]) = 0x682de060;
|
|
+ *((int *)&__m128_op0[1]) = 0x09b50da6;
|
|
+ *((int *)&__m128_op0[0]) = 0xe67b8fc0;
|
|
+ *((int *)&__m128_op1[3]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[2]) = 0x084d12ce;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x24170000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0x00ffffff;
|
|
+ *((int *)&__m128_op0[0]) = 0x00ffffff;
|
|
+ *((int *)&__m128_op1[3]) = 0x0000feff;
|
|
+ *((int *)&__m128_op1[2]) = 0x23560000;
|
|
+ *((int *)&__m128_op1[1]) = 0x0000fd16;
|
|
+ *((int *)&__m128_op1[0]) = 0x54860000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((int *)&__m128_op0[3]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[2]) = 0xffffffff;
|
|
+ *((int *)&__m128_op0[1]) = 0xfffffffe;
|
|
+ *((int *)&__m128_op0[0]) = 0xfffff784;
|
|
+ *((int *)&__m128_op1[3]) = 0x0177fff0;
|
|
+ *((int *)&__m128_op1[2]) = 0xfffffff0;
|
|
+ *((int *)&__m128_op1[1]) = 0x00000000;
|
|
+ *((int *)&__m128_op1[0]) = 0x011ff8bc;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0002000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0002000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ff00ff00ff00fe;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffe5;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffe5;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fff7fff7fff7fff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000007fff7fff;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffffffff800;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ff000000ff0000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffebd06fffe820c;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff7ffe7fff3506;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ffffffeffffffff;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x4f804f804f804f80;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x4f804f804f804f80;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x00007fff00007fff;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000002f;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000029;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000003a24;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x003dbe88077c78c1;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001fffe0001fefc;
|
|
+ *((unsigned long *)&__m128d_op1[1]) = 0x0007000000050000;
|
|
+ *((unsigned long *)&__m128d_op1[0]) = 0x0003000100010001;
|
|
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
|
|
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
--
|
|
2.33.0
|
|
|