From patchwork Wed Sep 13 03:37:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: chenxiaolong X-Patchwork-Id: 138604 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp835143vqx; Tue, 12 Sep 2023 20:51:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFozWIZhQ3yEetBw2LLkl0YXRmHnDTGK6xsz4c2abJpoRio2JJq1WqiXHSar6/Nxh9c7NY7 X-Received: by 2002:a17:907:b13:b0:9a2:200:b694 with SMTP id h19-20020a1709070b1300b009a20200b694mr770611ejl.11.1694577069810; Tue, 12 Sep 2023 20:51:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694577069; cv=none; d=google.com; s=arc-20160816; b=n3TsrfRtwWiueYS7FdH+c6HyckBGVT7yKSKKx1RKDbgZ6E4AzfFfvY3UezDSRoJfHj 6I+NjuyMNYAT8n93dULehRBrS5sZxHzLA58MbSQLjZyBwjlIlk6dITb29BX1qIvFSvil Urz1SY1XdnUsZ3GEP29MS6TG1wdVrS/U8uEDJxgQ+P/piIFwNz2jV3LfFAryghvRQ5C+ Ya3zQdBE7/d9aEqGgcs3nmfcMVN1rd+krb9I8v9VoRYuzEuSHiHKfkPqtZzvrMCrS/NG yD2eiAB/d4sPujyoSwSKh6Cik8OqJ3jt+06zk8QxtIFZRXuuiSHc3DerYnkXc9tooHab i2VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dmarc-filter :delivered-to; bh=dOIKeITAVSQaeadh3xPQwcwjNuh/DJlGGqM0d5krYVw=; fh=3pFUYcpS/27XRzOf17GfR86AuNQu+P1CET04YURgCLs=; b=e86AMzvfUW2nA4PVhnhIVOGP/EnGwjL5/aeC53KsRVJAZWl/0xNQfukRvYG9EGw5dD ePsNRqsiLP1h/04eGWFgvdppZ20dm1RnG+xRnmbcUfNj8T7K1HPaacFGs20met3Cs1kg oC/Te6he0ojbnR7LmAG35BDB+piHljYEco4rACNnMBUYFFHlLNtOMUVKxV5LdLsuGm+8 +AhbCys+ga+8hp+WqDaUtoSu3AU/g4Qf4n1Y6pSa/1GvbaN799my9XyoTEW5/IFwpH6c kieMRrKN7ALRJ0HFiODPcvzYxLKlJh2hEHbaD5QphVXGPY8ba4v8QMR9dxDRjY3dljYb 9YIA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id ko18-20020a170907987200b0099cc4c7e050si9832179ejc.237.2023.09.12.20.51.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 20:51:09 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C10F338768A9 for ; Wed, 13 Sep 2023 03:39:14 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 8E9AB3893656 for ; Wed, 13 Sep 2023 03:37:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E9AB3893656 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=loongson.cn Received: from mail.loongson.cn ([114.242.206.163]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgGh2-0003wn-Oj for gcc-patches@gcc.gnu.org; Tue, 12 Sep 2023 23:37:40 -0400 Received: from loongson.cn (unknown [10.10.130.252]) by gateway (Coremail) with SMTP id _____8AxJuh5LgFlJTEmAA--.15145S3; Wed, 13 Sep 2023 11:37:29 +0800 (CST) Received: from slurm-master.loongson.cn (unknown [10.10.130.252]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxS9x3LgFlQhACAA--.3563S4; Wed, 13 Sep 2023 11:37:28 +0800 (CST) From: Xiaolong Chen To: gcc-patches@gcc.gnu.org Cc: xry111@xry111.site, i@xen0n.name, xuchenghua@loongson.cn, chenglulu@loongson.cn, Xiaolong Chen Subject: [PATCH v4 20/23] LoongArch: Add tests for SX vector vfcmp instructions. Date: Wed, 13 Sep 2023 11:37:23 +0800 Message-Id: <20230913033726.6408-1-chenxiaolong@loongson.cn> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CM-TRANSID: AQAAf8DxS9x3LgFlQhACAA--.3563S4 X-CM-SenderInfo: hfkh05xldrz0tqj6z05rqj20fqof0/1tbiAQANBWUBHCIBGAAAsK X-Coremail-Antispam: 1Uk129KBj9DXoWktryxXFy7tw43Zr13ZryruFX_yoW5Xry7Zr c_JF45JFy8Wr429r9rXr1DZF90v3y7XanFva1UAF1jq3Z7tw1kZa43GF18Xr17Jw1vyF13 ZFyDA348Cr4kGr18KosvyTuYvTs0mTUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUj1kv1T uYvTs0mT0YCTnIWjqI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9f nUUIcSsGvfJTRUUUbc8YFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4 v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0 rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267 AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x02 67AKxVW8Jr0_Cr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6x ACxx1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26rWY6Fy7McIj6I8E 87Iv67AKxVWxJVW8Jr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JMxAIw2 8IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4l x2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrw CI42IY6xIIjxv20xvE14v26F1j6w1UMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWxJVW8Jr1l IxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26F4j6r4UJwCI42IY6I 8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUcD73DUUUU Received-SPF: pass client-ip=114.242.206.163; envelope-from=chenxiaolong@loongson.cn; helo=mail.loongson.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, SPF_FAIL, SPF_HELO_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776892845416224436 X-GMAIL-MSGID: 1776892845416224436 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. --- .../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 00000000000..b448c207629 --- /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 + +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 00000000000..98941b47d8b --- /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 + +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 00000000000..409bce0ecda --- /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 + +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 00000000000..39c9cf7a7a2 --- /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 + +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 00000000000..c3da43bb499 --- /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 + +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 00000000000..5228dbede13 --- /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 + +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 00000000000..a2beff53fb4 --- /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 + +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 00000000000..bfa4914bee6 --- /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 + +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 00000000000..bc573936dc5 --- /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 + +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 00000000000..87cb8da7ca6 --- /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 + +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 00000000000..3845e8ec359 --- /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 + +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 00000000000..964eff79f42 --- /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 + +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 00000000000..ea47baf40df --- /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 + +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 00000000000..68cb5a52fbd --- /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 + +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; +}