From patchwork Wed Sep 13 03:40:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: chenxiaolong X-Patchwork-Id: 138614 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp837305vqx; Tue, 12 Sep 2023 20:59:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF0Cg+vjIrZptOkKsgvlnqQCtaHDeWCabLO4oiYFxvwRwOGrjGjsG9sOtY4OCC7TFfiIJ96 X-Received: by 2002:a17:906:9c1:b0:9a2:2635:daa8 with SMTP id r1-20020a17090609c100b009a22635daa8mr1074826eje.56.1694577544636; Tue, 12 Sep 2023 20:59:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694577544; cv=none; d=google.com; s=arc-20160816; b=DkFmfLkK1QKRBSGFVhoHArxOTalcNY/n7uSg3iNqNkAW4J5x8PF3pVIq8yt3hHVlYh +KaKQvP8wfhuya5rQpHZElkojGKUdh+bJebDjKmtVVz9W/jTF2l20lshqEmZ+Bdn5CIv bbSRpRCXpTWbysxoxk7dMLMmYz0VWrf97gJr/14b6BiaS5m+TOwnx3OPSQhKuUDwZ7vV eztBV4ZdvYO0ZbV0KK9qbCpMgAvk38UYif24eD2O6SpmQ8MSmgNiW0HD6vMckVdotJV2 +PUHyCQat5Kw03I0pUeTr/Tqe7y5AsBqo+zmnb8C7/open1P1QUBKbKrqn5u3/CTr6lM 8dMQ== 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:references:in-reply-to:message-id:date:subject:cc:to :from:dmarc-filter:delivered-to; bh=1+Bao6gv0KdqBoAd2dmF9irDInHQvLk8NM4KRckEaU0=; fh=3pFUYcpS/27XRzOf17GfR86AuNQu+P1CET04YURgCLs=; b=pFp9pm6sEOwj2QO8Iyx86Um1k63qmarMbqOb2jotJ/iwQYx6ai/TTFacOLb1BoGHu6 DEA5SQA8SoA9Bwgu0XkYODtsw9HWwK05IIiqLgmekq+q1JfxFqSiJf0SjPQlRdSfkq7m H3wXzHjF023dMaEBqNHXYBh2+NSI5ppe0m4W8BUm1nFL4O8GBdnJk0bXVG9+qDTcdwUe ZmlUAY33fDtAlgpZ3h0PZignjaLLOXOWh4OFfCDQt16kBtyAMG/YtUg65Iq/aJ15DGtL 5Dy+IcdY1UFrCgV3v+kSW/T5tlbj6cyrfpyJiZ+uRKvHmGLiIrFDdPyyIk7Fx7dgWxE/ gPrQ== 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 s7-20020a170906c30700b0099cbc524430si10541749ejz.804.2023.09.12.20.59.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 20:59:04 -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 1B6C038314B0 for ; Wed, 13 Sep 2023 03:41:40 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 631EB382E74E for ; Wed, 13 Sep 2023 03:40:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 631EB382E74E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.10.130.252]) by gateway (Coremail) with SMTP id _____8Dxfes5LwFldzEmAA--.6221S3; Wed, 13 Sep 2023 11:40:41 +0800 (CST) Received: from slurm-master.loongson.cn (unknown [10.10.130.252]) by localhost.localdomain (Coremail) with SMTP id AQAAf8CxfNwtLwFlEhECAA--.3650S8; Wed, 13 Sep 2023 11:40:40 +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 14/22] LoongArch: Add tests for ASX vector floating-point operation instruction. Date: Wed, 13 Sep 2023 11:40:21 +0800 Message-Id: <20230913034026.7751-5-chenxiaolong@loongson.cn> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20230913034026.7751-1-chenxiaolong@loongson.cn> References: <20230913034026.7751-1-chenxiaolong@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: AQAAf8CxfNwtLwFlEhECAA--.3650S8 X-CM-SenderInfo: hfkh05xldrz0tqj6z05rqj20fqof0/1tbiAQANBWUBHCIBRAAAsW X-Coremail-Antispam: 1Uk129KBj93XoWrtFWDJryUArW3Xw4DJw1kp5X_XrWrJr1Dpr 1xJr13Kayvka1UtrWUtFW2grs0yr40ya4DXF17G3srua4kKF9xXr47ArWUArn5GF48ZF13 tFs8J3y8trWUGwcCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUU92b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E 14v26r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44 I27wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_ZF0_GryDMcIj6I8E 87Iv67AKxVW8Jr0_Cr1UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwACjc xG6xCI17CEII8vrVW3JVW8Jr1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_ Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17 CE14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_tr0E3s1lIxAIcVC0 I7IYx2IY6xkF7I0E14v26r4UJVWxJr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0x vEx4A2jsIE14v26r4UJVWxJr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVF xhVjvjDU0xZFpf9x07b0c_-UUUUU= X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_NONE, SPF_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: 1776893343039092662 X-GMAIL-MSGID: 1776893343039092662 gcc/testsuite/ChangeLog: * gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c: New test. * gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c: New test. --- .../loongarch/vector/lasx/lasx-xvfadd_d.c | 545 +++++++++++ .../loongarch/vector/lasx/lasx-xvfadd_s.c | 911 ++++++++++++++++++ .../loongarch/vector/lasx/lasx-xvfclass_d.c | 152 +++ .../loongarch/vector/lasx/lasx-xvfclass_s.c | 95 ++ .../loongarch/vector/lasx/lasx-xvflogb_d.c | 86 ++ .../loongarch/vector/lasx/lasx-xvflogb_s.c | 115 +++ .../loongarch/vector/lasx/lasx-xvfmadd_d.c | 382 ++++++++ .../loongarch/vector/lasx/lasx-xvfmadd_s.c | 720 ++++++++++++++ .../loongarch/vector/lasx/lasx-xvfmax_d.c | 230 +++++ .../loongarch/vector/lasx/lasx-xvfmax_s.c | 560 +++++++++++ .../loongarch/vector/lasx/lasx-xvfmaxa_d.c | 230 +++++ .../loongarch/vector/lasx/lasx-xvfmaxa_s.c | 506 ++++++++++ .../loongarch/vector/lasx/lasx-xvfsqrt_d.c | 482 +++++++++ .../loongarch/vector/lasx/lasx-xvfsqrt_s.c | 457 +++++++++ 14 files changed, 5471 insertions(+) create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c new file mode 100644 index 00000000000..657a19e5896 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c @@ -0,0 +1,545 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_op0[2]) = 0xffff00000000ffff; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x7ffffffffffff7ff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffe06df0d7; + *((unsigned long *)&__m256d_op1[1]) = 0x7ffffffffffff7ff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffbe8b470f; + *((unsigned long *)&__m256d_result[3]) = 0x7ffffffffffff7ff; + *((unsigned long *)&__m256d_result[2]) = 0xffff00000000ffff; + *((unsigned long *)&__m256d_result[1]) = 0x7ffffffffffff7ff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffbe8b470f; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x41d6600000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x41d6600000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0x41d6600000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0x41d6600000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7fffffffffffffff; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_op0[2]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_op0[1]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_op0[0]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_result[2]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_result[1]) = 0x00007fff00007fff; + *((unsigned long *)&__m256d_result[0]) = 0x00007fff00007fff; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000022beb03f; + *((unsigned long *)&__m256d_op0[2]) = 0x7fffffffa2beb040; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000022beb03f; + *((unsigned long *)&__m256d_op0[0]) = 0x7fffffffa2beb040; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x000f000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x000f000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000022beb03f; + *((unsigned long *)&__m256d_result[2]) = 0x7fffffffa2beb040; + *((unsigned long *)&__m256d_result[1]) = 0x0000000022beb03f; + *((unsigned long *)&__m256d_result[0]) = 0x7fffffffa2beb040; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x000001c000000134; + *((unsigned long *)&__m256d_op0[2]) = 0x7fff7fff7fff7fff; + *((unsigned long *)&__m256d_op0[1]) = 0x000001c000000134; + *((unsigned long *)&__m256d_op0[0]) = 0x7fff7fff7fff7fff; + *((unsigned long *)&__m256d_op1[3]) = 0x000001c000000134; + *((unsigned long *)&__m256d_op1[2]) = 0x7fff7fff7fff7fff; + *((unsigned long *)&__m256d_op1[1]) = 0x000001c000000134; + *((unsigned long *)&__m256d_op1[0]) = 0x7fff7fff7fff7fff; + *((unsigned long *)&__m256d_result[3]) = 0x0000038000000268; + *((unsigned long *)&__m256d_result[2]) = 0x7fff7fff7fff7fff; + *((unsigned long *)&__m256d_result[1]) = 0x0000038000000268; + *((unsigned long *)&__m256d_result[0]) = 0x7fff7fff7fff7fff; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000001010100; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000405; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000001010100; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000405; + *((unsigned long *)&__m256d_result[3]) = 0x0000000001010100; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000405; + *((unsigned long *)&__m256d_result[1]) = 0x0000000001010100; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000405; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000040; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000040; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000040; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000040; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op1[3]) = 0x00000000ff88ffc0; + *((unsigned long *)&__m256d_op1[2]) = 0x00000000ff78ffc0; + *((unsigned long *)&__m256d_op1[1]) = 0x00000000ff88ffc0; + *((unsigned long *)&__m256d_op1[0]) = 0x00000000ff78ffc0; + *((unsigned long *)&__m256d_result[3]) = 0x00000000ff890000; + *((unsigned long *)&__m256d_result[2]) = 0x00000000ff790000; + *((unsigned long *)&__m256d_result[1]) = 0x00000000ff890000; + *((unsigned long *)&__m256d_result[0]) = 0x00000000ff790000; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x000000000000006d; + *((unsigned long *)&__m256d_op0[2]) = 0x000000000010006d; + *((unsigned long *)&__m256d_op0[1]) = 0x000000000000006d; + *((unsigned long *)&__m256d_op0[0]) = 0x000000000010006d; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000080040; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000040; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000080040; + *((unsigned long *)&__m256d_result[3]) = 0x00000000000000ad; + *((unsigned long *)&__m256d_result[2]) = 0x00000000001800ad; + *((unsigned long *)&__m256d_result[1]) = 0x00000000000000ad; + *((unsigned long *)&__m256d_result[0]) = 0x00000000001800ad; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_op1[3]) = 0x001fffffffe00000; + *((unsigned long *)&__m256d_op1[2]) = 0x2020000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x001fffffffe00000; + *((unsigned long *)&__m256d_op1[0]) = 0x2020000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x001fffffffe00000; + *((unsigned long *)&__m256d_result[2]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0x001fffffffe00000; + *((unsigned long *)&__m256d_result[0]) = 0x7fffffffffffffff; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000001; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000001; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff8000; + __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000400000001; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000100000001; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000400000001; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000100000001; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000010100000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000010100000000; + *((unsigned long *)&__m256d_op1[3]) = 0x00008000003f0000; + *((unsigned long *)&__m256d_op1[2]) = 0x00390015003529c1; + *((unsigned long *)&__m256d_op1[1]) = 0x00008000003f0000; + *((unsigned long *)&__m256d_op1[0]) = 0x00390015003529c1; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000001ffffff; + *((unsigned long *)&__m256d_op0[2]) = 0xfe00000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000001ffffff; + *((unsigned long *)&__m256d_op0[0]) = 0xfe00000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000; + __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x00007ffe81fdfe03; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x80007ffe81fdfe03; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xc1be9e9e9f000000; + *((unsigned long *)&__m256d_op0[2]) = 0x41d8585858400000; + *((unsigned long *)&__m256d_op0[1]) = 0xc1be9e9e9f000000; + *((unsigned long *)&__m256d_op0[0]) = 0x41d8585858400000; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0xff00d5007f00ffff; + *((unsigned long *)&__m256d_op1[2]) = 0xff00ffffff00ffff; + *((unsigned long *)&__m256d_op1[1]) = 0xff00d5007f00ffff; + *((unsigned long *)&__m256d_op1[0]) = 0xff00ffffff00ffff; + *((unsigned long *)&__m256d_result[3]) = 0x7f00d5007f00ffff; + *((unsigned long *)&__m256d_result[2]) = 0x7f00ffffff00ffff; + *((unsigned long *)&__m256d_result[1]) = 0x7f00d5007f00ffff; + *((unsigned long *)&__m256d_result[0]) = 0x7f00ffffff00ffff; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000002; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000002; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffff00000002; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffff00000002; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_op0[2]) = 0x00ff00fe00ff00fe; + *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_op0[0]) = 0x00ff00fe00ff00fe; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_result[2]) = 0x00ff00fe00ff00fe; + *((unsigned long *)&__m256d_result[1]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_result[0]) = 0x00ff00fe00ff00fe; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000005536aaaaac; + *((unsigned long *)&__m256d_op0[2]) = 0x55555555aaaaaaac; + *((unsigned long *)&__m256d_op0[1]) = 0x0000005536aaaaac; + *((unsigned long *)&__m256d_op0[0]) = 0x55555555aaaaaaac; + *((unsigned long *)&__m256d_op1[3]) = 0x0006000000040000; + *((unsigned long *)&__m256d_op1[2]) = 0x0002555400000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0006000000040000; + *((unsigned long *)&__m256d_op1[0]) = 0x0002555400000000; + *((unsigned long *)&__m256d_result[3]) = 0x3f2c678e38d1104c; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x3f2c678e38d1104c; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffe367cc82f8989a; + *((unsigned long *)&__m256d_op0[2]) = 0x4f90000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0xffc3aaa8d58f43c8; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x1f0fdf7f3e3b31d4; + *((unsigned long *)&__m256d_op1[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x1f0fdf7f3e3b31d4; + *((unsigned long *)&__m256d_op1[0]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0010000000100000; + *((unsigned long *)&__m256d_op0[2]) = 0x0010000000100000; + *((unsigned long *)&__m256d_op0[1]) = 0x0010000000100000; + *((unsigned long *)&__m256d_op0[0]) = 0x0010000000100000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000483800; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000483800; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x41cc5bb8a95fd1eb; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x41cc5bb8a95fd1eb; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c new file mode 100644 index 00000000000..4002c4074c2 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c @@ -0,0 +1,911 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0x00000001; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000002; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0x00000001; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000002; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0x00000001; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000002; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0x00000001; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000002; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x40b2bf4d; + *((int *)&__m256_op0[6]) = 0x30313031; + *((int *)&__m256_op0[5]) = 0x50005000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x40b2bf4d; + *((int *)&__m256_op0[2]) = 0x30313031; + *((int *)&__m256_op0[1]) = 0x50005000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x22be22be; + *((int *)&__m256_op1[5]) = 0x7fff7fff; + *((int *)&__m256_op1[4]) = 0xa2bea2be; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x22be22be; + *((int *)&__m256_op1[1]) = 0x7fff7fff; + *((int *)&__m256_op1[0]) = 0xa2bea2be; + *((int *)&__m256_result[7]) = 0x40b2bf4d; + *((int *)&__m256_result[6]) = 0x30313031; + *((int *)&__m256_result[5]) = 0x7fff7fff; + *((int *)&__m256_result[4]) = 0xa2bea2be; + *((int *)&__m256_result[3]) = 0x40b2bf4d; + *((int *)&__m256_result[2]) = 0x30313031; + *((int *)&__m256_result[1]) = 0x7fff7fff; + *((int *)&__m256_result[0]) = 0xa2bea2be; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00ff0000; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00ff0000; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00ff0000; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00ff0000; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x0000008c; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x0000008c; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x0000008c; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x0000008c; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000118; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000118; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffff8000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffff8000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffff8000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffff8000; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xffff0101; + *((int *)&__m256_op0[4]) = 0x00000001; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xffff0101; + *((int *)&__m256_op0[0]) = 0x00000001; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0xffff0101; + *((int *)&__m256_result[4]) = 0x00000001; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0xffff0101; + *((int *)&__m256_result[0]) = 0x00000001; + __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x10101011; + *((int *)&__m256_op1[4]) = 0x10101011; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x11111112; + *((int *)&__m256_op1[0]) = 0x11111112; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00060000; + *((int *)&__m256_op0[6]) = 0x00040000; + *((int *)&__m256_op0[5]) = 0x00020000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00060000; + *((int *)&__m256_op0[2]) = 0x00040000; + *((int *)&__m256_op0[1]) = 0x00020000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00060000; + *((int *)&__m256_op1[6]) = 0x00040000; + *((int *)&__m256_op1[5]) = 0x00020000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00060000; + *((int *)&__m256_op1[2]) = 0x00040000; + *((int *)&__m256_op1[1]) = 0x00020000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x000000ff; + *((int *)&__m256_op0[4]) = 0x000000ff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x000000ff; + *((int *)&__m256_op0[0]) = 0x000000ff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000101; + *((int *)&__m256_op1[4]) = 0x00000101; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000101; + *((int *)&__m256_op1[0]) = 0x00000101; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0xffff001f; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x007fe268; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0xffff001f; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x007fe268; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0xffff001f; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x007fe268; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0xffff001f; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x007fe268; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0xffff001f; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0xffff001f; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x7f800000; + *((int *)&__m256_op1[6]) = 0x7f800000; + *((int *)&__m256_op1[5]) = 0x7f800000; + *((int *)&__m256_op1[4]) = 0x7f800000; + *((int *)&__m256_op1[3]) = 0x7f800000; + *((int *)&__m256_op1[2]) = 0x7f800000; + *((int *)&__m256_op1[1]) = 0x7f800000; + *((int *)&__m256_op1[0]) = 0x7f800000; + *((int *)&__m256_result[7]) = 0xff800000; + *((int *)&__m256_result[6]) = 0xff800000; + *((int *)&__m256_result[5]) = 0xff800000; + *((int *)&__m256_result[4]) = 0xff800000; + *((int *)&__m256_result[3]) = 0xff800000; + *((int *)&__m256_result[2]) = 0xff800000; + *((int *)&__m256_result[1]) = 0xff800000; + *((int *)&__m256_result[0]) = 0xff800000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x02a54290; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x02a54290; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x02a54290; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x0154dc84; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x02a54290; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000089; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x82a54290; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x028aa700; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x82a54290; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x02a54287; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00004200; + *((int *)&__m256_op0[6]) = 0x80000000; + *((int *)&__m256_op0[5]) = 0x5fff5fff; + *((int *)&__m256_op0[4]) = 0x607f0000; + *((int *)&__m256_op0[3]) = 0x00004200; + *((int *)&__m256_op0[2]) = 0x80000000; + *((int *)&__m256_op0[1]) = 0x5fff5fff; + *((int *)&__m256_op0[0]) = 0x607f0000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00004200; + *((int *)&__m256_result[6]) = 0x80000000; + *((int *)&__m256_result[5]) = 0x5fff5fff; + *((int *)&__m256_result[4]) = 0x607f0000; + *((int *)&__m256_result[3]) = 0x00004200; + *((int *)&__m256_result[2]) = 0x80000000; + *((int *)&__m256_result[1]) = 0x5fff5fff; + *((int *)&__m256_result[0]) = 0x607f0000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00800080; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000202; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00800080; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000202; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00800080; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000202; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00800080; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000202; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xfffefffe; + *((int *)&__m256_op0[6]) = 0xfffefffe; + *((int *)&__m256_op0[5]) = 0xfffefffe; + *((int *)&__m256_op0[4]) = 0xfffefffe; + *((int *)&__m256_op0[3]) = 0xfffefffe; + *((int *)&__m256_op0[2]) = 0xfffefffe; + *((int *)&__m256_op0[1]) = 0xfffefffe; + *((int *)&__m256_op0[0]) = 0xfffefffe; + *((int *)&__m256_op1[7]) = 0x000023a3; + *((int *)&__m256_op1[6]) = 0x00003fff; + *((int *)&__m256_op1[5]) = 0x000023a3; + *((int *)&__m256_op1[4]) = 0x00003fef; + *((int *)&__m256_op1[3]) = 0x000023a3; + *((int *)&__m256_op1[2]) = 0x00003fff; + *((int *)&__m256_op1[1]) = 0x000023a3; + *((int *)&__m256_op1[0]) = 0x00003fef; + *((int *)&__m256_result[7]) = 0xfffefffe; + *((int *)&__m256_result[6]) = 0xfffefffe; + *((int *)&__m256_result[5]) = 0xfffefffe; + *((int *)&__m256_result[4]) = 0xfffefffe; + *((int *)&__m256_result[3]) = 0xfffefffe; + *((int *)&__m256_result[2]) = 0xfffefffe; + *((int *)&__m256_result[1]) = 0xfffefffe; + *((int *)&__m256_result[0]) = 0xfffefffe; + __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x002a542a; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x002a542a; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000001; + *((int *)&__m256_op0[6]) = 0x00000001; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000001; + *((int *)&__m256_op0[2]) = 0x00000001; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7fc00000; + *((int *)&__m256_result[4]) = 0x7fc00000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7fc00000; + *((int *)&__m256_result[0]) = 0x7fc00000; + __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00fe00fe; + *((int *)&__m256_op0[6]) = 0x00fe00fe; + *((int *)&__m256_op0[5]) = 0x00fe00fe; + *((int *)&__m256_op0[4]) = 0x00fe00fe; + *((int *)&__m256_op0[3]) = 0x00fe00fe; + *((int *)&__m256_op0[2]) = 0x00fe00fe; + *((int *)&__m256_op0[1]) = 0x00fe00fe; + *((int *)&__m256_op0[0]) = 0x00fe00fe; + *((int *)&__m256_op1[7]) = 0x00fe00fe; + *((int *)&__m256_op1[6]) = 0x00fe00fe; + *((int *)&__m256_op1[5]) = 0x00fe00fe; + *((int *)&__m256_op1[4]) = 0x00fe00fe; + *((int *)&__m256_op1[3]) = 0x00fe00fe; + *((int *)&__m256_op1[2]) = 0x00fe00fe; + *((int *)&__m256_op1[1]) = 0x00fe00fe; + *((int *)&__m256_op1[0]) = 0x00fe00fe; + *((int *)&__m256_result[7]) = 0x3f800000; + *((int *)&__m256_result[6]) = 0x3f800000; + *((int *)&__m256_result[5]) = 0x3f800000; + *((int *)&__m256_result[4]) = 0x3f800000; + *((int *)&__m256_result[3]) = 0x3f800000; + *((int *)&__m256_result[2]) = 0x3f800000; + *((int *)&__m256_result[1]) = 0x3f800000; + *((int *)&__m256_result[0]) = 0x3f800000; + __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7fc00000; + *((int *)&__m256_result[6]) = 0x7fc00000; + *((int *)&__m256_result[5]) = 0x7fc00000; + *((int *)&__m256_result[4]) = 0x7fc00000; + *((int *)&__m256_result[3]) = 0x7fc00000; + *((int *)&__m256_result[2]) = 0x7fc00000; + *((int *)&__m256_result[1]) = 0x7fc00000; + *((int *)&__m256_result[0]) = 0x7fc00000; + __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x803f6004; + *((int *)&__m256_op0[4]) = 0x1f636003; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x803f6004; + *((int *)&__m256_op0[0]) = 0x1f636003; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x007f0107; + *((int *)&__m256_op1[4]) = 0x00c70106; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x007f0107; + *((int *)&__m256_op1[0]) = 0x00c70106; + *((int *)&__m256_result[7]) = 0x7fc00000; + *((int *)&__m256_result[6]) = 0x7fc00000; + *((int *)&__m256_result[5]) = 0xbeff7cfd; + *((int *)&__m256_result[4]) = 0x5e123f94; + *((int *)&__m256_result[3]) = 0x7fc00000; + *((int *)&__m256_result[2]) = 0x7fc00000; + *((int *)&__m256_result[1]) = 0xbeff7cfd; + *((int *)&__m256_result[0]) = 0x5e123f94; + __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000008; + *((int *)&__m256_op0[6]) = 0x60601934; + *((int *)&__m256_op0[5]) = 0x00000008; + *((int *)&__m256_op0[4]) = 0x00200028; + *((int *)&__m256_op0[3]) = 0x00000008; + *((int *)&__m256_op0[2]) = 0x60601934; + *((int *)&__m256_op0[1]) = 0x00000008; + *((int *)&__m256_op0[0]) = 0x00200028; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c new file mode 100644 index 00000000000..5d5b4c43c9c --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c @@ -0,0 +1,152 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +/* { dg-timeout 500 } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256d_op0[3]) = 0x0000000000010001; + *((unsigned long *)&__m256d_op0[2]) = 0x0000017f0000017d; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000010001; + *((unsigned long *)&__m256d_op0[0]) = 0x0000017f0000017f; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0006000000040000; + *((unsigned long *)&__m256d_op0[2]) = 0x0002000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0006000000040000; + *((unsigned long *)&__m256d_op0[0]) = 0x0002000000000000; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xbf00bf00bf00bf00; + *((unsigned long *)&__m256d_op0[2]) = 0xbf84bf00bf00bf0e; + *((unsigned long *)&__m256d_op0[1]) = 0xbf00bf00bf00bf00; + *((unsigned long *)&__m256d_op0[0]) = 0xbf84bf00bf00bf0e; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffff00ffffff00; + *((unsigned long *)&__m256d_op0[2]) = 0xff00000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0xffffff00ffffff00; + *((unsigned long *)&__m256d_op0[0]) = 0xff00000000000000; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffff0001; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffff0001; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000100; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000100; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00000000000000b7; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffefff80; + *((unsigned long *)&__m256d_op0[1]) = 0x00000000000000b7; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffefff80; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0x4040404040404040; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0x4040404040404040; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000400000004000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000400000004000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000400000004000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000400000004000; + *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100; + *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100; + __m256i_out = __lasx_xvfclass_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c new file mode 100644 index 00000000000..888e85b6ed2 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c @@ -0,0 +1,95 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +/* { dg-timeout 500 } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((int *)&__m256_op0[7]) = 0xfffffff8; + *((int *)&__m256_op0[6]) = 0xffffff08; + *((int *)&__m256_op0[5]) = 0x00ff00f8; + *((int *)&__m256_op0[4]) = 0x00ffcff8; + *((int *)&__m256_op0[3]) = 0xfffffff8; + *((int *)&__m256_op0[2]) = 0xffffff08; + *((int *)&__m256_op0[1]) = 0x00ff00f8; + *((int *)&__m256_op0[0]) = 0x00ffcff8; + *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[2]) = 0x0000008000000080; + *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[0]) = 0x0000008000000080; + __m256i_out = __lasx_xvfclass_s (__m256_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[2]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002; + __m256i_out = __lasx_xvfclass_s (__m256_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((unsigned long *)&__m256i_result[3]) = 0x0000020000000200; + *((unsigned long *)&__m256i_result[2]) = 0x0000020000000200; + *((unsigned long *)&__m256i_result[1]) = 0x0000020000000200; + *((unsigned long *)&__m256i_result[0]) = 0x0000020000000200; + __m256i_out = __lasx_xvfclass_s (__m256_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x000000ff; + *((int *)&__m256_op0[4]) = 0x000000ff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x000000ff; + *((int *)&__m256_op0[0]) = 0x000000ff; + *((unsigned long *)&__m256i_result[3]) = 0x0000020000000200; + *((unsigned long *)&__m256i_result[2]) = 0x0000010000000100; + *((unsigned long *)&__m256i_result[1]) = 0x0000020000000200; + *((unsigned long *)&__m256i_result[0]) = 0x0000010000000100; + __m256i_out = __lasx_xvfclass_s (__m256_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + *((int *)&__m256_op0[7]) = 0xfffffffb; + *((int *)&__m256_op0[6]) = 0xfffffffb; + *((int *)&__m256_op0[5]) = 0xfffffffb; + *((int *)&__m256_op0[4]) = 0xfffffffb; + *((int *)&__m256_op0[3]) = 0xfffffffb; + *((int *)&__m256_op0[2]) = 0xfffffffb; + *((int *)&__m256_op0[1]) = 0xfffffffb; + *((int *)&__m256_op0[0]) = 0xfffffffb; + *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[2]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002; + *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002; + __m256i_out = __lasx_xvfclass_s (__m256_op0); + ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c new file mode 100644 index 00000000000..bba1a06f3d6 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c @@ -0,0 +1,86 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((unsigned long *)&__m256d_op0[3]) = 0x0101010101010101; + *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffefd; + *((unsigned long *)&__m256d_op0[1]) = 0x0101010101010101; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xc08f780000000000; + *((unsigned long *)&__m256d_result[2]) = 0xfffffffffffffefd; + *((unsigned long *)&__m256d_result[1]) = 0xc08f780000000000; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvflogb_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000; + __m256d_out = __lasx_xvflogb_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000; + __m256d_out = __lasx_xvflogb_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000; + __m256d_out = __lasx_xvflogb_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000; + __m256d_out = __lasx_xvflogb_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000; + __m256d_out = __lasx_xvflogb_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c new file mode 100644 index 00000000000..b641c733fa5 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c @@ -0,0 +1,115 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvflogb_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x10101010; + *((int *)&__m256_op0[6]) = 0x10101012; + *((int *)&__m256_op0[5]) = 0x10101010; + *((int *)&__m256_op0[4]) = 0x10101012; + *((int *)&__m256_op0[3]) = 0x10101010; + *((int *)&__m256_op0[2]) = 0x10101093; + *((int *)&__m256_op0[1]) = 0x11111111; + *((int *)&__m256_op0[0]) = 0x11111113; + *((int *)&__m256_result[7]) = 0xc2be0000; + *((int *)&__m256_result[6]) = 0xc2be0000; + *((int *)&__m256_result[5]) = 0xc2be0000; + *((int *)&__m256_result[4]) = 0xc2be0000; + *((int *)&__m256_result[3]) = 0xc2be0000; + *((int *)&__m256_result[2]) = 0xc2be0000; + *((int *)&__m256_result[1]) = 0xc2ba0000; + *((int *)&__m256_result[0]) = 0xc2ba0000; + __m256_out = __lasx_xvflogb_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xff800000; + *((int *)&__m256_result[6]) = 0xff800000; + *((int *)&__m256_result[5]) = 0xff800000; + *((int *)&__m256_result[4]) = 0xff800000; + *((int *)&__m256_result[3]) = 0xff800000; + *((int *)&__m256_result[2]) = 0xff800000; + *((int *)&__m256_result[1]) = 0xff800000; + *((int *)&__m256_result[0]) = 0xff800000; + __m256_out = __lasx_xvflogb_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xff800000; + *((int *)&__m256_result[6]) = 0xff800000; + *((int *)&__m256_result[5]) = 0xff800000; + *((int *)&__m256_result[4]) = 0xff800000; + *((int *)&__m256_result[3]) = 0xff800000; + *((int *)&__m256_result[2]) = 0xff800000; + *((int *)&__m256_result[1]) = 0xff800000; + *((int *)&__m256_result[0]) = 0xff800000; + __m256_out = __lasx_xvflogb_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000087; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000087; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xff800000; + *((int *)&__m256_result[6]) = 0xff800000; + *((int *)&__m256_result[5]) = 0xc30e0000; + *((int *)&__m256_result[4]) = 0xff800000; + *((int *)&__m256_result[3]) = 0xff800000; + *((int *)&__m256_result[2]) = 0xff800000; + *((int *)&__m256_result[1]) = 0xc30e0000; + *((int *)&__m256_result[0]) = 0xff800000; + __m256_out = __lasx_xvflogb_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c new file mode 100644 index 00000000000..c85c94bf674 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c @@ -0,0 +1,382 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0xe37affb42fc05f69; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x65fb66c81da8e5ba; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[3]) = 0x8b1414140e0e0e0e; + *((unsigned long *)&__m256d_op2[2]) = 0x00d6c1c830160048; + *((unsigned long *)&__m256d_op2[1]) = 0x36722a7e66972cd6; + *((unsigned long *)&__m256d_op2[0]) = 0xe3aebaf4df958004; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0x00d6c1c830160048; + *((unsigned long *)&__m256d_result[1]) = 0x36722a7e66972cd6; + *((unsigned long *)&__m256d_result[0]) = 0xe3aebaf4df958004; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ff80; + *((unsigned long *)&__m256d_op0[2]) = 0x0000468600007f79; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffff0000ffff; + *((unsigned long *)&__m256d_op0[0]) = 0x0000f3280000dfff; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0xfe02fe02fee5fe22; + *((unsigned long *)&__m256d_op1[0]) = 0xff49fe4200000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[1]) = 0x00020001ffb6ffe0; + *((unsigned long *)&__m256d_op2[0]) = 0x0049004200000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xffffffff0000ffff; + *((unsigned long *)&__m256d_result[0]) = 0xbf28b0686066be60; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0xc5c5c5c5c5c5c5c5; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2); + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x00007f7f00000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x00007f7f00007fff; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x00000000000f1a40; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000aaaa00008bfe; + *((unsigned long *)&__m256d_op1[2]) = 0x0000aaaa0000aaaa; + *((unsigned long *)&__m256d_op1[1]) = 0x0000aaaa00008bfe; + *((unsigned long *)&__m256d_op1[0]) = 0x0000aaaa0000aaaa; + *((unsigned long *)&__m256d_op2[3]) = 0x0000aaaa00008bfe; + *((unsigned long *)&__m256d_op2[2]) = 0x0000aaaa0000aaaa; + *((unsigned long *)&__m256d_op2[1]) = 0x0000aaaa00008bfe; + *((unsigned long *)&__m256d_op2[0]) = 0x0000aaaa0000aaaa; + *((unsigned long *)&__m256d_result[3]) = 0x0000aaaa00008bfe; + *((unsigned long *)&__m256d_result[2]) = 0x0000aaaa0000aaaa; + *((unsigned long *)&__m256d_result[1]) = 0x0000aaaa00008bfe; + *((unsigned long *)&__m256d_result[0]) = 0x0000aaaa0000aaaa; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0202020202020202; + *((unsigned long *)&__m256d_op0[2]) = 0x0202810102020202; + *((unsigned long *)&__m256d_op0[1]) = 0x0202020202020202; + *((unsigned long *)&__m256d_op0[0]) = 0x0202810102020202; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x00007fff00000000; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x00007fff00000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x00007fff00000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x00007fff00000000; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x007f00ff007f00ff; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x007f00ff007f00ff; + *((unsigned long *)&__m256d_op2[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op2[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x000000000000ffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x000000000000ffff; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x00ff010000ff017e; + *((unsigned long *)&__m256d_op1[2]) = 0x01fe01ae00ff00ff; + *((unsigned long *)&__m256d_op1[1]) = 0x00ff010000ff017e; + *((unsigned long *)&__m256d_op1[0]) = 0x01fe01ae00ff00ff; + *((unsigned long *)&__m256d_op2[3]) = 0x0001000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x0000000100010001; + *((unsigned long *)&__m256d_op2[1]) = 0x0001000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x0000000100010001; + *((unsigned long *)&__m256d_result[3]) = 0x0001000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000100010001; + *((unsigned long *)&__m256d_result[1]) = 0x0001000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000100010001; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffba8300004fc2; + *((unsigned long *)&__m256d_op0[2]) = 0xffffba8300004fc2; + *((unsigned long *)&__m256d_op0[1]) = 0xffffba8300004fc2; + *((unsigned long *)&__m256d_op0[0]) = 0xffffba8300004fc2; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffba8300004fc2; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffba8300004fc2; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffff00000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0xffffffffff000000; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0xffffffffff000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffff000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffff000000; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00003fff00003fff; + *((unsigned long *)&__m256d_op0[2]) = 0x00003fff00003fff; + *((unsigned long *)&__m256d_op0[1]) = 0x00003fff00003fff; + *((unsigned long *)&__m256d_op0[0]) = 0x00003fff00003fff; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op2[3]) = 0xd3d3d3d3d3d3d3d3; + *((unsigned long *)&__m256d_op2[2]) = 0xd3d3d3d3d3d3d3d3; + *((unsigned long *)&__m256d_op2[1]) = 0xd3d3d3d3d3d3d3d3; + *((unsigned long *)&__m256d_op2[0]) = 0xd3d3d3d3d3d3d3d3; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op0[2]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op0[1]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op0[0]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op1[3]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op1[2]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op1[1]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op1[0]) = 0x00000fff00000fff; + *((unsigned long *)&__m256d_op2[3]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_op2[2]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_op2[1]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_op2[0]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffff5f5c; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff5f5c; + __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffff8c80; + *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0x00000000fff0e400; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000007380; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op1[0]) = 0x00000000000f1c00; + *((unsigned long *)&__m256d_op2[3]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op2[2]) = 0x00000000ffff8c80; + *((unsigned long *)&__m256d_op2[1]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op2[0]) = 0x00000000fff0e400; + *((unsigned long *)&__m256d_result[3]) = 0x80000000ffffffff; + *((unsigned long *)&__m256d_result[2]) = 0x80000000ffff8c80; + *((unsigned long *)&__m256d_result[1]) = 0x80000000ffffffff; + *((unsigned long *)&__m256d_result[0]) = 0x80000000fff0e400; + __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000007; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000007; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x00000000000001dc; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x00000000000001dc; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x00000000000001dc; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x00000000000001dc; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x80000000000001dc; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x80000000000001dc; + __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0404000004040000; + *((unsigned long *)&__m256d_op0[2]) = 0x0101010101010101; + *((unsigned long *)&__m256d_op0[1]) = 0x0404000004040000; + *((unsigned long *)&__m256d_op0[0]) = 0x0101010101010101; + *((unsigned long *)&__m256d_op1[3]) = 0x8011ffee804c004c; + *((unsigned long *)&__m256d_op1[2]) = 0x00faff0500c3ff3c; + *((unsigned long *)&__m256d_op1[1]) = 0x80f900f980780078; + *((unsigned long *)&__m256d_op1[0]) = 0x0057ffa800ceff31; + *((unsigned long *)&__m256d_op2[3]) = 0xffffc040ffffc09d; + *((unsigned long *)&__m256d_op2[2]) = 0x00003fc00000428a; + *((unsigned long *)&__m256d_op2[1]) = 0xffffc040ffffc09d; + *((unsigned long *)&__m256d_op2[0]) = 0x00003fc00000428a; + *((unsigned long *)&__m256d_result[3]) = 0xffffc040ffffc09d; + *((unsigned long *)&__m256d_result[2]) = 0x80003fc00000428a; + *((unsigned long *)&__m256d_result[1]) = 0xffffc040ffffc09d; + *((unsigned long *)&__m256d_result[0]) = 0x80003fc00000428a; + __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op2[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_op2[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_op2[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_op2[0]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000100000000; + *((unsigned long *)&__m256d_op2[3]) = 0x0000000100000001; + *((unsigned long *)&__m256d_op2[2]) = 0xffffb2f600006f48; + *((unsigned long *)&__m256d_op2[1]) = 0x0000000100000001; + *((unsigned long *)&__m256d_op2[0]) = 0xffffb2f600006f48; + *((unsigned long *)&__m256d_result[3]) = 0x8000000100000001; + *((unsigned long *)&__m256d_result[2]) = 0xffffb2f600006f48; + *((unsigned long *)&__m256d_result[1]) = 0x8000000100000001; + *((unsigned long *)&__m256d_result[0]) = 0xffffb2f600006f48; + __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c new file mode 100644 index 00000000000..bde41dd5c03 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c @@ -0,0 +1,720 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xf328dfff; + *((int *)&__m256_op1[1]) = 0x6651bfff; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x0000ffff; + *((int *)&__m256_op2[6]) = 0x0000ff80; + *((int *)&__m256_op2[5]) = 0x00004686; + *((int *)&__m256_op2[4]) = 0x00007f79; + *((int *)&__m256_op2[3]) = 0x0000ffff; + *((int *)&__m256_op2[2]) = 0x0000ffff; + *((int *)&__m256_op2[1]) = 0x0000f328; + *((int *)&__m256_op2[0]) = 0x0000dfff; + *((int *)&__m256_result[7]) = 0x0000ffff; + *((int *)&__m256_result[6]) = 0x0000ff80; + *((int *)&__m256_result[5]) = 0x00004686; + *((int *)&__m256_result[4]) = 0x00007f79; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0x0000ffff; + *((int *)&__m256_result[1]) = 0x0000f328; + *((int *)&__m256_result[0]) = 0x0000dfff; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xfff10000; + *((int *)&__m256_op0[4]) = 0xfff10000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xfff10000; + *((int *)&__m256_op0[0]) = 0xfff10000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0xfff10000; + *((int *)&__m256_result[4]) = 0xfff10000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0xfff10000; + *((int *)&__m256_result[0]) = 0xfff10000; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x803f6004; + *((int *)&__m256_op2[4]) = 0x1f636003; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x803f6004; + *((int *)&__m256_op2[0]) = 0x1f636003; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x803f6004; + *((int *)&__m256_result[4]) = 0x1f636003; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x803f6004; + *((int *)&__m256_result[0]) = 0x1f636003; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffb3430a; + *((int *)&__m256_op0[4]) = 0x006ed8b8; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffb3430a; + *((int *)&__m256_op0[0]) = 0x006ed8b8; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x000001ff; + *((int *)&__m256_op1[4]) = 0x000003fe; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x000001ff; + *((int *)&__m256_op1[0]) = 0x000003fe; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x000000ff; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x000000ff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xfff3430a; + *((int *)&__m256_result[4]) = 0x000000ff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xfff3430a; + *((int *)&__m256_result[0]) = 0x000000ff; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xfffeb683; + *((int *)&__m256_op0[6]) = 0x9ffffd80; + *((int *)&__m256_op0[5]) = 0xfffe97c0; + *((int *)&__m256_op0[4]) = 0x20010001; + *((int *)&__m256_op0[3]) = 0xfffeb683; + *((int *)&__m256_op0[2]) = 0x9ffffd80; + *((int *)&__m256_op0[1]) = 0xfffe97c0; + *((int *)&__m256_op0[0]) = 0x20010001; + *((int *)&__m256_op1[7]) = 0x00009fff; + *((int *)&__m256_op1[6]) = 0x9ffffd80; + *((int *)&__m256_op1[5]) = 0x0000ffff; + *((int *)&__m256_op1[4]) = 0x20010001; + *((int *)&__m256_op1[3]) = 0x00009fff; + *((int *)&__m256_op1[2]) = 0x9ffffd80; + *((int *)&__m256_op1[1]) = 0x0000ffff; + *((int *)&__m256_op1[0]) = 0x20010001; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00002080; + *((int *)&__m256_op2[4]) = 0xdf5b41cf; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00002080; + *((int *)&__m256_op2[0]) = 0xdf5b41cf; + *((int *)&__m256_result[7]) = 0xfffeb683; + *((int *)&__m256_result[6]) = 0x007ffd80; + *((int *)&__m256_result[5]) = 0xfffe97c0; + *((int *)&__m256_result[4]) = 0xdf5b41cf; + *((int *)&__m256_result[3]) = 0xfffeb683; + *((int *)&__m256_result[2]) = 0x007ffd80; + *((int *)&__m256_result[1]) = 0xfffe97c0; + *((int *)&__m256_result[0]) = 0xdf5b41cf; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0xfffeb664; + *((int *)&__m256_op1[6]) = 0x007ffd61; + *((int *)&__m256_op1[5]) = 0xfffe97a1; + *((int *)&__m256_op1[4]) = 0xdf5b41b0; + *((int *)&__m256_op1[3]) = 0xfffeb664; + *((int *)&__m256_op1[2]) = 0x007ffd61; + *((int *)&__m256_op1[1]) = 0xfffe97a1; + *((int *)&__m256_op1[0]) = 0xdf5b41b0; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x94d7fb52; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xfffeb664; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xfffe97a1; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xfffeb664; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xfffe97a1; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xb70036db; + *((int *)&__m256_op1[6]) = 0x12c4007e; + *((int *)&__m256_op1[5]) = 0xb7146213; + *((int *)&__m256_op1[4]) = 0xfc1e0049; + *((int *)&__m256_op1[3]) = 0x000000fe; + *((int *)&__m256_op1[2]) = 0xfe02fffe; + *((int *)&__m256_op1[1]) = 0xb71c413b; + *((int *)&__m256_op1[0]) = 0x199d04b5; + *((int *)&__m256_op2[7]) = 0xb70036db; + *((int *)&__m256_op2[6]) = 0x12c4007e; + *((int *)&__m256_op2[5]) = 0xb7146213; + *((int *)&__m256_op2[4]) = 0xfc1e0049; + *((int *)&__m256_op2[3]) = 0x000000fe; + *((int *)&__m256_op2[2]) = 0xfe02fffe; + *((int *)&__m256_op2[1]) = 0xb71c413b; + *((int *)&__m256_op2[0]) = 0x199d04b5; + *((int *)&__m256_result[7]) = 0x370036db; + *((int *)&__m256_result[6]) = 0x92c4007e; + *((int *)&__m256_result[5]) = 0x37146213; + *((int *)&__m256_result[4]) = 0x7c1e0049; + *((int *)&__m256_result[3]) = 0x800000fe; + *((int *)&__m256_result[2]) = 0x7e02fffe; + *((int *)&__m256_result[1]) = 0x371c413b; + *((int *)&__m256_result[0]) = 0x999d04b5; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x3f7f7f7e; + *((int *)&__m256_op1[4]) = 0xff800000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x3f7f7f7e; + *((int *)&__m256_op1[0]) = 0xff800000; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x7fffffff; + *((int *)&__m256_op2[4]) = 0xff7fffff; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x7fffffff; + *((int *)&__m256_op2[0]) = 0xff7fffff; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x7fffffff; + *((int *)&__m256_result[4]) = 0x7fc00000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x7fffffff; + *((int *)&__m256_result[0]) = 0x7fc00000; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0xffffafaf; + *((int *)&__m256_op0[4]) = 0xb3b3dc9d; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0xffffafaf; + *((int *)&__m256_op0[0]) = 0xb3b3dc9d; + *((int *)&__m256_op1[7]) = 0x00020000; + *((int *)&__m256_op1[6]) = 0x00020000; + *((int *)&__m256_op1[5]) = 0x00220021; + *((int *)&__m256_op1[4]) = 0x004a007e; + *((int *)&__m256_op1[3]) = 0x00020000; + *((int *)&__m256_op1[2]) = 0x00020000; + *((int *)&__m256_op1[1]) = 0x00220021; + *((int *)&__m256_op1[0]) = 0x004a007e; + *((int *)&__m256_op2[7]) = 0x00000001; + *((int *)&__m256_op2[6]) = 0x00007f7f; + *((int *)&__m256_op2[5]) = 0x00000001; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000001; + *((int *)&__m256_op2[2]) = 0x00007f7f; + *((int *)&__m256_op2[1]) = 0x00000001; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x80000001; + *((int *)&__m256_result[6]) = 0x80007f7f; + *((int *)&__m256_result[5]) = 0xffffafaf; + *((int *)&__m256_result[4]) = 0x80000000; + *((int *)&__m256_result[3]) = 0x80000001; + *((int *)&__m256_result[2]) = 0x80007f7f; + *((int *)&__m256_result[1]) = 0xffffafaf; + *((int *)&__m256_result[0]) = 0x80000000; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0xffffffe5; + *((int *)&__m256_op2[6]) = 0xffffffe5; + *((int *)&__m256_op2[5]) = 0xffffffe5; + *((int *)&__m256_op2[4]) = 0xffffffe5; + *((int *)&__m256_op2[3]) = 0xffffffe5; + *((int *)&__m256_op2[2]) = 0xffffffe5; + *((int *)&__m256_op2[1]) = 0xffffffe5; + *((int *)&__m256_op2[0]) = 0xffffffe5; + *((int *)&__m256_result[7]) = 0xffffffe5; + *((int *)&__m256_result[6]) = 0xffffffe5; + *((int *)&__m256_result[5]) = 0xffffffe5; + *((int *)&__m256_result[4]) = 0xffffffe5; + *((int *)&__m256_result[3]) = 0xffffffe5; + *((int *)&__m256_result[2]) = 0xffffffe5; + *((int *)&__m256_result[1]) = 0xffffffe5; + *((int *)&__m256_result[0]) = 0xffffffe5; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xbfffffff; + *((int *)&__m256_op0[6]) = 0xffff8000; + *((int *)&__m256_op0[5]) = 0xbfff8000; + *((int *)&__m256_op0[4]) = 0x80000000; + *((int *)&__m256_op0[3]) = 0xbfffffff; + *((int *)&__m256_op0[2]) = 0xffff8000; + *((int *)&__m256_op0[1]) = 0xbfff8000; + *((int *)&__m256_op0[0]) = 0x80000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x80000000; + *((int *)&__m256_result[6]) = 0xffff8000; + *((int *)&__m256_result[5]) = 0x80000000; + *((int *)&__m256_result[4]) = 0x80000000; + *((int *)&__m256_result[3]) = 0x80000000; + *((int *)&__m256_result[2]) = 0xffff8000; + *((int *)&__m256_result[1]) = 0x80000000; + *((int *)&__m256_result[0]) = 0x80000000; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x02020102; + *((int *)&__m256_op1[6]) = 0x02020102; + *((int *)&__m256_op1[5]) = 0x02020102; + *((int *)&__m256_op1[4]) = 0x02020102; + *((int *)&__m256_op1[3]) = 0x02020102; + *((int *)&__m256_op1[2]) = 0x02020102; + *((int *)&__m256_op1[1]) = 0x02020102; + *((int *)&__m256_op1[0]) = 0x02020102; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000000; + *((int *)&__m256_op2[4]) = 0x00000000; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000000; + *((int *)&__m256_op2[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000008; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000008; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000008; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000008; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000008; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000008; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000008; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000008; + *((int *)&__m256_op2[7]) = 0x00000000; + *((int *)&__m256_op2[6]) = 0x00000000; + *((int *)&__m256_op2[5]) = 0x00000001; + *((int *)&__m256_op2[4]) = 0x00000001; + *((int *)&__m256_op2[3]) = 0x00000000; + *((int *)&__m256_op2[2]) = 0x00000000; + *((int *)&__m256_op2[1]) = 0x00000001; + *((int *)&__m256_op2[0]) = 0x00000001; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x80000001; + *((int *)&__m256_result[4]) = 0x80000001; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x80000001; + *((int *)&__m256_result[0]) = 0x80000001; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000040; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000040; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_op2[7]) = 0x40404040; + *((int *)&__m256_op2[6]) = 0x40404040; + *((int *)&__m256_op2[5]) = 0x40404040; + *((int *)&__m256_op2[4]) = 0x40404040; + *((int *)&__m256_op2[3]) = 0x40404040; + *((int *)&__m256_op2[2]) = 0x40404040; + *((int *)&__m256_op2[1]) = 0x40404040; + *((int *)&__m256_op2[0]) = 0x40404040; + *((int *)&__m256_result[7]) = 0xc0404040; + *((int *)&__m256_result[6]) = 0xc0404040; + *((int *)&__m256_result[5]) = 0xc0404040; + *((int *)&__m256_result[4]) = 0xc0404040; + *((int *)&__m256_result[3]) = 0xc0404040; + *((int *)&__m256_result[2]) = 0xc0404040; + *((int *)&__m256_result[1]) = 0xc0404040; + *((int *)&__m256_result[0]) = 0xc0404040; + __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c new file mode 100644 index 00000000000..207ba167f31 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c @@ -0,0 +1,230 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x000000040000fff8; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x000000040000fff8; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x000000040000fff8; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000200000002; + *((unsigned long *)&__m256d_op0[2]) = 0x0000008000000080; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000200000002; + *((unsigned long *)&__m256d_op0[0]) = 0x0000008000000080; + *((unsigned long *)&__m256d_op1[3]) = 0xc5c5c5c4c5c5c5c4; + *((unsigned long *)&__m256d_op1[2]) = 0x45c5c5c545c5c5c5; + *((unsigned long *)&__m256d_op1[1]) = 0xc5c5c5c4c5c5c5c4; + *((unsigned long *)&__m256d_op1[0]) = 0x45c5c5c545c5c5c5; + *((unsigned long *)&__m256d_result[3]) = 0x0000000200000002; + *((unsigned long *)&__m256d_result[2]) = 0x45c5c5c545c5c5c5; + *((unsigned long *)&__m256d_result[1]) = 0x0000000200000002; + *((unsigned long *)&__m256d_result[0]) = 0x45c5c5c545c5c5c5; + __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000004290; + *((unsigned long *)&__m256d_op0[2]) = 0x00000000002a96ba; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000004290; + *((unsigned long *)&__m256d_op0[0]) = 0x00000000002a96ba; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000083f95466; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0101010100005400; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000004290; + *((unsigned long *)&__m256d_result[2]) = 0x0000000083f95466; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000004290; + *((unsigned long *)&__m256d_result[0]) = 0x0101010100005400; + __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0101000101010001; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0101000101010001; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0101000101010001; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0101000101010001; + __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0001000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000100010001; + *((unsigned long *)&__m256d_op1[1]) = 0x0001000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000100010001; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0200000202000002; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0200000202000002; + *((unsigned long *)&__m256d_op1[3]) = 0x0101000101010001; + *((unsigned long *)&__m256d_op1[2]) = 0x0101000101010001; + *((unsigned long *)&__m256d_op1[1]) = 0x0101000101010001; + *((unsigned long *)&__m256d_op1[0]) = 0x0101000101010001; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0101000101010001; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0101000101010001; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0xfffeb6839ffffd80; + *((unsigned long *)&__m256d_op1[2]) = 0xfffe97c020010001; + *((unsigned long *)&__m256d_op1[1]) = 0xfffeb6839ffffd80; + *((unsigned long *)&__m256d_op1[0]) = 0xfffe97c020010001; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c new file mode 100644 index 00000000000..9b7703231db --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c @@ -0,0 +1,560 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00010101; + *((int *)&__m256_op1[6]) = 0x01010101; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00010100; + *((int *)&__m256_op1[1]) = 0x00010000; + *((int *)&__m256_op1[0]) = 0x01000100; + *((int *)&__m256_result[7]) = 0x00010101; + *((int *)&__m256_result[6]) = 0x01010101; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00010100; + *((int *)&__m256_result[1]) = 0x00010000; + *((int *)&__m256_result[0]) = 0x01000100; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x59800000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x59800000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x59800000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x59800000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00010001; + *((int *)&__m256_op1[6]) = 0x00010001; + *((int *)&__m256_op1[5]) = 0x00010001; + *((int *)&__m256_op1[4]) = 0x00010001; + *((int *)&__m256_op1[3]) = 0x00010001; + *((int *)&__m256_op1[2]) = 0x00010001; + *((int *)&__m256_op1[1]) = 0x00010001; + *((int *)&__m256_op1[0]) = 0x00010001; + *((int *)&__m256_result[7]) = 0x00010001; + *((int *)&__m256_result[6]) = 0x00010001; + *((int *)&__m256_result[5]) = 0x00010001; + *((int *)&__m256_result[4]) = 0x00010001; + *((int *)&__m256_result[3]) = 0x00010001; + *((int *)&__m256_result[2]) = 0x00010001; + *((int *)&__m256_result[1]) = 0x00010001; + *((int *)&__m256_result[0]) = 0x00010001; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x7fefffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x7fefffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x000000ff; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x000000ff; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00003fe0; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00003fe0; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00003fe0; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00003fe0; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x0000000e; + *((int *)&__m256_op1[6]) = 0x0000000e; + *((int *)&__m256_op1[5]) = 0x0000000e; + *((int *)&__m256_op1[4]) = 0x0000000e; + *((int *)&__m256_op1[3]) = 0x0000000e; + *((int *)&__m256_op1[2]) = 0x0000000e; + *((int *)&__m256_op1[1]) = 0x0000000e; + *((int *)&__m256_op1[0]) = 0x0000000e; + *((int *)&__m256_result[7]) = 0x0000000e; + *((int *)&__m256_result[6]) = 0x0000000e; + *((int *)&__m256_result[5]) = 0x0000000e; + *((int *)&__m256_result[4]) = 0x0000000e; + *((int *)&__m256_result[3]) = 0x0000000e; + *((int *)&__m256_result[2]) = 0x0000000e; + *((int *)&__m256_result[1]) = 0x0000000e; + *((int *)&__m256_result[0]) = 0x0000000e; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0xffdbbbcf; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0xffb8579f; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0xffdbbbcf; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0xffb8579f; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0xfff8579f; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0xfff8579f; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x40404040; + *((int *)&__m256_op1[6]) = 0x40404040; + *((int *)&__m256_op1[5]) = 0x40404040; + *((int *)&__m256_op1[4]) = 0x40404040; + *((int *)&__m256_op1[3]) = 0x40404040; + *((int *)&__m256_op1[2]) = 0x40404040; + *((int *)&__m256_op1[1]) = 0x40404040; + *((int *)&__m256_op1[0]) = 0x40404040; + *((int *)&__m256_result[7]) = 0x40404040; + *((int *)&__m256_result[6]) = 0x40404040; + *((int *)&__m256_result[5]) = 0x40404040; + *((int *)&__m256_result[4]) = 0x40404040; + *((int *)&__m256_result[3]) = 0x40404040; + *((int *)&__m256_result[2]) = 0x40404040; + *((int *)&__m256_result[1]) = 0x40404040; + *((int *)&__m256_result[0]) = 0x40404040; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x0000006d; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x0010006d; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x0000006d; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x0010006d; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00080040; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00080040; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00080040; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00080040; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00080040; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x0010006d; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00080040; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x0010006d; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x000002ff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x000002ff; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x000002ff; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x000002ff; + __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x7ff90000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x1ff60000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0xfffffffe; + *((int *)&__m256_op1[4]) = 0x00000001; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0xfffffffe; + *((int *)&__m256_op1[0]) = 0x00000001; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000001; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000001; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0xffffffff; + *((int *)&__m256_op1[4]) = 0xffffffff; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0xffffffff; + *((int *)&__m256_op1[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x0218ff78; + *((int *)&__m256_op1[6]) = 0xfc38fc38; + *((int *)&__m256_op1[5]) = 0xfc000000; + *((int *)&__m256_op1[4]) = 0x00000048; + *((int *)&__m256_op1[3]) = 0x0218ff78; + *((int *)&__m256_op1[2]) = 0xfc38fc38; + *((int *)&__m256_op1[1]) = 0xfc000000; + *((int *)&__m256_op1[0]) = 0x00000048; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0xfc38fc38; + *((int *)&__m256_result[5]) = 0xfc000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0xfc38fc38; + *((int *)&__m256_result[1]) = 0xfc000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x000000f0; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x000000f0; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x000000f0; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x000000f0; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffe7; + *((int *)&__m256_op0[6]) = 0xffffffe7; + *((int *)&__m256_op0[5]) = 0xffffffe7; + *((int *)&__m256_op0[4]) = 0xffffffe7; + *((int *)&__m256_op0[3]) = 0xffffffe7; + *((int *)&__m256_op0[2]) = 0xffffffe7; + *((int *)&__m256_op0[1]) = 0xffffffe7; + *((int *)&__m256_op0[0]) = 0xffffffe7; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c new file mode 100644 index 00000000000..96bbb942dba --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c @@ -0,0 +1,230 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x000000040000fff8; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x000000040000fff8; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffff8001; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000018; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000018; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000018; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000018; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0002000000020000; + *((unsigned long *)&__m256d_op0[2]) = 0x0002000000010000; + *((unsigned long *)&__m256d_op0[1]) = 0x0002000000020000; + *((unsigned long *)&__m256d_op0[0]) = 0x0002000000010000; + *((unsigned long *)&__m256d_op1[3]) = 0x8000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x8000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0002000000020000; + *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0002000000020000; + *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000001; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000001; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000001; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000001; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_op1[2]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_op1[1]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_op1[0]) = 0x7fffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000008000000080; + *((unsigned long *)&__m256d_op1[2]) = 0x0000008000000080; + *((unsigned long *)&__m256d_op1[1]) = 0x0000008000000080; + *((unsigned long *)&__m256d_op1[0]) = 0x0000008000000080; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0xfefefefefefefefe; + *((unsigned long *)&__m256d_op1[2]) = 0xfefefefefefefefe; + *((unsigned long *)&__m256d_op1[1]) = 0xfefefefefefefefe; + *((unsigned long *)&__m256d_op1[0]) = 0xfefefefefefefefe; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000100; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000100; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000100000001; + *((unsigned long *)&__m256d_op0[2]) = 0xffffb2f600006f48; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000100000001; + *((unsigned long *)&__m256d_op0[0]) = 0xffffb2f600006f48; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x00000000000000ff; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x00000000000000ff; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x00000000000000ff; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x00000000000000ff; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_op0[2]) = 0x7efefefe80ffffff; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x7efefefe80ffffff; + *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_op1[2]) = 0x7efefefe80ffffff; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x7efefefe80ffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_result[2]) = 0x7efefefe80ffffff; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7efefefe80ffffff; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0087ff87f807ff87; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0087ff87f807ff87; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c new file mode 100644 index 00000000000..c73a8a74aff --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c @@ -0,0 +1,506 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00005555; + *((int *)&__m256_op1[6]) = 0x00005555; + *((int *)&__m256_op1[5]) = 0x000307ff; + *((int *)&__m256_op1[4]) = 0xfe72e815; + *((int *)&__m256_op1[3]) = 0x00005555; + *((int *)&__m256_op1[2]) = 0x00005555; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000015; + *((int *)&__m256_result[7]) = 0x00005555; + *((int *)&__m256_result[6]) = 0x00005555; + *((int *)&__m256_result[5]) = 0x000307ff; + *((int *)&__m256_result[4]) = 0xfe72e815; + *((int *)&__m256_result[3]) = 0x00005555; + *((int *)&__m256_result[2]) = 0x00005555; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000015; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00ff00ff; + *((int *)&__m256_op0[6]) = 0x00ff00ff; + *((int *)&__m256_op0[5]) = 0x00ff00ff; + *((int *)&__m256_op0[4]) = 0x000c0000; + *((int *)&__m256_op0[3]) = 0x00ff00ff; + *((int *)&__m256_op0[2]) = 0x00ff00ff; + *((int *)&__m256_op0[1]) = 0x00ff00ff; + *((int *)&__m256_op0[0]) = 0x00040000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00ff00ff; + *((int *)&__m256_result[6]) = 0x00ff00ff; + *((int *)&__m256_result[5]) = 0x00ff00ff; + *((int *)&__m256_result[4]) = 0x000c0000; + *((int *)&__m256_result[3]) = 0x00ff00ff; + *((int *)&__m256_result[2]) = 0x00ff00ff; + *((int *)&__m256_result[1]) = 0x00ff00ff; + *((int *)&__m256_result[0]) = 0x00040000; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x000007ff; + *((int *)&__m256_op0[6]) = 0x000007ff; + *((int *)&__m256_op0[5]) = 0x000007ff; + *((int *)&__m256_op0[4]) = 0xfffff800; + *((int *)&__m256_op0[3]) = 0x000007ff; + *((int *)&__m256_op0[2]) = 0x000007ff; + *((int *)&__m256_op0[1]) = 0x000007ff; + *((int *)&__m256_op0[0]) = 0xfffff800; + *((int *)&__m256_op1[7]) = 0xffffffff; + *((int *)&__m256_op1[6]) = 0xffffffff; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0xffffffff; + *((int *)&__m256_op1[2]) = 0xffffffff; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x000007ff; + *((int *)&__m256_result[6]) = 0x000007ff; + *((int *)&__m256_result[5]) = 0x000007ff; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x000007ff; + *((int *)&__m256_result[2]) = 0x000007ff; + *((int *)&__m256_result[1]) = 0x000007ff; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000001; + *((int *)&__m256_op0[5]) = 0x001f00e0; + *((int *)&__m256_op0[4]) = 0x1f1f1fff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000001; + *((int *)&__m256_op0[1]) = 0x001f00e0; + *((int *)&__m256_op0[0]) = 0x1f1f1fff; + *((int *)&__m256_op1[7]) = 0x80000000; + *((int *)&__m256_op1[6]) = 0x80000000; + *((int *)&__m256_op1[5]) = 0x80000000; + *((int *)&__m256_op1[4]) = 0xff800000; + *((int *)&__m256_op1[3]) = 0x80000000; + *((int *)&__m256_op1[2]) = 0x80000000; + *((int *)&__m256_op1[1]) = 0x80000000; + *((int *)&__m256_op1[0]) = 0xff800000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000001; + *((int *)&__m256_result[5]) = 0x001f00e0; + *((int *)&__m256_result[4]) = 0xff800000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000001; + *((int *)&__m256_result[1]) = 0x001f00e0; + *((int *)&__m256_result[0]) = 0xff800000; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000001; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000001; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000001; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00009fff; + *((int *)&__m256_op0[6]) = 0x00002001; + *((int *)&__m256_op0[5]) = 0x0000ffff; + *((int *)&__m256_op0[4]) = 0x0000ffff; + *((int *)&__m256_op0[3]) = 0x00009fff; + *((int *)&__m256_op0[2]) = 0x00002001; + *((int *)&__m256_op0[1]) = 0x0000ffff; + *((int *)&__m256_op0[0]) = 0x0000ffff; + *((int *)&__m256_op1[7]) = 0xfffeb683; + *((int *)&__m256_op1[6]) = 0x9ffffd80; + *((int *)&__m256_op1[5]) = 0xfffe97c0; + *((int *)&__m256_op1[4]) = 0x20010001; + *((int *)&__m256_op1[3]) = 0xfffeb683; + *((int *)&__m256_op1[2]) = 0x9ffffd80; + *((int *)&__m256_op1[1]) = 0xfffe97c0; + *((int *)&__m256_op1[0]) = 0x20010001; + *((int *)&__m256_result[7]) = 0x00009fff; + *((int *)&__m256_result[6]) = 0x9ffffd80; + *((int *)&__m256_result[5]) = 0x0000ffff; + *((int *)&__m256_result[4]) = 0x20010001; + *((int *)&__m256_result[3]) = 0x00009fff; + *((int *)&__m256_result[2]) = 0x9ffffd80; + *((int *)&__m256_result[1]) = 0x0000ffff; + *((int *)&__m256_result[0]) = 0x20010001; + __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000170; + *((int *)&__m256_op0[6]) = 0x00000080; + *((int *)&__m256_op0[5]) = 0xc0650055; + *((int *)&__m256_op0[4]) = 0x0055ffab; + *((int *)&__m256_op0[3]) = 0x00000170; + *((int *)&__m256_op0[2]) = 0x00000080; + *((int *)&__m256_op0[1]) = 0xc0650055; + *((int *)&__m256_op0[0]) = 0x0055ffab; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0xffff0000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0xffff0000; + *((int *)&__m256_op1[7]) = 0xfffefffe; + *((int *)&__m256_op1[6]) = 0xfffefffe; + *((int *)&__m256_op1[5]) = 0xfffefffe; + *((int *)&__m256_op1[4]) = 0xfffefffe; + *((int *)&__m256_op1[3]) = 0xfffefffe; + *((int *)&__m256_op1[2]) = 0xfffefffe; + *((int *)&__m256_op1[1]) = 0xfffefffe; + *((int *)&__m256_op1[0]) = 0xfffefffe; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0xffff0000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0xffff0000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00fe01f0; + *((int *)&__m256_op0[6]) = 0x00010000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00c40086; + *((int *)&__m256_op0[3]) = 0x00fe01f0; + *((int *)&__m256_op0[2]) = 0x00010000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00c40086; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x82a54290; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x028aa700; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x82a54290; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x02a54287; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00010000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00c40086; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00010000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00c40086; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x02a54290; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x0154dc84; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x02a54290; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000089; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x02a54290; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x0154dc84; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x02a54290; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000089; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x02a54290; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x0154dc84; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x02a54290; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000089; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x04000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x04000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00100000; + *((int *)&__m256_op0[6]) = 0x00100000; + *((int *)&__m256_op0[5]) = 0x00100000; + *((int *)&__m256_op0[4]) = 0x00100000; + *((int *)&__m256_op0[3]) = 0x00100000; + *((int *)&__m256_op0[2]) = 0x00100000; + *((int *)&__m256_op0[1]) = 0x00100000; + *((int *)&__m256_op0[0]) = 0x00100000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000010; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000010; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000080; + *((int *)&__m256_op0[6]) = 0x00000080; + *((int *)&__m256_op0[5]) = 0x00000080; + *((int *)&__m256_op0[4]) = 0x00000080; + *((int *)&__m256_op0[3]) = 0x00000080; + *((int *)&__m256_op0[2]) = 0x00000080; + *((int *)&__m256_op0[1]) = 0x00000080; + *((int *)&__m256_op0[0]) = 0x00000080; + *((int *)&__m256_op1[7]) = 0x00000001; + *((int *)&__m256_op1[6]) = 0x00000001; + *((int *)&__m256_op1[5]) = 0x00000001; + *((int *)&__m256_op1[4]) = 0x00000001; + *((int *)&__m256_op1[3]) = 0x00000001; + *((int *)&__m256_op1[2]) = 0x00000001; + *((int *)&__m256_op1[1]) = 0x00000001; + *((int *)&__m256_op1[0]) = 0x00000001; + *((int *)&__m256_result[7]) = 0x00000001; + *((int *)&__m256_result[6]) = 0x00000001; + *((int *)&__m256_result[5]) = 0x00000001; + *((int *)&__m256_result[4]) = 0x00000001; + *((int *)&__m256_result[3]) = 0x00000001; + *((int *)&__m256_result[2]) = 0x00000001; + *((int *)&__m256_result[1]) = 0x00000001; + *((int *)&__m256_result[0]) = 0x00000001; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_op1[7]) = 0x00000000; + *((int *)&__m256_op1[6]) = 0x00000000; + *((int *)&__m256_op1[5]) = 0x00000000; + *((int *)&__m256_op1[4]) = 0x00000000; + *((int *)&__m256_op1[3]) = 0x00000000; + *((int *)&__m256_op1[2]) = 0x00000000; + *((int *)&__m256_op1[1]) = 0x00000000; + *((int *)&__m256_op1[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c new file mode 100644 index 00000000000..18d5c51de02 --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c @@ -0,0 +1,482 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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; + + *((unsigned long *)&__m256d_op0[3]) = 0x1e1800001e180000; + *((unsigned long *)&__m256d_op0[2]) = 0x1e18000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x1e1800001e180000; + *((unsigned long *)&__m256d_op0[0]) = 0x1e18000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x2f03988e2052463e; + *((unsigned long *)&__m256d_result[2]) = 0x2f03988e1409212e; + *((unsigned long *)&__m256d_result[1]) = 0x2f03988e2052463e; + *((unsigned long *)&__m256d_result[0]) = 0x2f03988e1409212e; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00000000003f7e3f; + *((unsigned long *)&__m256d_op0[2]) = 0xffc6cc05c64d960e; + *((unsigned long *)&__m256d_op0[1]) = 0x00000000003f7e3f; + *((unsigned long *)&__m256d_op0[0]) = 0xff874dc687870000; + *((unsigned long *)&__m256d_result[3]) = 0x1f0fdf7f3e3b31d4; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x1f0fdf7f3e3b31d4; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000100000018; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000100000018; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x1f60000000c00000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x1f60000000c00000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0003030300000300; + *((unsigned long *)&__m256d_op0[2]) = 0x0003030300000300; + *((unsigned long *)&__m256d_op0[1]) = 0x0003030300000100; + *((unsigned long *)&__m256d_op0[0]) = 0x0003030300000100; + *((unsigned long *)&__m256d_result[3]) = 0x1febc46085090ea0; + *((unsigned long *)&__m256d_result[2]) = 0x1febc46085090ea0; + *((unsigned long *)&__m256d_result[1]) = 0x1febc46085090567; + *((unsigned long *)&__m256d_result[0]) = 0x1febc46085090567; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000007f007f007f; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000007f007f007f; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x1f9689fdb16cabbd; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x1f9689fdb16cabbd; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffff0000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffff0000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff0000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff0000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000010000000100; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000010000000100; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x1fa0000000080000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x1fa0000000080000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff8000; + *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff8000; + __m256d_out = __lasx_xvfsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xffffffff00000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x000000000000ffff; + *((unsigned long *)&__m256d_op0[2]) = 0x0209fefb08140000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0003fffc00060000; + *((unsigned long *)&__m256d_result[3]) = 0x6100000800060005; + *((unsigned long *)&__m256d_result[2]) = 0x5ee1c073b800c916; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x5ff00007fff9fff3; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x555555553f800000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x555555553f800000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x353bb67af686ad9b; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x353bb67af686ad9b; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff0000ffff; + *((unsigned long *)&__m256d_op0[1]) = 0x0000001f0000001f; + *((unsigned long *)&__m256d_op0[0]) = 0x0000001f0000ffff; + *((unsigned long *)&__m256d_result[3]) = 0x60000007fffe0001; + *((unsigned long *)&__m256d_result[2]) = 0x60000007fffe0001; + *((unsigned long *)&__m256d_result[1]) = 0x6056fd4e7926d5c0; + *((unsigned long *)&__m256d_result[0]) = 0x6056fd4e1a4616c4; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00001bfa000000f9; + *((unsigned long *)&__m256d_op0[2]) = 0x000000f900004040; + *((unsigned long *)&__m256d_op0[1]) = 0x00001bfa000000f9; + *((unsigned long *)&__m256d_op0[0]) = 0x000000f900004040; + *((unsigned long *)&__m256d_result[3]) = 0x60183329ceb52cf0; + *((unsigned long *)&__m256d_result[2]) = 0x6040392cdaf9b3ff; + *((unsigned long *)&__m256d_result[1]) = 0x60183329ceb52cf0; + *((unsigned long *)&__m256d_result[0]) = 0x6040392cdaf9b3ff; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x3de00103153ff5fb; + *((unsigned long *)&__m256d_op0[2]) = 0xbffffffe80000000; + *((unsigned long *)&__m256d_op0[1]) = 0x3de00103153ff5fb; + *((unsigned long *)&__m256d_op0[0]) = 0xbffffffe80000000; + *((unsigned long *)&__m256d_result[3]) = 0x40f69fe73c26f4ee; + *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x40f69fe73c26f4ee; + *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x00000005ffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0x00000007ffffffce; + *((unsigned long *)&__m256d_op0[1]) = 0x00000005ffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0x00000007ffffffce; + *((unsigned long *)&__m256d_result[3]) = 0x606a20bd700e59a3; + *((unsigned long *)&__m256d_result[2]) = 0x6066a09e66c5f1bb; + *((unsigned long *)&__m256d_result[1]) = 0x606a20bd700e59a3; + *((unsigned long *)&__m256d_result[0]) = 0x6066a09e66c5f1bb; + __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x03fc03fc03f803f8; + *((unsigned long *)&__m256d_op0[2]) = 0x03fc03fc03f803f8; + *((unsigned long *)&__m256d_op0[1]) = 0x03fc03fc03f803f8; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7be2468acf15f39c; + *((unsigned long *)&__m256d_result[2]) = 0x7be2468acf15f39c; + *((unsigned long *)&__m256d_result[1]) = 0x7be2468acf15f39c; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000002a54290; + *((unsigned long *)&__m256d_op0[2]) = 0x000000000154dc84; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000002a54290; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000089; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0001000100010001; + *((unsigned long *)&__m256d_op0[2]) = 0xd0d8eecf383fdf0d; + *((unsigned long *)&__m256d_op0[1]) = 0x0001000100010001; + *((unsigned long *)&__m256d_op0[0]) = 0xd0d8eecf383fdf0d; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xaf0489001bd4c0c3; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xaf0489001bd4c0c3; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000a00000000; + *((unsigned long *)&__m256d_op0[2]) = 0x00000000fffff614; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000a00000000; + *((unsigned long *)&__m256d_op0[0]) = 0x00000000fffff614; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000001e0000001e; + *((unsigned long *)&__m256d_op0[2]) = 0x0000001e0000001e; + *((unsigned long *)&__m256d_op0[1]) = 0x0000001e0000001e; + *((unsigned long *)&__m256d_op0[0]) = 0x0000001e0000001e; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0xff80000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xff80000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x8060000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x8060000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001; + *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000; + *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000; + *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000; + *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff; + *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff; + __m256d_out = __lasx_xvfrecip_d (__m256d_op0); + ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c new file mode 100644 index 00000000000..27df4a27daf --- /dev/null +++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c @@ -0,0 +1,457 @@ +/* { dg-do run } */ +/* { dg-options "-mlasx -w -fno-strict-aliasing" } */ +#include "../simd_correctness_check.h" +#include + +int +main () +{ + __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result; + __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result; + __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_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 *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x00000000; + *((int *)&__m256_result[6]) = 0x00000000; + *((int *)&__m256_result[5]) = 0x00000000; + *((int *)&__m256_result[4]) = 0x00000000; + *((int *)&__m256_result[3]) = 0x00000000; + *((int *)&__m256_result[2]) = 0x00000000; + *((int *)&__m256_result[1]) = 0x00000000; + *((int *)&__m256_result[0]) = 0x00000000; + __m256_out = __lasx_xvfsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x0000ff80; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x0000ffff; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x60b53246; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x60b5054d; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0x0060005a; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0x0060005a; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0x5f13ccf5; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0x5f13ccf5; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000002; + *((int *)&__m256_op0[4]) = 0x00000008; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000002; + *((int *)&__m256_op0[0]) = 0x00000008; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x64800000; + *((int *)&__m256_result[4]) = 0x64000000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x64800000; + *((int *)&__m256_result[0]) = 0x64000000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x000000bd; + *((int *)&__m256_op0[4]) = 0xfef907bc; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x000000bd; + *((int *)&__m256_op0[0]) = 0xfef907bc; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x62d2acee; + *((int *)&__m256_result[4]) = 0x7fc00000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x62d2acee; + *((int *)&__m256_result[0]) = 0x7fc00000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x04e8296f; + *((int *)&__m256_op0[6]) = 0x18181818; + *((int *)&__m256_op0[5]) = 0x132feea9; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x04e8296f; + *((int *)&__m256_op0[2]) = 0x18181818; + *((int *)&__m256_op0[1]) = 0x132feea9; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x5cbe15f2; + *((int *)&__m256_result[6]) = 0x53261036; + *((int *)&__m256_result[5]) = 0x559a674d; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x5cbe15f2; + *((int *)&__m256_result[2]) = 0x53261036; + *((int *)&__m256_result[1]) = 0x559a674d; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrsqrt_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x000000ff; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x0000ff00; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xffffffff; + *((int *)&__m256_op0[6]) = 0xffffffff; + *((int *)&__m256_op0[5]) = 0xffffffff; + *((int *)&__m256_op0[4]) = 0xffffffff; + *((int *)&__m256_op0[3]) = 0xffffffff; + *((int *)&__m256_op0[2]) = 0xffffffff; + *((int *)&__m256_op0[1]) = 0xffffffff; + *((int *)&__m256_op0[0]) = 0xffffffff; + *((int *)&__m256_result[7]) = 0xffffffff; + *((int *)&__m256_result[6]) = 0xffffffff; + *((int *)&__m256_result[5]) = 0xffffffff; + *((int *)&__m256_result[4]) = 0xffffffff; + *((int *)&__m256_result[3]) = 0xffffffff; + *((int *)&__m256_result[2]) = 0xffffffff; + *((int *)&__m256_result[1]) = 0xffffffff; + *((int *)&__m256_result[0]) = 0xffffffff; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xfc003802; + *((int *)&__m256_op0[6]) = 0xfc000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0xfc00fc00; + *((int *)&__m256_op0[3]) = 0xfc003802; + *((int *)&__m256_op0[2]) = 0xfc000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0xfc00fc00; + *((int *)&__m256_result[7]) = 0x82ff902d; + *((int *)&__m256_result[6]) = 0x83000000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x82fe0bd9; + *((int *)&__m256_result[3]) = 0x82ff902d; + *((int *)&__m256_result[2]) = 0x83000000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x82fe0bd9; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0x00000000; + *((int *)&__m256_op0[6]) = 0x00000000; + *((int *)&__m256_op0[5]) = 0x00000000; + *((int *)&__m256_op0[4]) = 0x00000000; + *((int *)&__m256_op0[3]) = 0x00000000; + *((int *)&__m256_op0[2]) = 0x00000000; + *((int *)&__m256_op0[1]) = 0x00000000; + *((int *)&__m256_op0[0]) = 0x00000000; + *((int *)&__m256_result[7]) = 0x7f800000; + *((int *)&__m256_result[6]) = 0x7f800000; + *((int *)&__m256_result[5]) = 0x7f800000; + *((int *)&__m256_result[4]) = 0x7f800000; + *((int *)&__m256_result[3]) = 0x7f800000; + *((int *)&__m256_result[2]) = 0x7f800000; + *((int *)&__m256_result[1]) = 0x7f800000; + *((int *)&__m256_result[0]) = 0x7f800000; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + *((int *)&__m256_op0[7]) = 0xfd02fd02; + *((int *)&__m256_op0[6]) = 0xfd02fd02; + *((int *)&__m256_op0[5]) = 0xfd02fd02; + *((int *)&__m256_op0[4]) = 0xfd02fd02; + *((int *)&__m256_op0[3]) = 0xfd02fd02; + *((int *)&__m256_op0[2]) = 0xfd02fd02; + *((int *)&__m256_op0[1]) = 0xfd02fd02; + *((int *)&__m256_op0[0]) = 0xfd02fd02; + *((int *)&__m256_result[7]) = 0x81fa28e4; + *((int *)&__m256_result[6]) = 0x81fa28e4; + *((int *)&__m256_result[5]) = 0x81fa28e4; + *((int *)&__m256_result[4]) = 0x81fa28e4; + *((int *)&__m256_result[3]) = 0x81fa28e4; + *((int *)&__m256_result[2]) = 0x81fa28e4; + *((int *)&__m256_result[1]) = 0x81fa28e4; + *((int *)&__m256_result[0]) = 0x81fa28e4; + __m256_out = __lasx_xvfrecip_s (__m256_op0); + ASSERTEQ_32 (__LINE__, __m256_result, __m256_out); + + return 0; +}