From patchwork Fri May 25 13:38:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920521 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="HF3ghXCv"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snRg0Xb9z9s15 for ; Fri, 25 May 2018 23:39:41 +1000 (AEST) Received: from localhost ([::1]:44041 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCwS-0004u2-9Z for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:39:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34257) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvq-0004td-0a for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvn-0005sM-6a for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:58 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:56085) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvm-0005s4-WB for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:55 -0400 Received: by mail-wm0-x243.google.com with SMTP id a8-v6so14494734wmg.5 for ; Fri, 25 May 2018 06:38:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=icyhNd5KQavNcvfAeUvX27EOWr3MXvhI7RrpNDKrgu0=; b=HF3ghXCv64QdJoy69rKC47nGs0d8kjrMk02fYMICt+rSumlk4Mn0afBzDe71NrP2PI wTMk6rEWbyYKz6pf4bbGNPHIvVer61noc6h3LooeNFUrt97tVtWV25I2zIgB44Ui+qsQ Y3Rvz5e7N/BHQjfFjlAOKe9RMkWYnECJN/gqA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=icyhNd5KQavNcvfAeUvX27EOWr3MXvhI7RrpNDKrgu0=; b=PMSx6GHiIgNYgS59OI5d80gVlWtqEYmVUgGhQrqW7U5zqEEDAzLQ2zMJZhPoGfl1Uc C2N48wjjJkFXXMaA7I2VqO/llZrJviaQ0TsgJlU4KGL/n+JArGza9NZmAZEGjTeOAHNR fWV479uAVFnUCw3eWICTYvb1Snkf+y1pnSRtDqNSMfMdC0EPIXXSQkhrwwwaVbIXqrup nExb8WDvjlFHDDUA5YEABZUOUIG/blPGdSs7SzbreKMy/53rAcBy9eG8nOtUlK4rh0O8 OKJNgxua5fusejh6A5d2+oByozXfXhBUxk+X8PBYM2OMN4GCVz9IXJEilwqfytIGn/kp 7puw== X-Gm-Message-State: ALKqPwecuzhq4Ml0yZCYSy6I7s+ug81SIQmv7mVxj7d9Gqm1EgnOy8/E TvgP3y0HtiX/q9W91PHDKeWP/Q== X-Google-Smtp-Source: ADUXVKIjVwEK87VvUgg9XF2Q7PZiX/5M0jK1ExZj97i3nZPQvapEuRRz9ijGGziZutTRwv56uXxIPA== X-Received: by 2002:a1c:5403:: with SMTP id i3-v6mr1765318wmb.37.1527255533887; Fri, 25 May 2018 06:38:53 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id s2-v6sm3450574wrn.75.2018.05.25.06.38.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:51 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 5A2963E027A; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:03 +0100 Message-Id: <20180525133851.27161-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PATCH v5 01/49] docker: add "probe" command for configure X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This is a helper function for the configure script. It replies yes, sudo or no to inform the user if non-interactive docker support is available. We trap the Exception to fail gracefully. Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng --- tests/docker/docker.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/docker/docker.py b/tests/docker/docker.py index 1246ba9578..f8267586eb 100755 --- a/tests/docker/docker.py +++ b/tests/docker/docker.py @@ -390,6 +390,24 @@ class ImagesCommand(SubCommand): def run(self, args, argv): return Docker().command("images", argv, args.quiet) + +class ProbeCommand(SubCommand): + """Probe if we can run docker automatically""" + name = "probe" + + def run(self, args, argv): + try: + docker = Docker() + if docker._command[0] == "docker": + print "yes" + elif docker._command[0] == "sudo": + print "sudo" + except Exception: + print "no" + + return + + def main(): parser = argparse.ArgumentParser(description="A Docker helper", usage="%s ..." % os.path.basename(sys.argv[0])) From patchwork Fri May 25 13:38:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920526 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="UOpNTpHa"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snVp02cDz9s0q for ; Fri, 25 May 2018 23:42:25 +1000 (AEST) Received: from localhost ([::1]:44056 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCz9-0007aZ-JL for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:42:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvq-0004tf-1G for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvo-0005sk-4J for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:58 -0400 Received: from mail-wr0-x235.google.com ([2a00:1450:400c:c0c::235]:37501) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvn-0005sT-TE for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:56 -0400 Received: by mail-wr0-x235.google.com with SMTP id i12-v6so9335336wrc.4 for ; Fri, 25 May 2018 06:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dd6c3YkYiTplmttYSCIqC9w8RwtPILMz9zTF1P+oHDs=; b=UOpNTpHa13FqOGhqe/784dB3QH5r+sHIBZ6VnioQo7Gjo76cjejwQ/5+B7DeYykRRR 1b4v+TyMyuPNWCCbUch64eG4LKZZTs9tyBx8naP1/JYS6pEbwlq3Sdb3e3JXvdtPkqNz +DyWkdJVK/3MZ97A/DzC4UAnRk2d0AmWKmqn0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dd6c3YkYiTplmttYSCIqC9w8RwtPILMz9zTF1P+oHDs=; b=UqtWJyRvqFcpdJX/2r+nyPEePBIZXkEUHwwVWYB+oucGOi5rpEMWbxesT9qvfyybxg H4bewOKqmdBmQOorF3LhsVaBiNEj+i5XU54zpaM0pF/H7dh4Wq8ac1dxNGqNVXIW6XI+ 3v3vKlYdTlklrWo7zbBV4miR661gW0u74oQMTSFx5uf4ZcRvUSR35Eb9uq7YlRn97YZ7 NOpSv6bQmNogWUtV+K2OsNuMPr3xnn4B4BTpZaCBUtG8im98FKjuC9DeNp+pKF31tlSl aPPYIRPATB+l05XF57lccyCTnDFgGZn/idcx+dHa22m+j7ZNMIirueFgXDbqTkvt+4Jx meHg== X-Gm-Message-State: ALKqPwe4R1qG2FfbNTUD2dYdJg0+aBQSTMAdJB+fgiFKXqtiO6oqVbSF 6anedeM2Z01NVjefNe+wMCywBQ== X-Google-Smtp-Source: AB8JxZpmGonTMl2g3QFduECxWUC9C5YOtcZk9YBNvBBqwBdYvKfG1mf+K8jMHKdrsfPhE18NzekfuA== X-Received: by 2002:adf:8f25:: with SMTP id p34-v6mr2085461wrb.193.1527255534781; Fri, 25 May 2018 06:38:54 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 44-v6sm54298294wrv.47.2018.05.25.06.38.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:53 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 6C26B3E02DF; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:04 +0100 Message-Id: <20180525133851.27161-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::235 Subject: [Qemu-devel] [PATCH v5 02/49] configure: add test for docker availability X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This tests for a working docker installation without sudo and sets up config-host.mak accordingly. This will be useful from cross compiling things in the future. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson --- configure | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/configure b/configure index a8498ab393..2e10956cfc 100755 --- a/configure +++ b/configure @@ -456,6 +456,7 @@ jemalloc="no" replication="yes" vxhs="" libxml2="" +docker="no" supported_cpu="no" supported_os="no" @@ -5444,6 +5445,17 @@ EOF fi fi +########################################## +# Docker and cross-compiler support +# +# This is specifically for building test +# cases for foreign architectures, not +# cross-compiling QEMU itself. + +if has "docker"; then + docker=$($python $source_path/tests/docker/docker.py probe) +fi + ########################################## # End of CC checks # After here, no more $cc or $ld runs @@ -5907,6 +5919,7 @@ echo "avx2 optimization $avx2_opt" echo "replication support $replication" echo "VxHS block device $vxhs" echo "capstone $capstone" +echo "docker $docker" if test "$sdl_too_old" = "yes"; then echo "-> Your SDL version is too old - please upgrade to have SDL support" @@ -6731,6 +6744,10 @@ if test "$gcov" = "yes" ; then echo "GCOV=$gcov_tool" >> $config_host_mak fi +if test "$docker" != "no"; then + echo "HAVE_USER_DOCKER=y" >> $config_host_mak +fi + # use included Linux headers if test "$linux" = "yes" ; then mkdir -p linux-headers From patchwork Fri May 25 13:38:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920524 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="ZFeAh8hs"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snRp0fzLz9s0q for ; Fri, 25 May 2018 23:39:50 +1000 (AEST) Received: from localhost ([::1]:44044 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCwd-00050O-Id for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:39:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34272) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvq-0004ti-Fz for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvp-0005tB-4R for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:58 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:53675) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvo-0005so-Qt for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:57 -0400 Received: by mail-wm0-x241.google.com with SMTP id a67-v6so14459503wmf.3 for ; Fri, 25 May 2018 06:38:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6c5MoRTJpISQgbaDl5h6W+KT2qOUk5aysSM1IwajYro=; b=ZFeAh8hsK6tZ7QFYExRPH6xLTFp1xQL2B3WHy+7lEBRcE0pSaawD7iEf96I8md3Q4d zHmkC797aAc7BcQ++4Ji085oVJbj0FguaDxyGvcGoieptZ4oZZfDjBG6GP4LPfYpEW7P Qmibepia51fJVetGequijgRnnyIKQ9ipK7Y58= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6c5MoRTJpISQgbaDl5h6W+KT2qOUk5aysSM1IwajYro=; b=NkyDRTrQuhasa35NTaN6Ge32cU2aXwpGYleXAvCc+G0OQEXQrmBqqWUikMcRWSp/s1 B1feUA4gcCVRB6qZkPrm/9pApbmOF6V6grMNbrugrqUJKS0C2cfpcqBfSz5jo6YQiq9B 964orkw5autuDVZLDqWokeXBgPd1ovxTc8e9Htu1Al5h5vIbzjWe8k/TVZXAK8KKOQzw /OMiD+G22g3DEcLE54S7xF5nV6bQCUlOwdYPGQkiHNBUXFRs+K/Ilzn/QdS9CpTlhjyl T0T/dyvJJibjdwLSN+BwGxcTw3QevCsRs8JtZI8kQzdZUMnLan4Hxss972C6HX3D019G 43Wg== X-Gm-Message-State: ALKqPwcnN7Az8Hz/7wr3pqrKH3r0kXYPS2g6RaTp42Wnfejl5ciDLOEx ggee1WWqvE6a1D+5pTQdQm0eYg== X-Google-Smtp-Source: ADUXVKLWwQhH7dn6p9taFn8cTfBuv5dXfk3WJWmY3vG4bH3ySJ9MFY9bsDFRO3W/JLQf1UdD+7JOfw== X-Received: by 2002:a1c:3bd4:: with SMTP id i203-v6mr2043171wma.41.1527255535645; Fri, 25 May 2018 06:38:55 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id y18-v6sm17362905wrl.76.2018.05.25.06.38.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:53 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 7F6A93E0312; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:05 +0100 Message-Id: <20180525133851.27161-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PATCH v5 03/49] configure: add support for --cross-cc-FOO X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This allows us to specify cross compilers for our guests. This is useful for building test images/programs. Currently we re-run the compile test for each target. I couldn't think of a way to cache the value for a given arch without getting messier configure code. The cross compiler for the guest is visible to each target as CROSS_CC_GUEST in config-target.mak. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson --- v3 - --cross-cc-*[!a-zA-Z0-9_-]*=*) error_exit... - --cross-cc-*) cc_arch=${opt#--cross-cc-}; cc_arch=${cc_arch%%=*} - add remaining target_compiler definitions v4 - also set cross_cc_$cpu=$host_cc - try a non-static build if static fails - use write_c_skeleton - add doc string in help --- configure | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/configure b/configure index 2e10956cfc..931725d870 100755 --- a/configure +++ b/configure @@ -458,6 +458,13 @@ vxhs="" libxml2="" docker="no" +# cross compilers defaults, can be overridden with --cross-cc-ARCH +cross_cc_aarch64="aarch64-linux-gnu-gcc" +cross_cc_arm="arm-linux-gnueabihf-gcc" +cross_cc_powerpc="powerpc-linux-gnu-gcc" + +enabled_cross_compilers="" + supported_cpu="no" supported_os="no" bogus_os="no" @@ -488,6 +495,11 @@ for opt do ;; --disable-debug-info) debug_info="no" ;; + --cross-cc-*[!a-zA-Z0-9_-]*=*) error_exit "Passed bad --cross-cc-FOO option" + ;; + --cross-cc-*) cc_arch=${opt#--cross-cc-}; cc_arch=${cc_arch%%=*} + eval "cross_cc_${cc_arch}=\$optarg" + ;; esac done # OS specific @@ -676,30 +688,37 @@ case "$cpu" in ppc|ppc64|s390|s390x|sparc64|x32) cpu="$cpu" supported_cpu="yes" + eval "cross_cc_${cpu}=\$host_cc" ;; i386|i486|i586|i686|i86pc|BePC) cpu="i386" supported_cpu="yes" + cross_cc_i386=$host_cc ;; x86_64|amd64) cpu="x86_64" supported_cpu="yes" + cross_cc_x86_64=$host_cc ;; armv*b|armv*l|arm) cpu="arm" supported_cpu="yes" + cross_cc_arm=$host_cc ;; aarch64) cpu="aarch64" supported_cpu="yes" + cross_cc_aarch64=$host_cc ;; mips*) cpu="mips" supported_cpu="yes" + cross_cc_mips=$host_cc ;; sparc|sun4[cdmuv]) cpu="sparc" supported_cpu="yes" + cross_cc_sparc=$host_cc ;; *) # This will result in either an error or falling back to TCI later @@ -917,6 +936,8 @@ for opt do ;; --disable-debug-info) ;; + --cross-cc-*) + ;; --enable-modules) modules="yes" ;; @@ -1501,6 +1522,7 @@ Advanced options (experts only): --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS --extra-cxxflags=CXXFLAGS append extra C++ compiler flags QEMU_CXXFLAGS --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS + --cross-cc-ARCH=CC use compiler when building ARCH guest test cases --make=MAKE use specified make [$make] --install=INSTALL use specified install [$install] --python=PYTHON use specified python [$python] @@ -6811,6 +6833,9 @@ case "$target" in ;; esac +target_compiler="" +target_compiler_static="" + mkdir -p $target_dir echo "# Automatically generated by configure - do not modify" > $config_target_mak @@ -6826,19 +6851,23 @@ TARGET_ABI_DIR="" case "$target_name" in i386) gdb_xml_files="i386-32bit.xml i386-32bit-core.xml i386-32bit-sse.xml" + target_compiler=$cross_cc_i386 ;; x86_64) TARGET_BASE_ARCH=i386 gdb_xml_files="i386-64bit.xml i386-64bit-core.xml i386-64bit-sse.xml" + target_compiler=$cross_cc_x86_64 ;; alpha) mttcg="yes" + target_compiler=$cross_cc_alpha ;; arm|armeb) TARGET_ARCH=arm bflt="yes" mttcg="yes" gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" + target_compiler=$cross_cc_arm ;; aarch64|aarch64_be) TARGET_ARCH=aarch64 @@ -6846,58 +6875,73 @@ case "$target_name" in bflt="yes" mttcg="yes" gdb_xml_files="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" + target_compiler=$cross_cc_aarch64 ;; cris) + target_compiler=$cross_cc_cris ;; hppa) mttcg="yes" + target_compiler=$cross_cc_hppa ;; lm32) + target_compiler=$cross_cc_lm32 ;; m68k) bflt="yes" gdb_xml_files="cf-core.xml cf-fp.xml m68k-fp.xml" + target_compiler=$cross_cc_m68k ;; microblaze|microblazeel) TARGET_ARCH=microblaze bflt="yes" + target_compiler=$cross_cc_microblaze ;; mips|mipsel) TARGET_ARCH=mips + target_compiler=$cross_cc_mips echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak ;; mipsn32|mipsn32el) TARGET_ARCH=mips64 TARGET_BASE_ARCH=mips + target_compiler=$cross_cc_mipsn32 echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak echo "TARGET_ABI32=y" >> $config_target_mak ;; mips64|mips64el) TARGET_ARCH=mips64 TARGET_BASE_ARCH=mips + target_compiler=$cross_cc_mips64 echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak ;; moxie) + target_compiler=$cross_cc_moxie ;; nios2) + target_compiler=$cross_cc_nios2 ;; or1k) + target_compiler=$cross_cc_or1k TARGET_ARCH=openrisc TARGET_BASE_ARCH=openrisc ;; ppc) gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" + target_compiler=$cross_cc_powerpc ;; ppcemb) TARGET_BASE_ARCH=ppc TARGET_ABI_DIR=ppc gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" + target_compiler=$cross_cc_ppcemb ;; ppc64) TARGET_BASE_ARCH=ppc TARGET_ABI_DIR=ppc mttcg=yes gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml" + target_compiler=$cross_cc_ppc64 ;; ppc64le) TARGET_ARCH=ppc64 @@ -6905,6 +6949,7 @@ case "$target_name" in TARGET_ABI_DIR=ppc mttcg=yes gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml" + target_compiler=$cross_cc_ppc64le ;; ppc64abi32) TARGET_ARCH=ppc64 @@ -6912,45 +6957,57 @@ case "$target_name" in TARGET_ABI_DIR=ppc echo "TARGET_ABI32=y" >> $config_target_mak gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml" + target_compiler=$cross_cc_ppc64abi32 ;; riscv32) TARGET_BASE_ARCH=riscv TARGET_ABI_DIR=riscv mttcg=yes + target_compiler=$cross_cc_riscv32 ;; riscv64) TARGET_BASE_ARCH=riscv TARGET_ABI_DIR=riscv mttcg=yes + target_compiler=$cross_cc_riscv64 ;; sh4|sh4eb) TARGET_ARCH=sh4 bflt="yes" + target_compiler=$cross_cc_sh4 ;; sparc) + target_compiler=$cross_cc_sparc ;; sparc64) TARGET_BASE_ARCH=sparc + target_compiler=$cross_cc_sparc64 ;; sparc32plus) TARGET_ARCH=sparc64 TARGET_BASE_ARCH=sparc TARGET_ABI_DIR=sparc + target_compiler=$cross_cc_sparc32plus echo "TARGET_ABI32=y" >> $config_target_mak ;; s390x) mttcg=yes gdb_xml_files="s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml s390-gs.xml" + target_compiler=$cross_cc_s390x ;; tilegx) + target_compiler=$cross_cc_tilegx ;; tricore) + target_compiler=$cross_cc_tricore ;; unicore32) + target_compiler=$cross_cc_unicore32 ;; xtensa|xtensaeb) TARGET_ARCH=xtensa mttcg="yes" + target_compiler=$cross_cc_xtensa ;; *) error_exit "Unsupported target CPU" @@ -6961,6 +7018,27 @@ if [ "$TARGET_BASE_ARCH" = "" ]; then TARGET_BASE_ARCH=$TARGET_ARCH fi +# Do we have a cross compiler for this target? +if has $target_compiler; then + + write_c_skeleton + + if ! do_compiler $target_compiler -o $TMPE $TMPC -static ; then + # For host systems we might get away with building without -static + if ! do_compiler $target_compiler -o $TMPE $TMPC ; then + target_compiler="" + else + enabled_cross_compilers="${enabled_cross_compilers} ${target_compiler}" + target_compiler_static="n" + fi + else + enabled_cross_compilers="${enabled_cross_compilers} ${target_compiler}" + target_compiler_static="y" + fi +else + target_compiler="" +fi + symlink "$source_path/Makefile.target" "$target_dir/Makefile" upper() { @@ -7034,6 +7112,14 @@ if test "$target_bsd_user" = "yes" ; then echo "CONFIG_BSD_USER=y" >> $config_target_mak fi +if test -n "$target_compiler"; then + echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak + + if test -n "$target_compiler_static"; then + echo "CROSS_CC_GUEST_STATIC=$target_compiler_static" >> $config_target_mak + fi +fi + # generate QEMU_CFLAGS/LDFLAGS for targets cflags="" @@ -7156,6 +7242,12 @@ echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak done # for target in $targets +if test -n "$enabled_cross_compilers"; then + echo + echo "NOTE: cross-compilers enabled:" + printf '%s\n' $enabled_cross_compilers | sort -u +fi + if [ "$fdt" = "git" ]; then echo "config-host.h: subdir-dtc" >> $config_host_mak fi From patchwork Fri May 25 13:38:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920527 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="YSmeaIp/"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snVv4wq3z9s0q for ; Fri, 25 May 2018 23:42:31 +1000 (AEST) Received: from localhost ([::1]:44058 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCzF-0007ds-8M for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:42:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34282) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvq-0004to-Vt for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvp-0005tS-Ty for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:59 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:51603) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvp-0005t4-N2 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:57 -0400 Received: by mail-wm0-x242.google.com with SMTP id j4-v6so14553311wme.1 for ; Fri, 25 May 2018 06:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SxRPVjw/t0H4ss/h1/2Q0O6qm06FJ/kR+jFxIAyKHc0=; b=YSmeaIp/3lzMD+VWjJSE4zPOXY7fGpm301C6jpyOfrr7uGDJJgHVJSowZI0ziEsEKY P3DAB7iGzj/J68nUdJ/gG+DCFOI2/0rDekZNsCXdzcTMsXftj9xO8+H1GY7HaWruGB95 rmT5xlk37/6Iy5akCCy1VF9WOrGv9v/pSnHeQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SxRPVjw/t0H4ss/h1/2Q0O6qm06FJ/kR+jFxIAyKHc0=; b=QVv08mYcWXeFuODAs/NZYMhQOo7lunXmDhmq81hkri+k8wm3SvqZUYyWp6W7dwh4Bq o17MoGkbhHxSiiP7FS76hxUthSbiMp9JKsGQAqZw/ZNPv1RdDnSc+BJnGsKUGc44fFvv aJksMcHw8IgkrLXWlFIvrfiU8H4DezFmNZZ6uSHpUEWVfsEYDDXxTm19OxdsQVCuEYHf xc3jQY3haKO7Wr4WclEFxqsUnnjTkO9pnJL2WPn2U/7Uz6jy3YI7XdmzAsxjrIkqQ+pj Js1HZEGpju4ccNU/v9ZoUczZC3/VqG778NWr2bcPyrurQIxuLfeu/hLrVJQ0ZO2IvxW7 tXYA== X-Gm-Message-State: ALKqPwfDAHQA4SpF34atidWGRsPwwMLn4uRNi1+VV0zDCh/j/PoXOXL1 xfodMXEV1pFg1kv7anIqrBCUkQ== X-Google-Smtp-Source: ADUXVKKhPoe52oxIAjqXqayaJPCSnG29Wotch4wTUQVK/pAwzH51SjZT1tPZAi7RgREj0B5eAnt+/g== X-Received: by 2002:a1c:d60e:: with SMTP id n14-v6mr2015225wmg.102.1527255536501; Fri, 25 May 2018 06:38:56 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id b72-v6sm11888080wmf.2.2018.05.25.06.38.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:53 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 923473E05B2; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:06 +0100 Message-Id: <20180525133851.27161-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PATCH v5 04/49] configure: move i386_cc to cross_cc_i386 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Also dont assume x86_64 compiler can build i386 binaries. Signed-off-by: Alex Bennée Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v2 - drop using system x86_64 compiler for i386 compiles v3 - fix cross_cc_i386 when on i386 v4 - fix merge conflicts - sort cross_cc defines --- configure | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/configure b/configure index 931725d870..e51033d680 100755 --- a/configure +++ b/configure @@ -289,7 +289,6 @@ libs_softmmu="" libs_tools="" audio_pt_int="" audio_win_int="" -cc_i386=i386-pc-linux-gnu-gcc libs_qga="" debug_info="yes" stack_protector="" @@ -461,6 +460,8 @@ docker="no" # cross compilers defaults, can be overridden with --cross-cc-ARCH cross_cc_aarch64="aarch64-linux-gnu-gcc" cross_cc_arm="arm-linux-gnueabihf-gcc" +cross_cc_i386="i386-pc-linux-gnu-gcc" +cross_cc_cflags_i386="" cross_cc_powerpc="powerpc-linux-gnu-gcc" enabled_cross_compilers="" @@ -1447,7 +1448,8 @@ case "$cpu" in i386) CPU_CFLAGS="-m32" LDFLAGS="-m32 $LDFLAGS" - cc_i386='$(CC) -m32' + cross_cc_i386=$cc + cross_cc_cflags_i386=$CPU_CFLAGS ;; x86_64) # ??? Only extremely old AMD cpus do not have cmpxchg16b. @@ -1455,12 +1457,14 @@ case "$cpu" in # runtime and generate the fallback to serial emulation. CPU_CFLAGS="-m64 -mcx16" LDFLAGS="-m64 $LDFLAGS" - cc_i386='$(CC) -m32' + cross_cc_x86_64=$cc + cross_cc_cflags_x86_64=$CPU_CFLAGS ;; x32) CPU_CFLAGS="-mx32" LDFLAGS="-mx32 $LDFLAGS" - cc_i386='$(CC) -m32' + cross_cc_i386=$cc + cross_cc_cflags_i386="-m32" ;; # No special flags required for other host CPUs esac @@ -6714,7 +6718,6 @@ echo "CC=$cc" >> $config_host_mak if $iasl -h > /dev/null 2>&1; then echo "IASL=$iasl" >> $config_host_mak fi -echo "CC_I386=$cc_i386" >> $config_host_mak echo "HOST_CC=$host_cc" >> $config_host_mak echo "CXX=$cxx" >> $config_host_mak echo "OBJCC=$objcc" >> $config_host_mak @@ -6835,6 +6838,7 @@ esac target_compiler="" target_compiler_static="" +target_compiler_cflags="" mkdir -p $target_dir echo "# Automatically generated by configure - do not modify" > $config_target_mak @@ -6852,6 +6856,7 @@ case "$target_name" in i386) gdb_xml_files="i386-32bit.xml i386-32bit-core.xml i386-32bit-sse.xml" target_compiler=$cross_cc_i386 + target_compiler_cflags=$cross_cc_ccflags_i386 ;; x86_64) TARGET_BASE_ARCH=i386 @@ -7023,9 +7028,9 @@ if has $target_compiler; then write_c_skeleton - if ! do_compiler $target_compiler -o $TMPE $TMPC -static ; then + if ! do_compiler $target_compiler $target_compiler_cflags -o $TMPE $TMPC -static ; then # For host systems we might get away with building without -static - if ! do_compiler $target_compiler -o $TMPE $TMPC ; then + if ! do_compiler $target_compiler $target_compiler_cflags -o $TMPE $TMPC ; then target_compiler="" else enabled_cross_compilers="${enabled_cross_compilers} ${target_compiler}" @@ -7118,8 +7123,13 @@ if test -n "$target_compiler"; then if test -n "$target_compiler_static"; then echo "CROSS_CC_GUEST_STATIC=$target_compiler_static" >> $config_target_mak fi + + if test -n "$target_compiler_cflags"; then + echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak + fi fi + # generate QEMU_CFLAGS/LDFLAGS for targets cflags="" From patchwork Fri May 25 13:38:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920523 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="bMFJ8wEs"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snRh6R29z9s19 for ; Fri, 25 May 2018 23:39:44 +1000 (AEST) Received: from localhost ([::1]:44043 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCwY-0004x5-Ep for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:39:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34311) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvs-0004uV-R3 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvr-0005up-SD for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:00 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:56088) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvr-0005uG-Lv for qemu-devel@nongnu.org; Fri, 25 May 2018 09:38:59 -0400 Received: by mail-wm0-x244.google.com with SMTP id a8-v6so14495429wmg.5 for ; Fri, 25 May 2018 06:38:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=36efDc+/VUG9h4qFwWPC7cB9Qqd+IPhtKwJCVtqyrTw=; b=bMFJ8wEs4qn0mTQvSMYpbfrUgLF5M/6pKPCwQHo2u/dPqYR3AxFYryCRQxd+VaMoD0 5ekm4x2BRAvTxP2JCv7cE4qG1nVjAz6228iRcuVV7/lWtFCKIheW+3qOUPs5LDamvwiK fI6im7oS1pc8lb1C155ZdsMfY/PGOps7DHUZE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=36efDc+/VUG9h4qFwWPC7cB9Qqd+IPhtKwJCVtqyrTw=; b=qC9nka7tNJMqu6z5MBut9tZUukfxukmf4fXI2i2qE0MvLMzNkAaLZnYoEHagXCDcTp NZg/5CVdommrU+/o44g27EXh8l+9fEo/5ENeKZrOFCNazkh/ogUp1tBrghJXyEjAtzEF MI1E+pEbD6idAk3lzpCRbpEODS7hsz8x/K47agSZP903jNpY7yuzzyfIUdqV1nLaLWjZ gmWcHLD8n2+TR0v3Ao/ltknqBKVhf9Ws+GSBhpkGSBGlbHdU2pcbvVm4sbhcHSWjw/9q DcYG2lHWgAh5NImVQ4uQsN+NBvJWnnfdmhA9IQMco04ntcv93JiF8/Y6AqTI/PVqkxaK bHIw== X-Gm-Message-State: ALKqPwcSwghxeB3CwxNW73l9nzqEDQEnNBH0BUMfO9Cp5S+siB7i8pmp plaZuDDY0wAkr+jIJ8xpngNlsA== X-Google-Smtp-Source: ADUXVKKXILWadC0du8ZgX4MO5nFkACag/xX8DTXoakqiIEX77IfAsv5IhHKsUIp1cTpBhuBxONviVA== X-Received: by 2002:a1c:fc3:: with SMTP id 186-v6mr2088217wmp.113.1527255538556; Fri, 25 May 2018 06:38:58 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id m64-v6sm12689230wmb.12.2018.05.25.06.38.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:53 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id A50433E069A; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:07 +0100 Message-Id: <20180525133851.27161-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PATCH v5 05/49] configure: allow user to specify --cross-cc-cflags-foo= X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As an individual compiler may be able to support several targets with the appropriate flags we need to expose this to the user as well. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson --- v3 - fix up the cross-cc v4 - add --help text - sort cross_cc_foo lines --- configure | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/configure b/configure index e51033d680..48a3675a6b 100755 --- a/configure +++ b/configure @@ -459,10 +459,14 @@ docker="no" # cross compilers defaults, can be overridden with --cross-cc-ARCH cross_cc_aarch64="aarch64-linux-gnu-gcc" +cross_cc_aarch64_be="$cross_cc_aarch64" +cross_cc_cflags_aarch64_be="-mbig-endian" cross_cc_arm="arm-linux-gnueabihf-gcc" +cross_cc_cflags_armeb="-mbig-endian" cross_cc_i386="i386-pc-linux-gnu-gcc" cross_cc_cflags_i386="" cross_cc_powerpc="powerpc-linux-gnu-gcc" +cross_cc_powerpc="powerpc-linux-gnu-gcc" enabled_cross_compilers="" @@ -498,6 +502,9 @@ for opt do ;; --cross-cc-*[!a-zA-Z0-9_-]*=*) error_exit "Passed bad --cross-cc-FOO option" ;; + --cross-cc-cflags-*) cc_arch=${opt#--cross-cc-flags-}; cc_arch=${cc_arch%%=*} + eval "cross_cc_cflags_${cc_arch}=\$optarg" + ;; --cross-cc-*) cc_arch=${opt#--cross-cc-}; cc_arch=${cc_arch%%=*} eval "cross_cc_${cc_arch}=\$optarg" ;; @@ -1527,6 +1534,7 @@ Advanced options (experts only): --extra-cxxflags=CXXFLAGS append extra C++ compiler flags QEMU_CXXFLAGS --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS --cross-cc-ARCH=CC use compiler when building ARCH guest test cases + --cross-cc-flags-ARCH= use compiler flags when building ARCH guest tests --make=MAKE use specified make [$make] --install=INSTALL use specified install [$install] --python=PYTHON use specified python [$python] @@ -6873,6 +6881,7 @@ case "$target_name" in mttcg="yes" gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" target_compiler=$cross_cc_arm + eval "target_compiler_cflags=\$cross_cc_cflags_${target_name}" ;; aarch64|aarch64_be) TARGET_ARCH=aarch64 @@ -6881,6 +6890,7 @@ case "$target_name" in mttcg="yes" gdb_xml_files="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" target_compiler=$cross_cc_aarch64 + eval "target_compiler_cflags=\$cross_cc_cflags_${target_name}" ;; cris) target_compiler=$cross_cc_cris From patchwork Fri May 25 13:38:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920529 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="HYvAUt4Q"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snW74myLz9s15 for ; Fri, 25 May 2018 23:42:43 +1000 (AEST) Received: from localhost ([::1]:44061 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCzR-0007mk-7E for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:42:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34352) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvw-0004y4-G9 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvv-0005vj-3c for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:04 -0400 Received: from mail-wr0-x22c.google.com ([2a00:1450:400c:c0c::22c]:36362) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvu-0005vT-Qn for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:03 -0400 Received: by mail-wr0-x22c.google.com with SMTP id k5-v6so9320031wrn.3 for ; Fri, 25 May 2018 06:39:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aZ6DLVPaEn0i3n5coomcWZAjkcxmsDTtFj1t0mBDNJU=; b=HYvAUt4Q1+tpoMDtKyCMiMs8KCZx+B2CH0KE68BAeIP9zygYC2uPkXpY3mBXkT/OES JK6f66GiukQeaEEDrdIf48w5Rezx86o0XKrDv4s+/1dT1+d5Zg4E/SLPOsRB7erNrxjI 4u24Esra1nXdOMZZ4Cw20aB2jjio4O9veY+TY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aZ6DLVPaEn0i3n5coomcWZAjkcxmsDTtFj1t0mBDNJU=; b=rIleLdf/afGPkh5pitSCZhj5hUWwfSMXMrdDdB6bQppn/2WTsE13Itj9iin2Rfi819 UwUW4X/8GVqewLupYmGOHWy+SDuG30+PkPBUf7aRv3FHnO/ukKD+z4tcnnA6zHHyTKjE XSgVxbtTCfTlM9rlrq4vOFrb8Z6BWKGe/zemigJILipX26s2Oq4JWUy0/d811q3Jl6tT jtHEFLWpiChvMltWeCiXyNhrMs7czT9VB4WF9+ZTgDdPzCRIjcgDNpvYccUKcYK3pg2T RHOMduLN+r11pmimRsLmkj37ZoHH5DGsKf9CqZPuwKBkyD2bYp83BUikSo3nDec5wbrg S0Vg== X-Gm-Message-State: ALKqPwf51Mj+xkj/okuHdxk1/VPlq4XE6JIfoxegSVgRtFLwh8BkrAy5 PZdRKi+PcESP9OJknxeEefs3uA== X-Google-Smtp-Source: AB8JxZocQjPe0HQCpPBLG1CKT7wnxWgk4XKJayJeLQ1goaEQTe1Alpan5ZE6X9bPzyQzYV7CCQaKzg== X-Received: by 2002:adf:a075:: with SMTP id l50-v6mr2492907wrl.227.1527255541665; Fri, 25 May 2018 06:39:01 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 140-v6sm9651924wmi.9.2018.05.25.06.38.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:58 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id CC2053E071E; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:09 +0100 Message-Id: <20180525133851.27161-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22c Subject: [Qemu-devel] [PATCH v5 07/49] Makefile: Rename TARGET_DIRS to TARGET_LIST X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Fam Zheng To be more accurate on its purpose and make code that looks for a certain target out of this variable more readable. Signed-off-by: Fam Zheng Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- Makefile | 20 ++++++++++---------- configure | 2 +- scripts/create_config | 2 +- tests/Makefile.include | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 6d588d1f71..023b3437ec 100644 --- a/Makefile +++ b/Makefile @@ -62,8 +62,8 @@ seems to have been used for an in-tree build. You can fix this by running \ endif endif -CONFIG_SOFTMMU := $(if $(filter %-softmmu,$(TARGET_DIRS)),y) -CONFIG_USER_ONLY := $(if $(filter %-user,$(TARGET_DIRS)),y) +CONFIG_SOFTMMU := $(if $(filter %-softmmu,$(TARGET_LIST)),y) +CONFIG_USER_ONLY := $(if $(filter %-user,$(TARGET_LIST)),y) CONFIG_XEN := $(CONFIG_XEN_BACKEND) CONFIG_ALL=y -include config-all-devices.mak @@ -366,8 +366,8 @@ DOCS= endif SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR) -SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_DIRS)) -SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %-config-devices.mak.d, $(TARGET_DIRS)) +SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_LIST)) +SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %-config-devices.mak.d, $(TARGET_LIST)) ifeq ($(SUBDIR_DEVICES_MAK),) config-all-devices.mak: @@ -470,7 +470,7 @@ config-host.h-timestamp: config-host.mak qemu-options.def: $(SRC_PATH)/qemu-options.hx $(SRC_PATH)/scripts/hxtool $(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@,"GEN","$@") -SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS)) +SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_LIST)) SOFTMMU_SUBDIR_RULES=$(filter %-softmmu,$(SUBDIR_RULES)) $(SOFTMMU_SUBDIR_RULES): $(block-obj-y) @@ -514,7 +514,7 @@ ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) romsubdir-%: $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pc-bios/$* V="$(V)" TARGET_DIR="$*/" CFLAGS="$(filter -O% -g%,$(CFLAGS))",) -ALL_SUBDIRS=$(TARGET_DIRS) $(patsubst %,pc-bios/%, $(ROMS)) +ALL_SUBDIRS=$(TARGET_LIST) $(patsubst %,pc-bios/%, $(ROMS)) recurse-all: $(SUBDIR_RULES) $(ROMSUBDIR_RULES) @@ -772,7 +772,7 @@ distclean: clean rm -f docs/interop/qemu-qmp-ref.pdf docs/interop/qemu-ga-ref.pdf rm -f docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html rm -f docs/qemu-block-drivers.7 - for d in $(TARGET_DIRS); do \ + for d in $(TARGET_LIST); do \ rm -rf $$d || exit 1 ; \ done rm -Rf .sdk @@ -873,7 +873,7 @@ endif $(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \ done $(INSTALL_DATA) $(BUILD_DIR)/trace-events-all "$(DESTDIR)$(qemu_datadir)/trace-events-all" - for d in $(TARGET_DIRS); do \ + for d in $(TARGET_LIST); do \ $(MAKE) $(SUBDIR_MAKEFLAGS) TARGET_DIR=$$d/ -C $$d $@ || exit 1 ; \ done @@ -1071,9 +1071,9 @@ endif @echo ' ctags/TAGS - Generate tags file for editors' @echo ' cscope - Generate cscope index' @echo '' - @$(if $(TARGET_DIRS), \ + @$(if $(TARGET_LIST), \ echo 'Architecture specific targets:'; \ - $(foreach t, $(TARGET_DIRS), \ + $(foreach t, $(TARGET_LIST), \ printf " %-30s - Build for %s\\n" $(patsubst %,subdir-%,$(t)) $(t);) \ echo '') @echo 'Cleaning targets:' diff --git a/configure b/configure index cc375abe15..d2c605161e 100755 --- a/configure +++ b/configure @@ -6168,7 +6168,7 @@ qemu_version=$(head $source_path/VERSION) echo "VERSION=$qemu_version" >>$config_host_mak echo "PKGVERSION=$pkgversion" >>$config_host_mak echo "SRC_PATH=$source_path" >> $config_host_mak -echo "TARGET_DIRS=$target_list" >> $config_host_mak +echo "TARGET_LIST=$target_list" >> $config_host_mak if [ "$docs" = "yes" ] ; then echo "BUILD_DOCS=yes" >> $config_host_mak fi diff --git a/scripts/create_config b/scripts/create_config index d727e5e36e..58948a67a4 100755 --- a/scripts/create_config +++ b/scripts/create_config @@ -107,7 +107,7 @@ case $line in target_name=${line#*=} echo "#define TARGET_NAME \"$target_name\"" ;; - TARGET_DIRS=*) + TARGET_LIST=*) # do nothing ;; TARGET_*=y) # configuration diff --git a/tests/Makefile.include b/tests/Makefile.include index 3b9a5e31a2..3d2f0458ab 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -854,7 +854,7 @@ endif # QTest rules -TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS))) +TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_LIST))) ifeq ($(CONFIG_POSIX),y) QTEST_TARGETS = $(TARGETS) check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y)) From patchwork Fri May 25 13:38:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920533 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="a376PyFw"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snZJ3nfZz9s0q for ; Fri, 25 May 2018 23:45:28 +1000 (AEST) Received: from localhost ([::1]:44074 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD26-0001xT-3z for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:45:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34378) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvz-000513-L2 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvu-0005vP-3n for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:07 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:36460) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvt-0005vC-Tf for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:02 -0400 Received: by mail-wm0-x244.google.com with SMTP id n10-v6so14689395wmc.1 for ; Fri, 25 May 2018 06:39:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2bTmo5Z3bqje3uvfKSKg6BbcjFDioLuevJQVtr4gvdc=; b=a376PyFwCK1U6ua0t2HQQ12fzk82igztkGzcJxUnAgNSDzaXSO0rwXUt5LWJBdMFUX KnKZyLIBeqxokqUo/nrFN2GBjetTykqRwNyzGgRtwyM214nwYcM3AUfFAkBL0TD7SS03 YOcsZLkTaxXoqWr1wxb0nSr4PPtKCstwpFky8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2bTmo5Z3bqje3uvfKSKg6BbcjFDioLuevJQVtr4gvdc=; b=hPPnRaK9EHGX3NQALsSBorHtSJ2DBLP9fI7hiBAS5vJvyLauiyrhVGmBgbwj8wXhi3 JEf3AwBg2KT24hIqqGssSjUxCxrhHkmzUcQKrkBaUuLQMQ/bL5AL6t3yV0zAVpQgUZVQ 9VzfnNJMPnlpsMYaWwVy/0OG6AXjYOUZNHkSYl7QK8lji9+bVJV0+yIdUrKlZXXCEERZ /NHb0qCikIM8BuMji5eqfgHqZ3zMHvf60ttFzGu1C4U9o6wtEAAvzStmVnkdbeLB+n+3 4c1uchZtBTY9f3XxY/eJ1YWujCX2027SpiCk44MAQiIvBocciIcrQghAbb+XsD6bkKh+ yvWw== X-Gm-Message-State: ALKqPwdl0PR18i6lImxX4GLd4uU5cLPBpjMqHSDz8IIPOBqS7UBqO62L 7pNb13/Wl2nbP3zLK4TNuWnvKA== X-Google-Smtp-Source: ADUXVKK0B0DYpMojnD0Wsv5eLeObYTM/OfWYMZO1w3aA1Izyw9vkFiVGZJ6tA9rT/lZzNC+sQgmmGQ== X-Received: by 2002:a1c:f70b:: with SMTP id v11-v6mr1707289wmh.77.1527255540874; Fri, 25 May 2018 06:39:00 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id j76-v6sm20121363wmf.33.2018.05.25.06.38.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:58 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id DEB043E0736; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:10 +0100 Message-Id: <20180525133851.27161-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PATCH v5 08/49] docker: Add "cc" subcommand X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Fam Zheng [AJB: add if args.paths check] Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v2 - add if args.paths check to avoid iterating null argument --- tests/docker/docker.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/docker/docker.py b/tests/docker/docker.py index f8267586eb..bcc3ee2dee 100755 --- a/tests/docker/docker.py +++ b/tests/docker/docker.py @@ -408,6 +408,31 @@ class ProbeCommand(SubCommand): return +class CcCommand(SubCommand): + """Compile sources with cc in images""" + name = "cc" + + def args(self, parser): + parser.add_argument("--image", "-i", required=True, + help="The docker image in which to run cc") + parser.add_argument("--source-path", "-s", nargs="*", dest="paths", + help="""Extra paths to (ro) mount into container for + reading sources""") + + def run(self, args, argv): + if argv and argv[0] == "--": + argv = argv[1:] + cwd = os.getcwd() + cmd = ["--rm", "-w", cwd, + "-v", "%s:%s:rw" % (cwd, cwd)] + if args.paths: + for p in args.paths: + cmd += ["-v", "%s:%s:ro,z" % (p, p)] + cmd += [args.image, "cc"] + cmd += argv + return Docker().command("run", cmd, args.quiet) + + def main(): parser = argparse.ArgumentParser(description="A Docker helper", usage="%s ..." % os.path.basename(sys.argv[0])) From patchwork Fri May 25 13:38:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920535 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="QXMQHBhv"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40sndv5JX4z9s1d for ; Fri, 25 May 2018 23:48:35 +1000 (AEST) Received: from localhost ([::1]:44088 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD56-0004En-Vy for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:48:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvz-00050w-IY for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvx-0005x0-AL for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:07 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:53680) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvx-0005wh-4s for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:05 -0400 Received: by mail-wm0-x244.google.com with SMTP id a67-v6so14460711wmf.3 for ; Fri, 25 May 2018 06:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0NSInJZhrOmC3q3A4nal6f/raMjxYjeK2ZWMf0DVRek=; b=QXMQHBhvKh/xR7IDNvgNKBufrf+LliAQVaOVpvmrw7wBmKYoqTDu9xY9NEhalb1qXs QjrlAcYSY6ul1gTC2N0p7ALHRo5J/9CYcMGt74CqpPUzmGIxV7ozdqqRZFxYlDjlZtHe UaIqfNWYCkh9Z9LH71i08SyFZNYrIXtxP3uwY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0NSInJZhrOmC3q3A4nal6f/raMjxYjeK2ZWMf0DVRek=; b=atuqE6JRf7Zw+cFNFJb5b18h3nRBV5QaYQzP26Z8gDyjClwTA+nc/hED674KivfV7J BgmPloUSSVFBtuSENKASGRv5veQLXbYvo+An+4YzhfvbmDk7/0foatH2WSN3gpNvllcf Xrz/HyS1dz/pQSGjdi2TBTXfVQKXkQHu6jIXiGejWUA8Br5zT2IBEW26Z6yzEItYHOwJ CcdL57B7/ZahaJ1tTmlM8fgQJ9lbHZ9rcJEgzL7g+NtGwKC0kSy0MqvpOGlKyEB3o5C4 V/W5T7mxUcW2Cx2UW2y93AMdmySVvueN8X5HUOka/+B/NquRKxkjdsvhX+XmLw0BtgCk 8Q6w== X-Gm-Message-State: ALKqPwdn2bDlhQwVv6SOeCnty4xkNkAA6TXIMJE8T/nSmqY4CvMRPw9T DBkK4qa0oBGsyIKMoRY8/5sYdw== X-Google-Smtp-Source: ADUXVKKpPGRU2aQSSGmWcOeiwXOH+y+EyOl6ZP6uEPsyyi7gC009Z0TH0095yhMHdRUt2A+0gIbYtw== X-Received: by 2002:a1c:ea44:: with SMTP id i65-v6mr1673823wmh.97.1527255544064; Fri, 25 May 2018 06:39:04 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id t5-v6sm8952740wrn.16.2018.05.25.06.38.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:59 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id F1C243E07B5; Fri, 25 May 2018 14:38:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:11 +0100 Message-Id: <20180525133851.27161-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PATCH v5 09/49] docker: extend "cc" command to accept compiler X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" When calling our cross-compilation images we want to call something other than the default cc. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Fam Zheng --- v2 - use arg.cc default to simplify logic --- tests/docker/docker.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/docker/docker.py b/tests/docker/docker.py index bcc3ee2dee..59bce9f19a 100755 --- a/tests/docker/docker.py +++ b/tests/docker/docker.py @@ -415,6 +415,8 @@ class CcCommand(SubCommand): def args(self, parser): parser.add_argument("--image", "-i", required=True, help="The docker image in which to run cc") + parser.add_argument("--cc", default="cc", + help="The compiler executable to call") parser.add_argument("--source-path", "-s", nargs="*", dest="paths", help="""Extra paths to (ro) mount into container for reading sources""") @@ -428,7 +430,7 @@ class CcCommand(SubCommand): if args.paths: for p in args.paths: cmd += ["-v", "%s:%s:ro,z" % (p, p)] - cmd += [args.image, "cc"] + cmd += [args.image, args.cc] cmd += argv return Docker().command("run", cmd, args.quiet) From patchwork Fri May 25 13:38:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920532 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="QpkQcwBT"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snZB4jQ2z9s0q for ; Fri, 25 May 2018 23:45:22 +1000 (AEST) Received: from localhost ([::1]:44072 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD20-0001sg-8b for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:45:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34399) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCw0-00051v-GV for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvz-0005y4-MO for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:08 -0400 Received: from mail-wr0-x232.google.com ([2a00:1450:400c:c0c::232]:40312) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvz-0005xb-Fw for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:07 -0400 Received: by mail-wr0-x232.google.com with SMTP id l41-v6so9331662wre.7 for ; Fri, 25 May 2018 06:39:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yx5ucHfklmdWD5NFIiC6j32FmmfKfpWkJIX7Slm13Jo=; b=QpkQcwBTtAeDh3F1/uoIAT2HcXu7ltHpYm0tmwI/HNLx2yIN+ewAz17+0Jj+XRd3jO /QYX+7WngB/kEaoc8cN9xK9QdYLHAK2qSbojGMKx3jyI9FUpqWUMcTWJt5/WDkJsLDA5 dZtRAo84C238oo9JXOhVtv7o758Uz68vmKGB8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yx5ucHfklmdWD5NFIiC6j32FmmfKfpWkJIX7Slm13Jo=; b=YFZQ26VDmpSlVcaUpXhXlQX95KfLwhF2azvbkawutWpUANslhZt5DkjwSi4o3klewp g1LcfTQ74PFfYE+6O5cWfHQ0gXgbctTKcZjBMEGaKZJP49vKys8qI4Df3JiMnXozxAM9 yRKtsZU7IHJwpqg8ymTL/9D8CjsanjsP0KsuG2H6sp1P33QwE/bAwYwPtKG/R95dlSEF b555D3Ua3GTaobMP6/+vdOrSWW06k6BXbFR1c8EyK0IhNebBq9LJTTKilOJoND5Zq0Qh UHPPn9LR5zZu/ghp48IHJdPU322eZwrDQZBITczPtQg1DjiTI2sl41u83a5pWgovHWcy o0ig== X-Gm-Message-State: ALKqPwcUzO91/wuoC65D5MlwyUepVihlUpiw1PgmO8nin0SzsZTHNWh/ LvPKZaFe/2SENpcPunbdiLrl/A== X-Google-Smtp-Source: AB8JxZpLMsg0ZzyTl9f9uLJV04ZSyOlM8mNNtT8lZjBwKG4xAwoNBhwrbDBzLb1GCIMw4Z/frGSOMA== X-Received: by 2002:adf:f688:: with SMTP id v8-v6mr2065039wrp.74.1527255546393; Fri, 25 May 2018 06:39:06 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id b66-v6sm10370838wma.48.2018.05.25.06.38.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:59 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 110A13E07B9; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:12 +0100 Message-Id: <20180525133851.27161-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::232 Subject: [Qemu-devel] [PATCH v5 10/49] docker: allow "cc" command to run in user context X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/docker/docker.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/docker/docker.py b/tests/docker/docker.py index 59bce9f19a..37bfa98005 100755 --- a/tests/docker/docker.py +++ b/tests/docker/docker.py @@ -417,6 +417,8 @@ class CcCommand(SubCommand): help="The docker image in which to run cc") parser.add_argument("--cc", default="cc", help="The compiler executable to call") + parser.add_argument("--user", + help="The user-id to run under") parser.add_argument("--source-path", "-s", nargs="*", dest="paths", help="""Extra paths to (ro) mount into container for reading sources""") @@ -430,6 +432,8 @@ class CcCommand(SubCommand): if args.paths: for p in args.paths: cmd += ["-v", "%s:%s:ro,z" % (p, p)] + if args.user: + cmd += ["-u", args.user] cmd += [args.image, args.cc] cmd += argv return Docker().command("run", cmd, args.quiet) From patchwork Fri May 25 13:38:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920528 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="PqAKSKiM"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snVz4QLsz9s0q for ; Fri, 25 May 2018 23:42:35 +1000 (AEST) Received: from localhost ([::1]:44059 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCzJ-0007h2-6K for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:42:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34382) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCvz-00051G-Qb for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvy-0005xQ-Lc for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:07 -0400 Received: from mail-wr0-x22e.google.com ([2a00:1450:400c:c0c::22e]:45991) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvy-0005xD-Ex for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:06 -0400 Received: by mail-wr0-x22e.google.com with SMTP id w3-v6so9301712wrl.12 for ; Fri, 25 May 2018 06:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zMjGgwUvghL/iSdazcr0kbCiGKNleebXjXP7mhSEZfg=; b=PqAKSKiM86z1S0PtiucIZp6tcWBQ6TIdbjZ7jj1uzCWc/B5dSRwH7wZBD7HJyrKsU5 NJw0g7zEhzKusX5ka1LOWa00bE3nHKcn1fuAH9Hjo+Z0TNhGJYUI87p+iJAVcOQ5jssD he+WG1mx/TFltMi1mU9yjw08usYWOkzlZZVWQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zMjGgwUvghL/iSdazcr0kbCiGKNleebXjXP7mhSEZfg=; b=GfB9CMhkdgCcH0RiDadA7aZ0XFb357t3zp5hpq5mhDlkm96inutUDg9mHvMGODQ4zu WXL+ENqgNoHrLolyEMJO1Ry/34ISM/HtQwolIzHGWrF6jFab5DB3+LJAy0TDnklWcaSW /Q60cZ38LOgd0oSIDRSVAjRtIlWkxuBENURxj7D4NZsPJ0SFdOG3H5DfMpH3VgYbO0L+ YB/D1hGR8LHrTYzb3wFkuHbDJ1xEaZUm2RoORpACVKFYlowClFPsCqJq9a4Mb/Vht9jf M/Zoogd9kfgtbDqb6WJpqg8ABeZL7wVD4ex55Ip8oR4XBw8H/YQ3FnebYW3UVJ0BZECE kAAA== X-Gm-Message-State: ALKqPwe6su619EYuJY/QbaopVCXzCWZr+xyAIyBx2C79OL5Yvc4Dg8Eu ucZA+dRA4Q61WQbXzvzGbIk4DA== X-Google-Smtp-Source: AB8JxZrl7Gc7ZHlPjXs31CgJDiO+NpvxhORJR0pRtMgz0XUbGhlYF0kIalxctYm0C4R5Not4M6h8vg== X-Received: by 2002:adf:f801:: with SMTP id s1-v6mr2429208wrp.63.1527255545332; Fri, 25 May 2018 06:39:05 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id v196-v6sm6897811wmf.36.2018.05.25.06.38.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:59 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 247E23E07C2; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:13 +0100 Message-Id: <20180525133851.27161-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22e Subject: [Qemu-devel] [PATCH v5 11/49] docker: Makefile.include introduce DOCKER_SCRIPT X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Define this in one place to make it easy to re-use. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé --- tests/docker/Makefile.include | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index ef1a3e62eb..b56386f49e 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -14,6 +14,8 @@ DOCKER_TESTS := $(notdir $(shell \ DOCKER_TOOLS := travis +DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py + TESTS ?= % IMAGES ?= % @@ -37,7 +39,7 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker echo WARNING: EXECUTABLE is not set, debootstrap may fail. 2>&1 ; \ fi $(call quiet-command,\ - $(SRC_PATH)/tests/docker/docker.py build qemu:$* $< \ + $(DOCKER_SCRIPT) build qemu:$* $< \ $(if $V,,--quiet) $(if $(NOCACHE),--no-cache) \ $(if $(NOUSER),,--add-current-user) \ $(if $(EXTRA_FILES),--extra-files $(EXTRA_FILES))\ @@ -129,11 +131,11 @@ docker-run: docker-qemu-src fi $(if $(EXECUTABLE), \ $(call quiet-command, \ - $(SRC_PATH)/tests/docker/docker.py update \ + $(DOCKER_SCRIPT) update \ $(IMAGE) $(EXECUTABLE), \ " COPYING $(EXECUTABLE) to $(IMAGE)")) $(call quiet-command, \ - $(SRC_PATH)/tests/docker/docker.py run \ + $(DOCKER_SCRIPT) run \ $(if $(NOUSER),,-u $(shell id -u)) \ --security-opt seccomp=unconfined \ $(if $V,,--rm) \ @@ -163,4 +165,4 @@ docker-run-%: @$(MAKE) docker-run TEST=$(CMD) IMAGE=qemu:$(IMAGE) docker-clean: - $(call quiet-command, $(SRC_PATH)/tests/docker/docker.py clean) + $(call quiet-command, $(DOCKER_SCRIPT) clean) From patchwork Fri May 25 13:38:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920531 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="OEa153jy"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snZ76648z9s0q for ; Fri, 25 May 2018 23:45:19 +1000 (AEST) Received: from localhost ([::1]:44070 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1x-0001ox-Fy for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:45:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCw3-00055D-Ah for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCvw-0005wa-Cj for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:11 -0400 Received: from mail-wr0-x22b.google.com ([2a00:1450:400c:c0c::22b]:42084) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCvw-0005w7-2g for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:04 -0400 Received: by mail-wr0-x22b.google.com with SMTP id w10-v6so9318892wrk.9 for ; Fri, 25 May 2018 06:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4nUpQEpC3tiEkHSNS84ghxsO5dAKxnexOHe1qIQyvxM=; b=OEa153jyBOwGKnzA8eGAr1cOrzTarHUjrX2KqQVecvsB/yFk/Sa3unRnqhltR6y15k X5Quai5j952Ogwu1lBe95GhUBtcReV76QJTVI+Ps1TdWujvvUgJFA5zMdYAO/vFVGGtb v7XclzYxC4EhBlDUUGe0fTK79NeXaEv0jNTRc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4nUpQEpC3tiEkHSNS84ghxsO5dAKxnexOHe1qIQyvxM=; b=N+hXsN8dhslzpQz1CGSvlIqMsQOLa8JCZcc9/WLwFmU/1Qw4BzqcfV/nGP1kalFBDh r6dvJF8Wb5dxG5AP+ReJtZ3jijYBRI+EB7uQG2H6BOU99KOlz8ITCVdVFt+LV43wdtUC DaLi+y7J3/7yRfdKGO3+ylu4L5U8q49L8pKEsrCZRqLHaU4ZcPatnTjG9bLgxiyVW7Pj 1vifRNqp7j1QekNXeEfngYS7ouxkpom4YaJ3oPHZYs8iunwLSSJy/qfE2DvF2z7yPPza /oHnhjLdNATmlLXOoIqo3nZvUG0REOmI6hU7QEP6kL4OF+q27DuKUjT4yMeFOrqjGAA8 h5PA== X-Gm-Message-State: ALKqPwdprpyDGTOSZNIMG2WtvbRXZh+b0QErucyeqGtWMVTmGxYTdSph aqnzyJr8qD2RGEiE6RzPWSC3aQ== X-Google-Smtp-Source: AB8JxZpTZ/725+g3qrfbjMHpCaHVj39lOvNdYxfJckTcVes1B87cK70UGtL9HReYHnxXdff/bZJZug== X-Received: by 2002:adf:c590:: with SMTP id m16-v6mr2112924wrg.151.1527255542826; Fri, 25 May 2018 06:39:02 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 67-v6sm10222640wmw.32.2018.05.25.06.38.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:38:59 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3DB7A3E07D1; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:14 +0100 Message-Id: <20180525133851.27161-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22b Subject: [Qemu-devel] [PATCH v5 12/49] tests/tcg: move architecture independent tests into subdir X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We will want to build these for all supported guest architectures so lets move them all into one place. We also drop test_path at this point because it needs qemu utils and glib bits which is hard to support for cross compiling. Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth Reviewed-by: Richard Henderson --- v2 - move VPATH and TESTs setup into multiarch/Makefile.target - remove moved bits from tests/tcg/Makefile v3 - use LDFLAGS+= for testthread linking v4 - make myself MAINTAINER for tests/tcg/multiarch v5 - split test-mmap into run-test-mmap and run-test-mmap-% --- MAINTAINERS | 4 + tests/tcg/Makefile | 31 ----- tests/tcg/README | 10 +- tests/tcg/multiarch/Makefile.target | 36 ++++++ tests/tcg/multiarch/README | 1 + tests/tcg/{ => multiarch}/linux-test.c | 0 tests/tcg/{ => multiarch}/sha1.c | 0 tests/tcg/{ => multiarch}/test-mmap.c | 0 tests/tcg/{ => multiarch}/testthread.c | 0 tests/tcg/test_path.c | 157 ------------------------- 10 files changed, 45 insertions(+), 194 deletions(-) create mode 100644 tests/tcg/multiarch/Makefile.target create mode 100644 tests/tcg/multiarch/README rename tests/tcg/{ => multiarch}/linux-test.c (100%) rename tests/tcg/{ => multiarch}/sha1.c (100%) rename tests/tcg/{ => multiarch}/test-mmap.c (100%) rename tests/tcg/{ => multiarch}/testthread.c (100%) delete mode 100644 tests/tcg/test_path.c diff --git a/MAINTAINERS b/MAINTAINERS index bf482fd4e9..3c7884f703 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -303,6 +303,10 @@ F: target/tricore/ F: hw/tricore/ F: include/hw/tricore/ +Multiarch Linux User Tests +M: Alex Bennée +F: tests/tcg/multiarch/ + Guest CPU Cores (KVM): ---------------------- diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile index 89e3342f3d..e12395117a 100644 --- a/tests/tcg/Makefile +++ b/tests/tcg/Makefile @@ -18,12 +18,9 @@ LDFLAGS= # also, pi_10.com runs indefinitely I386_TESTS=hello-i386 \ - linux-test \ - testthread \ sha1-i386 \ test-i386 \ test-i386-fprem \ - test-mmap \ # runcom # native i386 compilers sometimes are not biarch. assume cross-compilers are @@ -47,8 +44,6 @@ run-%: % -$(QEMU) ./$* run-hello-i386: hello-i386 -run-linux-test: linux-test -run-testthread: testthread run-sha1-i386: sha1-i386 run-test-i386: test-i386 @@ -66,11 +61,6 @@ run-test-x86_64: test-x86_64 -$(QEMU_X86_64) test-x86_64 > test-x86_64.out @if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test OK"; fi -run-test-mmap: test-mmap - -$(QEMU) ./test-mmap - -$(QEMU) -p 8192 ./test-mmap 8192 - -$(QEMU) -p 16384 ./test-mmap 16384 - -$(QEMU) -p 32768 ./test-mmap 32768 run-runcom: runcom -$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com @@ -80,17 +70,10 @@ run-test_path: test_path # rules to compile tests -test_path: test_path.o - -test_path.o: test_path.c - hello-i386: hello-i386.c $(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $< strip $@ -testthread: testthread.c - $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread - # i386/x86_64 emulation test (test various opcodes) */ test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S \ test-i386.h test-i386-shift.h test-i386-muldiv.h @@ -104,28 +87,14 @@ test-x86_64: test-i386.c \ test-i386.h test-i386-shift.h test-i386-muldiv.h $(CC_X86_64) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ $( test-mmap.out, "TEST", \ + "$< (default) on $(TARGET_NAME)") + +# additional page sizes (defined by each architecture adding to EXTRA_RUNS) +run-test-mmap-%: test-mmap + $(call quiet-command, $(QEMU) -p $* $< > test-mmap-$*.out, "TEST", \ + "$< ($* byte pages) on $(TARGET_NAME)") diff --git a/tests/tcg/multiarch/README b/tests/tcg/multiarch/README new file mode 100644 index 0000000000..522c9d2ea3 --- /dev/null +++ b/tests/tcg/multiarch/README @@ -0,0 +1 @@ +Multi-architecture linux-user tests diff --git a/tests/tcg/linux-test.c b/tests/tcg/multiarch/linux-test.c similarity index 100% rename from tests/tcg/linux-test.c rename to tests/tcg/multiarch/linux-test.c diff --git a/tests/tcg/sha1.c b/tests/tcg/multiarch/sha1.c similarity index 100% rename from tests/tcg/sha1.c rename to tests/tcg/multiarch/sha1.c diff --git a/tests/tcg/test-mmap.c b/tests/tcg/multiarch/test-mmap.c similarity index 100% rename from tests/tcg/test-mmap.c rename to tests/tcg/multiarch/test-mmap.c diff --git a/tests/tcg/testthread.c b/tests/tcg/multiarch/testthread.c similarity index 100% rename from tests/tcg/testthread.c rename to tests/tcg/multiarch/testthread.c diff --git a/tests/tcg/test_path.c b/tests/tcg/test_path.c deleted file mode 100644 index 1c29bce263..0000000000 --- a/tests/tcg/test_path.c +++ /dev/null @@ -1,157 +0,0 @@ -/* Test path override code */ -#include "config-host.h" -#include "util/cutils.c" -#include "util/hexdump.c" -#include "util/iov.c" -#include "util/path.c" -#include "util/qemu-timer-common.c" -#include -#include -#include - -void qemu_log(const char *fmt, ...); - -/* Any log message kills the test. */ -void qemu_log(const char *fmt, ...) -{ - va_list ap; - - fprintf(stderr, "FATAL: "); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - exit(1); -} - -#define NO_CHANGE(_path) \ - do { \ - if (strcmp(path(_path), _path) != 0) return __LINE__; \ - } while(0) - -#define CHANGE_TO(_path, _newpath) \ - do { \ - if (strcmp(path(_path), _newpath) != 0) return __LINE__; \ - } while(0) - -static void cleanup(void) -{ - unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE"); - unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE2"); - unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE3"); - unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE4"); - unlink("/tmp/qemu-test_path/DIR1/DIR2/FILE5"); - rmdir("/tmp/qemu-test_path/DIR1/DIR2"); - rmdir("/tmp/qemu-test_path/DIR1/DIR3"); - rmdir("/tmp/qemu-test_path/DIR1"); - rmdir("/tmp/qemu-test_path"); -} - -static unsigned int do_test(void) -{ - if (mkdir("/tmp/qemu-test_path", 0700) != 0) - return __LINE__; - - if (mkdir("/tmp/qemu-test_path/DIR1", 0700) != 0) - return __LINE__; - - if (mkdir("/tmp/qemu-test_path/DIR1/DIR2", 0700) != 0) - return __LINE__; - - if (mkdir("/tmp/qemu-test_path/DIR1/DIR3", 0700) != 0) - return __LINE__; - - if (close(creat("/tmp/qemu-test_path/DIR1/DIR2/FILE", 0600)) != 0) - return __LINE__; - - if (close(creat("/tmp/qemu-test_path/DIR1/DIR2/FILE2", 0600)) != 0) - return __LINE__; - - if (close(creat("/tmp/qemu-test_path/DIR1/DIR2/FILE3", 0600)) != 0) - return __LINE__; - - if (close(creat("/tmp/qemu-test_path/DIR1/DIR2/FILE4", 0600)) != 0) - return __LINE__; - - if (close(creat("/tmp/qemu-test_path/DIR1/DIR2/FILE5", 0600)) != 0) - return __LINE__; - - init_paths("/tmp/qemu-test_path"); - - NO_CHANGE("/tmp"); - NO_CHANGE("/tmp/"); - NO_CHANGE("/tmp/qemu-test_path"); - NO_CHANGE("/tmp/qemu-test_path/"); - NO_CHANGE("/tmp/qemu-test_path/D"); - NO_CHANGE("/tmp/qemu-test_path/DI"); - NO_CHANGE("/tmp/qemu-test_path/DIR"); - NO_CHANGE("/tmp/qemu-test_path/DIR1"); - NO_CHANGE("/tmp/qemu-test_path/DIR1/"); - - NO_CHANGE("/D"); - NO_CHANGE("/DI"); - NO_CHANGE("/DIR"); - NO_CHANGE("/DIR2"); - NO_CHANGE("/DIR1."); - - CHANGE_TO("/DIR1", "/tmp/qemu-test_path/DIR1"); - CHANGE_TO("/DIR1/", "/tmp/qemu-test_path/DIR1"); - - NO_CHANGE("/DIR1/D"); - NO_CHANGE("/DIR1/DI"); - NO_CHANGE("/DIR1/DIR"); - NO_CHANGE("/DIR1/DIR1"); - - CHANGE_TO("/DIR1/DIR2", "/tmp/qemu-test_path/DIR1/DIR2"); - CHANGE_TO("/DIR1/DIR2/", "/tmp/qemu-test_path/DIR1/DIR2"); - - CHANGE_TO("/DIR1/DIR3", "/tmp/qemu-test_path/DIR1/DIR3"); - CHANGE_TO("/DIR1/DIR3/", "/tmp/qemu-test_path/DIR1/DIR3"); - - NO_CHANGE("/DIR1/DIR2/F"); - NO_CHANGE("/DIR1/DIR2/FI"); - NO_CHANGE("/DIR1/DIR2/FIL"); - NO_CHANGE("/DIR1/DIR2/FIL."); - - CHANGE_TO("/DIR1/DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/DIR1/DIR2/FILE2", "/tmp/qemu-test_path/DIR1/DIR2/FILE2"); - CHANGE_TO("/DIR1/DIR2/FILE3", "/tmp/qemu-test_path/DIR1/DIR2/FILE3"); - CHANGE_TO("/DIR1/DIR2/FILE4", "/tmp/qemu-test_path/DIR1/DIR2/FILE4"); - CHANGE_TO("/DIR1/DIR2/FILE5", "/tmp/qemu-test_path/DIR1/DIR2/FILE5"); - - NO_CHANGE("/DIR1/DIR2/FILE6"); - NO_CHANGE("/DIR1/DIR2/FILE/X"); - - CHANGE_TO("/DIR1/../DIR1", "/tmp/qemu-test_path/DIR1"); - CHANGE_TO("/DIR1/../DIR1/", "/tmp/qemu-test_path/DIR1"); - CHANGE_TO("/../DIR1", "/tmp/qemu-test_path/DIR1"); - CHANGE_TO("/../DIR1/", "/tmp/qemu-test_path/DIR1"); - CHANGE_TO("/DIR1/DIR2/../DIR2", "/tmp/qemu-test_path/DIR1/DIR2"); - CHANGE_TO("/DIR1/DIR2/../DIR2/../../DIR1/DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/DIR1/DIR2/../DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - - NO_CHANGE("/DIR1/DIR2/../DIR1"); - NO_CHANGE("/DIR1/DIR2/../FILE"); - - CHANGE_TO("/./DIR1/DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/././DIR1/DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/DIR1/./DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/DIR1/././DIR2/FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/DIR1/DIR2/./FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/DIR1/DIR2/././FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - CHANGE_TO("/./DIR1/./DIR2/./FILE", "/tmp/qemu-test_path/DIR1/DIR2/FILE"); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - - ret = do_test(); - cleanup(); - if (ret) { - fprintf(stderr, "test_path: failed on line %i\n", ret); - return 1; - } - return 0; -} From patchwork Fri May 25 13:38:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920537 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Y06tqyNA"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snjc005nz9s15 for ; Fri, 25 May 2018 23:51:46 +1000 (AEST) Received: from localhost ([::1]:44108 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD8B-000722-Fu for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:51:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1a-00023l-UC for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1X-0008Rn-Q0 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:54 -0400 Received: from mail-wr0-x22f.google.com ([2a00:1450:400c:c0c::22f]:39231) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1X-0008Ra-Fc for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:51 -0400 Received: by mail-wr0-x22f.google.com with SMTP id w18-v6so9357685wrn.6 for ; Fri, 25 May 2018 06:44:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WnwOe6OFO9ZheDJkVo5K/0K4122AtXWxiX6YZgaZ8+k=; b=Y06tqyNAnvB4rgoqsda6JNUk1fL7oMvIedD0WAJz0NChw5Oms+6Mcdw1b8ssq73mev 3cQJxNYXrGlX+/CQ94yySCe4FzqsF5h82qsTssT7kH3JRZsWVDVwkkrrogTdpyEPjKZ8 h/HMdBCIteXo6R+q1pL/5epSNaBv7v6mZjPP4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WnwOe6OFO9ZheDJkVo5K/0K4122AtXWxiX6YZgaZ8+k=; b=q/GH4mbtYBsWLZF7BkVt2plM3fZmwmxufgQHE8n97T64fIldPAESxTc7njLsrCUNKP OoLkg3ZLPynRDCTTVb/wJQ8qrFUz8nezcRT4yN5JvsOXe5l/KTuXlxdU6Bxstb2zt3fC BeJhAIHWEPBSREsVsalkE+VQB8Hd9dvMkpHwC/UnBsoqyo2Y8W+Nupfa0umwZv2+b5tG UczHpUfSLbsGruPTTOAWRdllQcSChaiq3zlupauNUcr8LcLb7/p7jnUCy6tGsK93njie hZRIY1r7v5coPvm2ye6M2gHJzemFTm2PyxfZCYZxXXAEUPmxKdjUqNujSvC9Fwvgb43w E94A== X-Gm-Message-State: ALKqPwfunNw4K38d2Ui2TX9imV5w8qBoJazFxQkLZlapOPYAFbP5y19M HekahYJt3oFYd7+2pfte5J+UQA== X-Google-Smtp-Source: AB8JxZqEN6zQsuDktRHJEIYl6u2UAWG1Vh19DRhkXS23HbWBI0QJzvtUFktnLyW9L3vY8ExCvIC9qw== X-Received: by 2002:adf:ea0f:: with SMTP id q15-v6mr1689724wrm.9.1527255890277; Fri, 25 May 2018 06:44:50 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id m69-v6sm10765545wmd.47.2018.05.25.06.44.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 506AB3E08B3; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:15 +0100 Message-Id: <20180525133851.27161-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22f Subject: [Qemu-devel] [PATCH v5 13/49] tests/tcg/multiarch: Build fix for linux-test X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Fam Zheng To keep the compiler happy, and to fit in our buildsys flags: - Make local functions "static" - #ifdef out unused functions - drop cutils/osdep dependencies Signed-off-by: Fam Zheng [AJB: drop cutils/osdep dependencies] Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- tests/tcg/multiarch/linux-test.c | 68 ++++++++++---------------------- 1 file changed, 21 insertions(+), 47 deletions(-) diff --git a/tests/tcg/multiarch/linux-test.c b/tests/tcg/multiarch/linux-test.c index 5070d31446..4457bd04ba 100644 --- a/tests/tcg/multiarch/linux-test.c +++ b/tests/tcg/multiarch/linux-test.c @@ -16,7 +16,6 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ -#define _GNU_SOURCE #include #include #include @@ -31,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -39,13 +39,12 @@ #include #include #include -#include "qemu/cutils.h" #define TESTPATH "/tmp/linux-test.tmp" #define TESTPORT 7654 #define STACK_SIZE 16384 -void error1(const char *filename, int line, const char *fmt, ...) +static void error1(const char *filename, int line, const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -56,7 +55,7 @@ void error1(const char *filename, int line, const char *fmt, ...) exit(1); } -int __chk_error(const char *filename, int line, int ret) +static int __chk_error(const char *filename, int line, int ret) { if (ret < 0) { error1(filename, line, "%m (ret=%d, errno=%d)", @@ -73,7 +72,7 @@ int __chk_error(const char *filename, int line, int ret) #define FILE_BUF_SIZE 300 -void test_file(void) +static void test_file(void) { int fd, i, len, ret; uint8_t buf[FILE_BUF_SIZE]; @@ -210,7 +209,7 @@ void test_file(void) chk_error(rmdir(TESTPATH)); } -void test_fork(void) +static void test_fork(void) { int pid, status; @@ -224,7 +223,7 @@ void test_fork(void) error("waitpid status=0x%x", status); } -void test_time(void) +static void test_time(void) { struct timeval tv, tv2; struct timespec ts, rem; @@ -251,34 +250,7 @@ void test_time(void) error("getrusage"); } -void pstrcpy(char *buf, int buf_size, const char *str) -{ - int c; - char *q = buf; - - if (buf_size <= 0) - return; - - for(;;) { - c = *str++; - if (c == 0 || q >= buf + buf_size - 1) - break; - *q++ = c; - } - *q = '\0'; -} - -/* strcat and truncate. */ -char *pstrcat(char *buf, int buf_size, const char *s) -{ - int len; - len = strlen(buf); - if (len < buf_size) - pstrcpy(buf + len, buf_size - len, s); - return buf; -} - -int server_socket(void) +static int server_socket(void) { int val, fd; struct sockaddr_in sockaddr; @@ -298,7 +270,7 @@ int server_socket(void) } -int client_socket(void) +static int client_socket(void) { int fd; struct sockaddr_in sockaddr; @@ -312,9 +284,9 @@ int client_socket(void) return fd; } -const char socket_msg[] = "hello socket\n"; +static const char socket_msg[] = "hello socket\n"; -void test_socket(void) +static void test_socket(void) { int server_fd, client_fd, fd, pid, ret, val; struct sockaddr_in sockaddr; @@ -348,9 +320,10 @@ void test_socket(void) chk_error(close(server_fd)); } +#if 0 #define WCOUNT_MAX 512 -void test_pipe(void) +static void test_pipe(void) { fd_set rfds, wfds; int fds[2], fd_max, ret; @@ -391,10 +364,10 @@ void test_pipe(void) chk_error(close(fds[1])); } -int thread1_res; -int thread2_res; +static int thread1_res; +static int thread2_res; -int thread1_func(void *arg) +static int thread1_func(void *arg) { int i; for(i=0;i<5;i++) { @@ -404,7 +377,7 @@ int thread1_func(void *arg) return 0; } -int thread2_func(void *arg) +static int thread2_func(void *arg) { int i; for(i=0;i<6;i++) { @@ -435,27 +408,28 @@ void test_clone(void) thread2_res != 6) error("clone"); } +#endif /***********************************/ volatile int alarm_count; jmp_buf jmp_env; -void sig_alarm(int sig) +static void sig_alarm(int sig) { if (sig != SIGALRM) error("signal"); alarm_count++; } -void sig_segv(int sig, siginfo_t *info, void *puc) +static void sig_segv(int sig, siginfo_t *info, void *puc) { if (sig != SIGSEGV) error("signal"); longjmp(jmp_env, 1); } -void test_signal(void) +static void test_signal(void) { struct sigaction act; struct itimerval it, oit; @@ -510,7 +484,7 @@ void test_signal(void) #define SHM_SIZE 32768 -void test_shm(void) +static void test_shm(void) { void *ptr; int shmid; From patchwork Fri May 25 13:38:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920550 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="AXaAiw2E"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snq3026sz9s0q for ; Fri, 25 May 2018 23:56:31 +1000 (AEST) Received: from localhost ([::1]:44139 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDCm-0002di-KK for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:56:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35548) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1b-00023s-1J for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1Z-0008SI-Ik for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:55 -0400 Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:50759) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1Z-0008S5-91 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:53 -0400 Received: by mail-wm0-x22a.google.com with SMTP id t11-v6so14616878wmt.0 for ; Fri, 25 May 2018 06:44:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1KjlQhzDqIP23Us+7ZOKNHKx7NRYOZPWBkrgX5jLsjE=; b=AXaAiw2EbjdgLmZtdgW1MvJ+/XTu9EWxJYpBUVY3HH8hRcy3dyWZFZBlqPFPDn84h9 kvQOaeKiwJLU9bbgngj3741uQrOJ4m9kXDZ5pJKeej7GR2d3TDvioHKM/dEFwar1Mll/ KXYMTzOdEPLPtEXb7PNdUS1u/v9kgm4PiFfLA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1KjlQhzDqIP23Us+7ZOKNHKx7NRYOZPWBkrgX5jLsjE=; b=OqjANDLVjRCrI0Wkz3BnT68TkrWJCxeLU/u+7FxEN8proEZiB1UKIInt7dmoGkLO8o cYYWgOROYmv/oluID/MLIv/4YNilek5afEj73wt+FGzFMq0o54E3sLp2ryyeqxa2QfbW 4WCPmzyIXXHmD5piFNahLgwzFqRzkfnyl1zIPXDvaWrjnkW7G1hS9mmPBxgO+WJTJvrF Nh3vaFMDKd3oxnEpKiLoN/6fyMQqbf9soay3nr2rTx2ph30XbHCDvmESbIvWGR/U1ssK f2auPhNXCBtg48562KUpZZEoz3VtLfnKm8Zj7qnZQqnLHehd5XB0n153mAAmyHQjTW3h OprQ== X-Gm-Message-State: ALKqPweuk4CDNFEAeEn0gMWFAnbk+8CTHE3hc8t6FZV9qWF6z9/oDQJU C6r0Mt3KMy55D2bqnqvLnNF9QQ== X-Google-Smtp-Source: ADUXVKJcjOI3vh7Z5JIhJ0D+kgtEkE/J7vpxAdar/ipakwepVis3fksbykpaxvPazgl39sKJti8gIQ== X-Received: by 2002:a1c:1047:: with SMTP id 68-v6mr1823956wmq.132.1527255892060; Fri, 25 May 2018 06:44:52 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 5-v6sm12364088wre.41.2018.05.25.06.44.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 634213E08BB; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:16 +0100 Message-Id: <20180525133851.27161-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::22a Subject: [Qemu-devel] [PATCH v5 14/49] tests/tcg/multiarch: enable additional linux-test tests X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Un-comment the remaining tests. I removed the itimer value tests because I'm fairly sure a re-arming timer will always have a different value in it when you grab it. I've also fixed up the clone thread flags as QEMU will only allow a clone to use flags which match glibc. However the test is still racey so it remains disabled by default - it can be run by passing any additional parameters on the command line. Signed-off-by: Alex Bennée Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v3 - make clone flags match CLONE_THREAD_FLAGS v4 - disable test_clone for default case --- tests/tcg/multiarch/linux-test.c | 51 +++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/tests/tcg/multiarch/linux-test.c b/tests/tcg/multiarch/linux-test.c index 4457bd04ba..6f2c531474 100644 --- a/tests/tcg/multiarch/linux-test.c +++ b/tests/tcg/multiarch/linux-test.c @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ +#define _GNU_SOURCE #include #include #include @@ -58,8 +59,8 @@ static void error1(const char *filename, int line, const char *fmt, ...) static int __chk_error(const char *filename, int line, int ret) { if (ret < 0) { - error1(filename, line, "%m (ret=%d, errno=%d)", - ret, errno); + error1(filename, line, "%m (ret=%d, errno=%d/%s)", + ret, errno, strerror(errno)); } return ret; } @@ -216,6 +217,7 @@ static void test_fork(void) pid = chk_error(fork()); if (pid == 0) { /* child */ + sleep(2); exit(2); } chk_error(waitpid(pid, &status, 0)); @@ -320,7 +322,6 @@ static void test_socket(void) chk_error(close(server_fd)); } -#if 0 #define WCOUNT_MAX 512 static void test_pipe(void) @@ -355,7 +356,7 @@ static void test_pipe(void) } if (FD_ISSET(fds[1], &wfds)) { ch = 'a'; - chk_error(write(fds[0], &ch, 1)); + chk_error(write(fds[1], &ch, 1)); wcount++; } } @@ -387,28 +388,41 @@ static int thread2_func(void *arg) return 0; } -void test_clone(void) +static void wait_for_child(pid_t pid) +{ + int status; + chk_error(waitpid(pid, &status, 0)); +} + +/* For test_clone we must match the clone flags used by glibc, see + * CLONE_THREAD_FLAGS in the QEMU source code. + */ +static void test_clone(void) { uint8_t *stack1, *stack2; - int pid1, pid2, status1, status2; + pid_t pid1, pid2; stack1 = malloc(STACK_SIZE); pid1 = chk_error(clone(thread1_func, stack1 + STACK_SIZE, - CLONE_VM | CLONE_FS | CLONE_FILES | SIGCHLD, "hello1")); + CLONE_VM | CLONE_FS | CLONE_FILES | + CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM, + "hello1")); stack2 = malloc(STACK_SIZE); pid2 = chk_error(clone(thread2_func, stack2 + STACK_SIZE, - CLONE_VM | CLONE_FS | CLONE_FILES | SIGCHLD, "hello2")); + CLONE_VM | CLONE_FS | CLONE_FILES | + CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM, + "hello2")); - while (waitpid(pid1, &status1, 0) != pid1); + wait_for_child(pid1); free(stack1); - while (waitpid(pid2, &status2, 0) != pid2); + wait_for_child(pid2); free(stack2); + if (thread1_res != 5 || thread2_res != 6) error("clone"); } -#endif /***********************************/ @@ -449,12 +463,10 @@ static void test_signal(void) it.it_value.tv_usec = 10 * 1000; chk_error(setitimer(ITIMER_REAL, &it, NULL)); chk_error(getitimer(ITIMER_REAL, &oit)); - if (oit.it_value.tv_sec != it.it_value.tv_sec || - oit.it_value.tv_usec != it.it_value.tv_usec) - error("itimer"); while (alarm_count < 5) { usleep(10 * 1000); + getitimer(ITIMER_REAL, &oit); } it.it_interval.tv_sec = 0; @@ -463,9 +475,6 @@ static void test_signal(void) it.it_value.tv_usec = 0; memset(&oit, 0xff, sizeof(oit)); chk_error(setitimer(ITIMER_REAL, &it, &oit)); - if (oit.it_value.tv_sec != 0 || - oit.it_value.tv_usec != 10 * 1000) - error("setitimer"); /* SIGSEGV test */ act.sa_sigaction = sig_segv; @@ -503,10 +512,16 @@ static void test_shm(void) int main(int argc, char **argv) { test_file(); + test_pipe(); test_fork(); test_time(); test_socket(); - // test_clone(); + + if (argc > 1) { + printf("test_clone still considered buggy\n"); + test_clone(); + } + test_signal(); test_shm(); return 0; From patchwork Fri May 25 13:38:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920539 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="C5xafttB"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snk72JDQz9s0q for ; Fri, 25 May 2018 23:52:15 +1000 (AEST) Received: from localhost ([::1]:44115 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD8f-0007PS-0T for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:52:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1a-00023k-Tw for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1Y-0008S1-Ia for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:54 -0400 Received: from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]:35660) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1Y-0008Ri-8f for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:52 -0400 Received: by mail-wm0-x232.google.com with SMTP id o78-v6so14830485wmg.0 for ; Fri, 25 May 2018 06:44:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=skGRUA2XLmNtsowTQPOQY7gIyZp4Mjnan53YDVBoxic=; b=C5xafttBoQoeIo37E1cj9QDaeQ/uncZzcwZHqK8+bqvHprVmbsLqoXuZCkwHfpRaSz qRGLcEHFORCfEMIAl7gaYiV1b1A7L2MW7JbZeGGicv9c7sMcd+hApUQQ/1OT09snARWs rS9Q98kVjLlrepKSiXDO+ii7yrxxH7qOVJoIA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=skGRUA2XLmNtsowTQPOQY7gIyZp4Mjnan53YDVBoxic=; b=ZI1e7RV7XiuEPnvlIU2xn6Un3lxIYvyYhffLJcxO8NCRwslBIGkmDAYjNF3xCbcL59 lOUG6f2LR/yqGZVLAuzSQJ70AwXhJ3ySieDRMQvPCb8kpZHoRPmDq8KBqYHwXP/dujXq HzqsJ6iMj5B3miCJVz9LQpw76gGj8+qyqHxb6Qe2+O/QywciQ3oA/bh1goVW6ek/oNHB SKTfbfYI6kHT2ulEVYLbp8Z+S2mULIdq/dAEvT4Q2VOUlBfDUrDzE+cORYsWf1jzNT/v qTUHGYvFBqd9BruS85CqkuGg2Q/K+T9CYYx9GGb6IVRaUHq4yl6cs9Eh8tRFuoG6eLML mccQ== X-Gm-Message-State: ALKqPweOVXmaQxz7W8jfRas2S04eE3VsMavfYSOQuihjPnRQkh0qJte2 p2JgqAzymhZZm3toJHreaqPxEA== X-Google-Smtp-Source: ADUXVKIxj03U3T/zmHFuKurPWcEhTJ34eeoRZ2+3KFSHFQPZZA3KhXgLVbM77ZRDr7SEJKQ0Z2X/Hw== X-Received: by 2002:a1c:4843:: with SMTP id v64-v6mr1798395wma.159.1527255891077; Fri, 25 May 2018 06:44:51 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id y68-v6sm45498389wrb.91.2018.05.25.06.44.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 76D8D3E08BF; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:17 +0100 Message-Id: <20180525133851.27161-16-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::232 Subject: [Qemu-devel] [PATCH v5 15/49] tests/tcg/multiarch: move most output to stdout X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The default test run outputs to stdout so it can be re-directed. Errors are still reported to stderr. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v4 - remove space in fprintf () to keep checkpatch happy --- tests/tcg/multiarch/test-mmap.c | 40 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/tcg/multiarch/test-mmap.c b/tests/tcg/multiarch/test-mmap.c index cdefadfa4c..5c0afe6e49 100644 --- a/tests/tcg/multiarch/test-mmap.c +++ b/tests/tcg/multiarch/test-mmap.c @@ -36,7 +36,7 @@ do \ { \ if (!(x)) { \ - fprintf (stderr, "FAILED at %s:%d\n", __FILE__, __LINE__); \ + fprintf(stderr, "FAILED at %s:%d\n", __FILE__, __LINE__); \ exit (EXIT_FAILURE); \ } \ } while (0) @@ -57,7 +57,7 @@ void check_aligned_anonymous_unfixed_mmaps(void) uintptr_t p; int i; - fprintf (stderr, "%s", __func__); + fprintf(stdout, "%s", __func__); for (i = 0; i < 0x1fff; i++) { size_t len; @@ -106,7 +106,7 @@ void check_aligned_anonymous_unfixed_mmaps(void) munmap (p4, len); munmap (p5, len); } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_large_anonymous_unfixed_mmap(void) @@ -115,7 +115,7 @@ void check_large_anonymous_unfixed_mmap(void) uintptr_t p; size_t len; - fprintf (stderr, "%s", __func__); + fprintf(stdout, "%s", __func__); len = 0x02000000; p1 = mmap(NULL, len, PROT_READ, @@ -130,7 +130,7 @@ void check_large_anonymous_unfixed_mmap(void) /* Make sure we can read from the entire area. */ memcpy (dummybuf, p1, pagesize); munmap (p1, len); - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_aligned_anonymous_unfixed_colliding_mmaps(void) @@ -141,7 +141,7 @@ void check_aligned_anonymous_unfixed_colliding_mmaps(void) uintptr_t p; int i; - fprintf (stderr, "%s", __func__); + fprintf(stdout, "%s", __func__); for (i = 0; i < 0x2fff; i++) { int nlen; @@ -180,7 +180,7 @@ void check_aligned_anonymous_unfixed_colliding_mmaps(void) munmap (p2, pagesize); munmap (p3, nlen); } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_aligned_anonymous_fixed_mmaps(void) @@ -194,7 +194,7 @@ void check_aligned_anonymous_fixed_mmaps(void) addr = mmap(NULL, pagesize * 40, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - fprintf (stderr, "%s addr=%p", __func__, addr); + fprintf(stdout, "%s addr=%p", __func__, addr); fail_unless (addr != MAP_FAILED); for (i = 0; i < 40; i++) @@ -212,7 +212,7 @@ void check_aligned_anonymous_fixed_mmaps(void) munmap (p1, pagesize); addr += pagesize; } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_aligned_anonymous_fixed_mmaps_collide_with_host(void) @@ -225,8 +225,8 @@ void check_aligned_anonymous_fixed_mmaps_collide_with_host(void) /* Find a suitable address to start with. Right were the x86 hosts stack is. */ addr = ((void *)0x80000000); - fprintf (stderr, "%s addr=%p", __func__, addr); - fprintf (stderr, "FIXME: QEMU fails to track pages used by the host."); + fprintf(stdout, "%s addr=%p", __func__, addr); + fprintf(stdout, "FIXME: QEMU fails to track pages used by the host."); for (i = 0; i < 20; i++) { @@ -243,7 +243,7 @@ void check_aligned_anonymous_fixed_mmaps_collide_with_host(void) munmap (p1, pagesize); addr += pagesize; } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_file_unfixed_mmaps(void) @@ -252,7 +252,7 @@ void check_file_unfixed_mmaps(void) uintptr_t p; int i; - fprintf (stderr, "%s", __func__); + fprintf(stdout, "%s", __func__); for (i = 0; i < 0x10; i++) { size_t len; @@ -294,7 +294,7 @@ void check_file_unfixed_mmaps(void) munmap (p2, len); munmap (p3, len); } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_file_unfixed_eof_mmaps(void) @@ -304,7 +304,7 @@ void check_file_unfixed_eof_mmaps(void) uintptr_t p; int i; - fprintf (stderr, "%s", __func__); + fprintf(stdout, "%s", __func__); for (i = 0; i < 0x10; i++) { p1 = mmap(NULL, pagesize, PROT_READ, @@ -327,7 +327,7 @@ void check_file_unfixed_eof_mmaps(void) fail_unless (cp[pagesize - 4] == 0); munmap (p1, pagesize); } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_file_fixed_eof_mmaps(void) @@ -343,7 +343,7 @@ void check_file_fixed_eof_mmaps(void) MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - fprintf (stderr, "%s addr=%p", __func__, (void *)addr); + fprintf(stdout, "%s addr=%p", __func__, (void *)addr); fail_unless (addr != MAP_FAILED); for (i = 0; i < 0x10; i++) @@ -371,7 +371,7 @@ void check_file_fixed_eof_mmaps(void) munmap (p1, pagesize); addr += pagesize; } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void check_file_fixed_mmaps(void) @@ -384,7 +384,7 @@ void check_file_fixed_mmaps(void) addr = mmap(NULL, pagesize * 40 * 4, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - fprintf (stderr, "%s addr=%p", __func__, (void *)addr); + fprintf(stdout, "%s addr=%p", __func__, (void *)addr); fail_unless (addr != MAP_FAILED); for (i = 0; i < 40; i++) @@ -426,7 +426,7 @@ void check_file_fixed_mmaps(void) munmap (p4, pagesize); addr += pagesize * 4; } - fprintf (stderr, " passed\n"); + fprintf(stdout, " passed\n"); } void checked_write(int fd, const void *buf, size_t count) From patchwork Fri May 25 13:38:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920536 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="ORtvWfnz"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snf42fDXz9s0q for ; Fri, 25 May 2018 23:48:44 +1000 (AEST) Received: from localhost ([::1]:44094 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD5F-0004NG-T1 for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:48:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34420) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMCw5-00057S-IS for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMCw1-0005yu-1S for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:13 -0400 Received: from mail-wr0-x233.google.com ([2a00:1450:400c:c0c::233]:42092) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMCw0-0005yS-O5 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:39:08 -0400 Received: by mail-wr0-x233.google.com with SMTP id w10-v6so9319306wrk.9 for ; Fri, 25 May 2018 06:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o/Tn/ZhTVhwlQIyeN71c51M1cJ00mO01ZM5VQpSKQT0=; b=ORtvWfnzNAzu3eeHHdvX6JqdoHtBKpkooMfel2Ty1ZlLlWRrvy1v2mymPGfkbZYZgp wZiijNeSOWm0bd8G2yWPRzlDdMhFK8J6Q9GAWbu46y+6ZtRsGJr1NOU0XjIe8XfGkYVS hqudia7bjN8L3sd6uptRX4qooZJisppJBvDjM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o/Tn/ZhTVhwlQIyeN71c51M1cJ00mO01ZM5VQpSKQT0=; b=hONyAIVm/feqAn8CLktND9DBW5w7kPRltoymCF5FKf/PejZqHhO+4LauqndsvSj5ka w8nGRY32CkrmvijLsMRsWNOX2YYkaknblKGjAOn/eLXDHdfN9zgCd4cLMDjVzW5DavaG /iqPdYAVXiYGME92hZ31gTcUSMEXlUte5j4SveOKS2DhXJlOiQwaYimeuFtyq2rL8Gc9 a/7yHLkKB0pvGkngAILaoAyYf/1KEm7a2UaU7922tVLVF/r1QP51UNPrdF3Y+IYPsfgC A7GOT13bftUNc222M7xhQCewiVt4+jL1ld/HN3O1eQzvMou0r/Lcfc+c1dkAAIZ9Hwwg TI4Q== X-Gm-Message-State: ALKqPwf//+2wvrIh+SQ4ylr98IbTmQ1mI4hh9bbDCe5HiEvMnJ9w93EK lgtXGDi5FX11aVGrl2BFnA8Ejg== X-Google-Smtp-Source: AB8JxZr1Q9QtkRZnahhroPrPXdPFTuu8lRw3UaJN3DxGpXoVhLevqpa9VSe2w1Ob/FIl8Ro7uyaPEw== X-Received: by 2002:adf:e104:: with SMTP id d4-v6mr2056603wri.271.1527255547564; Fri, 25 May 2018 06:39:07 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id e7-v6sm25631347wrn.88.2018.05.25.06.38.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:39:01 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 8DA663E08E4; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:18 +0100 Message-Id: <20180525133851.27161-17-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::233 Subject: [Qemu-devel] [PATCH v5 16/49] tests/tcg: move i386 specific tests into subdir X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" These only need to be built for i386 guests. This includes a stub tests/tcg/i386/Makfile.target which absorbs some of what was in tests/tcg/Makefile. Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v2 - move VPATH and TESTs setup into i386/Makefile.target - set CFLAGS+=-m32 for cross building v4 - update MAINATINERS --- MAINTAINERS | 1 + tests/tcg/README | 39 ------------------------ tests/tcg/i386/Makefile.target | 30 ++++++++++++++++++ tests/tcg/i386/README | 38 +++++++++++++++++++++++ tests/tcg/{ => i386}/hello-i386.c | 0 tests/tcg/{ => i386}/pi_10.com | Bin tests/tcg/{ => i386}/runcom.c | 0 tests/tcg/{ => i386}/test-i386-code16.S | 0 tests/tcg/{ => i386}/test-i386-fprem.c | 0 tests/tcg/{ => i386}/test-i386-muldiv.h | 0 tests/tcg/{ => i386}/test-i386-shift.h | 0 tests/tcg/{ => i386}/test-i386-ssse3.c | 0 tests/tcg/{ => i386}/test-i386-vm86.S | 0 tests/tcg/{ => i386}/test-i386.c | 0 tests/tcg/{ => i386}/test-i386.h | 0 15 files changed, 69 insertions(+), 39 deletions(-) create mode 100644 tests/tcg/i386/Makefile.target create mode 100644 tests/tcg/i386/README rename tests/tcg/{ => i386}/hello-i386.c (100%) rename tests/tcg/{ => i386}/pi_10.com (100%) rename tests/tcg/{ => i386}/runcom.c (100%) rename tests/tcg/{ => i386}/test-i386-code16.S (100%) rename tests/tcg/{ => i386}/test-i386-fprem.c (100%) rename tests/tcg/{ => i386}/test-i386-muldiv.h (100%) rename tests/tcg/{ => i386}/test-i386-shift.h (100%) rename tests/tcg/{ => i386}/test-i386-ssse3.c (100%) rename tests/tcg/{ => i386}/test-i386-vm86.S (100%) rename tests/tcg/{ => i386}/test-i386.c (100%) rename tests/tcg/{ => i386}/test-i386.h (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 3c7884f703..d5bcedfe1a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -283,6 +283,7 @@ M: Richard Henderson M: Eduardo Habkost S: Maintained F: target/i386/ +F: tests/tcg/i386/ F: hw/i386/ F: disas/i386.c T: git git://github.com/ehabkost/qemu.git x86-next diff --git a/tests/tcg/README b/tests/tcg/README index 0890044cf0..469504c4cb 100644 --- a/tests/tcg/README +++ b/tests/tcg/README @@ -3,45 +3,6 @@ regression testing. Tests are either multi-arch, meaning they can be built for all guest architectures that support linux-user executable, or they are architecture specific. -i386 -==== - -test-i386 ---------- - -This program executes most of the 16 bit and 32 bit x86 instructions and -generates a text output, for comparison with the output obtained with -a real CPU or another emulator. - -The Linux system call modify_ldt() is used to create x86 selectors -to test some 16 bit addressing and 32 bit with segmentation cases. - -The Linux system call vm86() is used to test vm86 emulation. - -Various exceptions are raised to test most of the x86 user space -exception reporting. - -linux-test ----------- - -This program tests various Linux system calls. It is used to verify -that the system call parameters are correctly converted between target -and host CPUs. - -test-i386-fprem ---------------- - -runcom ------- - -test-mmap ---------- - -sha1 ----- - -hello-i386 ----------- ARM diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target new file mode 100644 index 0000000000..2f27b65e2d --- /dev/null +++ b/tests/tcg/i386/Makefile.target @@ -0,0 +1,30 @@ +# i386 cross compile notes + +I386_SRC=$(SRC_PATH)/tests/tcg/i386 + +# Set search path for all sources +VPATH += $(I386_SRC) + +I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c)) +I386_TESTS=$(I386_SRCS:.c=) + +# Update TESTS +TESTS+=$(I386_TESTS) + +ifneq ($(TARGET_NAME),x86_64) +CFLAGS+=-m32 +endif + +# +# hello-i386 is a barebones app +# +hello-i386: CFLAGS+=-ffreestanding +hello-i386: LDFLAGS+=-nostdlib + +# +# test-386 includes a couple of additional objects that need to be linked together +# + +test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ \ + $( X-Patchwork-Id: 920552 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="jwqfzF52"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snqp0sFBz9s15 for ; Fri, 25 May 2018 23:57:10 +1000 (AEST) Received: from localhost ([::1]:44144 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDDP-000393-Gg for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:57:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35596) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1j-0002C7-9C for qemu-devel@nongnu.org; Fri, 25 May 2018 09:45:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1d-0008UF-NU for qemu-devel@nongnu.org; Fri, 25 May 2018 09:45:03 -0400 Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]:51962) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1d-0008Tu-H8 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:57 -0400 Received: by mail-wm0-x236.google.com with SMTP id j4-v6so14605459wme.1 for ; Fri, 25 May 2018 06:44:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yj9c7ToVVuoyGqSyq4/lgy5p2istUlQjJuQHRSYaEfQ=; b=jwqfzF52wn74JXEnTrXWHUKvoDlyjWCR9S16swqEvTLZhhYmbRbCCBxi6VVPBCnAzW kfK5GHHyTwwmxohk2xBnW/z2f9LOpVEn2kACa+lKZeu/4NAp+8fgDnjNGsyTDRywKy+w MD91jWil1JO6uFS0dssww8/12hZMRJPqQ74Oc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yj9c7ToVVuoyGqSyq4/lgy5p2istUlQjJuQHRSYaEfQ=; b=g4dFxYSyXvGZuHnKmQLDfWbKivXDOnl/I5kw+CcvRWcA1tK+W60vuXeauQkGqGn/1N svJkM0CqoghvALXiH49QLho+kPJn3Jqo4pnZPC1eW29IBfgf39G5+0YOjhCwRW8dsu94 3VrkULakRtQjayMLDZUZ7rWp/STajdt06R7eeEGQe+VCmbpj8ItkeyDzwoSBBcW4Q3// WyiN7bsa4bpteBupTlJ1HjJpKzCD1TZg8RfwMN8mCYn7bLnWkeP/9LFVOZGsVwue2gTT EteBIKv5u6cG/ne7SKy31mwhdd9JFzhiDcpoFiCFYw09G/mQHgw0OpGb8ys9CQ4HtN8i aM4w== X-Gm-Message-State: ALKqPwfUdAitBP7p+n3KpATfVvlwP/sUyZDSuIsuoVD+Iv0WxQFA8ZLE D/bHvYOVDUFF2RhlyKLn+OuGnL+oJQY= X-Google-Smtp-Source: ADUXVKKTi8vBl0jcYH0FMn2I+pOE/fTCVotlP4XedcT/EP7mDhmunVWeO1Cjs0S+twIYuMlgEDcNKg== X-Received: by 2002:a1c:3313:: with SMTP id z19-v6mr1727117wmz.48.1527255896373; Fri, 25 May 2018 06:44:56 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id c21-v6sm27963709wre.81.2018.05.25.06.44.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:54 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 9FDD53E0930; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:19 +0100 Message-Id: <20180525133851.27161-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::236 Subject: [Qemu-devel] [PATCH v5 17/49] docker: Add fedora-i386-cross image X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Fam Zheng It has some basic *-devel.i686 packages to be used with "gcc -m32" as a 32 bit cross build environment. Signed-off-by: Fam Zheng [AJB: add glibc-static] Signed-off-by: Alex Bennée Tested-by: Philippe Mathieu-Daudé --- v2 - include static glibc package as well --- tests/docker/dockerfiles/fedora-i386-cross.docker | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tests/docker/dockerfiles/fedora-i386-cross.docker diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker new file mode 100644 index 0000000000..8fbef2fa53 --- /dev/null +++ b/tests/docker/dockerfiles/fedora-i386-cross.docker @@ -0,0 +1,14 @@ +FROM fedora:latest +ENV PACKAGES \ + gcc \ + glibc-static.i686 \ + glibc-devel.i686 \ + glib2-devel.i686 \ + zlib-devel.i686 \ + glib2-devel.i686 \ + nettle-devel.i686 \ + pixman-devel.i686 \ + gnutls-devel.i686 + +RUN dnf install -y $PACKAGES +RUN rpm -q $PACKAGES | sort > /packages.txt From patchwork Fri May 25 13:38:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920543 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="XHax3nA+"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snmS3yr1z9s15 for ; Fri, 25 May 2018 23:54:16 +1000 (AEST) Received: from localhost ([::1]:44121 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDAc-0000et-4v for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:54:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35552) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1b-00024F-E2 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1a-0008Sl-Fm for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:55 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:37285) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1a-0008SN-9T for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:54 -0400 Received: by mail-wr0-x243.google.com with SMTP id i12-v6so9367731wrc.4 for ; Fri, 25 May 2018 06:44:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/1AVeywUdtEil7KFeSJJbhqkRy4XMunp+vO52SVeErI=; b=XHax3nA+z37zi7qjqn7vDZrSdgc+G6OqCEO4RHywnd/LsNVEPh8Dp6EsWOEIgsELIm uThhC6ImKFEKpQ6NrIPQ5tr8psNyanWa2E26A1WLxdpkptaK44GQwWNwFThTJDU5LOEP pdNp7xhlxhi0tudvaJ7KkTq+Wi25mz0p20I+s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/1AVeywUdtEil7KFeSJJbhqkRy4XMunp+vO52SVeErI=; b=W4hbMCXt7NYkFxeuhnbm1aQV6srHNx05lFRL547DZxnH2X719Yo3Ysg668lX2GHeha g8kXKSON/lTlJNn2/MD/hgMfjvJ/9VhW2bXDS//i0bSOWtMVxgpjBPPdcBJXcMr5MBYg lSKFEtZiNLgmrr6qNhU6K/C3bnXRSXwfZX+B+PddjvwFoPs4hhHHemN7svwzTfPv1aup ng2b2j7q+EdHt4j7NpKpkBg5h1SC8tlsyxdGyUHlS1OmRjdZudtE+0FKQCnrPJxZxQb4 EZBdbiz88fDMt8zvjbb3+xPmqIVagHPUfNHFj+xhsjtLwCXzDLi6E3g2QeFli0PSODhy r9+Q== X-Gm-Message-State: ALKqPweDD/bKvhXlnZTLA1oTjw2VwklzRsiPic3kcCdmLwgHP7kYdL0r NBgMA/4wqD4tlGlIrkq7z/NTTQ== X-Google-Smtp-Source: AB8JxZq+FQaVX4DzTs0OkIFbOgWge7tDLwOI9VHDw/CuTk8btlufstvmXqNo1LuVmpe6386s6s+rig== X-Received: by 2002:adf:8644:: with SMTP id 4-v6mr2519374wrw.73.1527255893131; Fri, 25 May 2018 06:44:53 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id b14-v6sm1744804wrn.57.2018.05.25.06.44.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id B3A273E09E4; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:20 +0100 Message-Id: <20180525133851.27161-19-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 18/49] tests/tcg: enable building for i386 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" While you can construct a compile command that does work using the x86_64 host compiler that most people use this is flakey. Different distros handle this is different ways so we default to using a known good i386 compiler via docker. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v3 - add runner for runcom v4 - runcom pi10.com directly from SRC_DIR v5 - define extra test-mmap runs --- tests/tcg/i386/Makefile.include | 9 +++++++++ tests/tcg/i386/Makefile.target | 7 +++++++ 2 files changed, 16 insertions(+) create mode 100644 tests/tcg/i386/Makefile.include diff --git a/tests/tcg/i386/Makefile.include b/tests/tcg/i386/Makefile.include new file mode 100644 index 0000000000..be1c3008dd --- /dev/null +++ b/tests/tcg/i386/Makefile.include @@ -0,0 +1,9 @@ +# +# Makefile.include for all i386 +# +# There is enough brokeness in x86_64 compilers that we don't default +# to using the x86_64 system compiler for i386 binaries. +# + +DOCKER_IMAGE=fedora-i386-cross +DOCKER_CROSS_COMPILER=gcc diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index 2f27b65e2d..8b46cc021e 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -28,3 +28,10 @@ hello-i386: LDFLAGS+=-nostdlib test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h $(CC) $(CFLAGS) $(LDFLAGS) -o $@ \ $( runcom.out, "TEST", "$< on $(TARGET_NAME)") + +# On i386 and x86_64 Linux only supports 4k pages (large pages are a different hack) +EXTRA_RUNS+=run-test-mmap-4096 From patchwork Fri May 25 13:38:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920538 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="BqVjRxJw"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snjg08gbz9s0q for ; Fri, 25 May 2018 23:51:51 +1000 (AEST) Received: from localhost ([::1]:44112 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD8G-00078M-Ko for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:51:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1d-00026f-Lk for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1c-0008Tw-TV for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:57 -0400 Received: from mail-wr0-x22a.google.com ([2a00:1450:400c:c0c::22a]:40370) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1c-0008Ta-Mb for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:56 -0400 Received: by mail-wr0-x22a.google.com with SMTP id l41-v6so9363996wre.7 for ; Fri, 25 May 2018 06:44:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uVIlzVvPVXSCjF5bwInkEJsP1ZRlxtSh+HRK1VGTHCE=; b=BqVjRxJwteMitMMmlRAmwxP80u02vsbrCvK1Hm/PMBRR3ejHBARbmVCDlcb4V7U2vn V+mV5mH+ISfVZo54kuyZNduZw48d6LBQQt4TtIO7c2Y5CFvqXsmvBUZeKNqEjh+tISKi lNcX9fArYBtWQCjn9npyCwPBM/0plG3VbL1lA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=uVIlzVvPVXSCjF5bwInkEJsP1ZRlxtSh+HRK1VGTHCE=; b=lY0B8xYN7F0nQ85cAF4bRvzlVXeYnkM4Jw5qyurHzwpGr0fPN4u7S/1grdADklNdSo IUYJIAVI+Sn7ixW+UK2wlUa8gmoAtQirDyLoTlWJrnQeSocLE89qxY495hyMz9pJFeEs SQDyLgj1jDmZ+GS+6dBW/CCz0L763fuzkqsXGQyNer4gzzPIt+YNRCvalOi+NTpY8xN+ 9zwK0Nf5i/vB+wmzlPVm7axJWO68gmlF3qpwJzkz7xGMSfFWIVRP3RqH7rNpfqNud8XR FQhZLkLXfrmfncHCna7TcGbCtWKUys0DohVdp570cmObsPIHD8j88BpEK7XpgcVlRazs 3Tdw== X-Gm-Message-State: ALKqPwdkR7K9IGzEQIKWf8qJw4Lg8eHSfxEg6Sc8PwCSp/Cx/ZieK3/D AXAsCJLg88DjgKAtPdgMp+t0yw== X-Google-Smtp-Source: AB8JxZp2Kfb9wU4tjEK1yMqmgEvrd5Kn7ND1FXtCeL7/obEWLEIWBOGV7fNzqY5YcQwE4XjHe/xi+w== X-Received: by 2002:adf:8584:: with SMTP id 4-v6mr2591960wrt.15.1527255895554; Fri, 25 May 2018 06:44:55 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id r200-v6sm8363855wmb.39.2018.05.25.06.44.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:54 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id C5ECF3E0AD4; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:21 +0100 Message-Id: <20180525133851.27161-20-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22a Subject: [Qemu-devel] [PATCH v5 19/49] tests/tcg/i386: Build fix for hello-i386 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Fam Zheng We have -Werror=missing-prototype, add a dummy prototype to avoid that warning. Signed-off-by: Fam Zheng Reviewed-by: Thomas Huth Reviewed-by: Richard Henderson --- tests/tcg/i386/hello-i386.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/tcg/i386/hello-i386.c b/tests/tcg/i386/hello-i386.c index fa00380de2..cfeb24b2f5 100644 --- a/tests/tcg/i386/hello-i386.c +++ b/tests/tcg/i386/hello-i386.c @@ -20,6 +20,7 @@ static inline int write(int fd, const char * buf, int len) return status; } +void _start(void); void _start(void) { write(1, "Hello World\n", 12); From patchwork Fri May 25 13:38:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920544 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="NsUSn3Nn"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40snnB2V7Bz9s19 for ; Fri, 25 May 2018 23:54:54 +1000 (AEST) Received: from localhost ([::1]:44127 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDBD-0001EC-SH for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 09:54:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35574) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMD1c-00025D-E8 for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMD1b-0008TM-Gn for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:56 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:43493) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMD1b-0008St-Bb for qemu-devel@nongnu.org; Fri, 25 May 2018 09:44:55 -0400 Received: by mail-wr0-x242.google.com with SMTP id r13-v6so9335588wrj.10 for ; Fri, 25 May 2018 06:44:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4qZmWcTtVsjHLFl9TYm1hfLR56b/cph+28K3fnGbca4=; b=NsUSn3Nn+3hPUr7oDpWuDuVJBsNKicRQ0YPwL7zxNk3dASYI0/OZN3EjoOZAVYif28 n62D22XQaEwB6xKHL83IdOH10rGE5CMShMWv29RO8dTZ5XT0yJEWSPriWcwrNsYWHNMG oYzS1fwCWPSSaaFHU+s2RN1sOaaHNBlNCdXUc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4qZmWcTtVsjHLFl9TYm1hfLR56b/cph+28K3fnGbca4=; b=C+g6yh3QqVSIX9jDLTllO/S/zsbrXmFMC3XZ4eC4qYWqOznjBt35fL1/6EKwaIgBga LnQZ8gmF0GsHvFuqr3i1pJNppTbA4Zw/bjsTPukE7XNSIeiNxR9zPoDRrqE20FM+cbPY bSSAOia7rXk8z0yR2dXzjJ5ANu1Fbh7t22i40+jyn/P6RGMmbXs8n0TqaLhcNNZuKMpe DaHF0an5J+VwgKiN4ukNg1kELLa3YoB+P9aW39BxjnrkyD35B9nkPpdVSAl+4A0hatPI 3HseEr+M1Oig4ChjfCuRl8X2HXyuYXbXtCiFtVUXY0ubtcdudhDtW46vvOFmubsOe6Tr uvsQ== X-Gm-Message-State: ALKqPwfeToNGQKgmagpBqKsdIDK1j/F2Xicpt/KwV8ajmBH2I8nlHev/ 2SNmFj8wBPPR6W2aqEna/n+FLA== X-Google-Smtp-Source: AB8JxZp8SZ8UWwk4OxEdtKe04PUHDiJhpE5vg+z4ohhbSFPtSOb/qZngDUGhcGdnpgCBBkxo1iJoQQ== X-Received: by 2002:adf:84e2:: with SMTP id 89-v6mr2412927wrg.167.1527255894219; Fri, 25 May 2018 06:44:54 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id c11-v6sm5256800wrm.65.2018.05.25.06.44.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 06:44:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id D93B93E0C30; Fri, 25 May 2018 14:38:52 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 14:38:22 +0100 Message-Id: <20180525133851.27161-21-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [PATCH v5 20/49] tests/tcg/i386: fix test-i386 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We don't include anything from qemu itself for the build. Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v4 - reword commit message to be more accurate --- tests/tcg/i386/test-i386.c | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/tcg/i386/test-i386.c b/tests/tcg/i386/test-i386.c index 9599204895..cae6a7773a 100644 --- a/tests/tcg/i386/test-i386.c +++ b/tests/tcg/i386/test-i386.c @@ -17,7 +17,6 @@ * along with this program; if not, see . */ #define _GNU_SOURCE -#include "qemu/compiler.h" #include #include #include From patchwork Fri May 25 15:04:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920611 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="IBwLf/S7"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40sqLk1cKzz9s01 for ; Sat, 26 May 2018 01:05:32 +1000 (AEST) Received: from localhost ([::1]:44527 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMEHZ-0003zD-Fz for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 11:05:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53778) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMEH9-0003yt-Eb for qemu-devel@nongnu.org; Fri, 25 May 2018 11:05:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMEH5-00039a-FL for qemu-devel@nongnu.org; Fri, 25 May 2018 11:05:03 -0400 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]:35038) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMEH5-00038y-8Z for qemu-devel@nongnu.org; Fri, 25 May 2018 11:04:59 -0400 Received: by mail-wm0-x234.google.com with SMTP id o78-v6so15520520wmg.0 for ; Fri, 25 May 2018 08:04:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YGW/n4uIzpZ6dh+Spw93KGLkfy9gM+9TRiuXIcsy+cw=; b=IBwLf/S78ppbcX2Gnjbf4xd4B7meo0UE8w+r0n0skZgKk3rQ7gu/7zy/p+4ZwMPPEz d0BLOHa3bVaet66GxK/jiZJCG87AKC2MjQczY3hxbc7iyevqkkzaqB7qeGIPy3djBox0 uQqndMZTehDm8CF+tV1lAAoECSXgSINLMao6U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YGW/n4uIzpZ6dh+Spw93KGLkfy9gM+9TRiuXIcsy+cw=; b=q1gwSPwYlF4CdScCv7318QAMKY+Bs155KIDntD8n4PY/a1vO19VVbala4gfjv+2s0x Ui1+0Ol/0Qsg672AS72WaJQJYu4Rg4NHkkjD1KaNe7H9BAE7kz/MpCw5DeudBw4/6wlW hXTj/3sxg+azi1YM3oE43ct6scu4G38hX7G1qidugRvSsPEuB7+BMRCm7cBwbqhSCRfq qV6m8WoB2Y8JdWRBahbl3Sw/mmcPiqhdQs706pTh6d0Ehcy63gopO5p0uIGbhGuhyyyJ GtMjDVkQDcwddS+KDk5lnY+QLypxFa8LNa2o2J8LWmsWCRxZFOBMXLZzhg7+97GJ53tF hcwg== X-Gm-Message-State: ALKqPweRjwJWr9H9qhvHoX0f/YJVV7xLmkZyt6LcWlGWTBgrDKHlCtne zADQT8siqYi5Rcow5hPG/L8+MQ== X-Google-Smtp-Source: ADUXVKLk5w5UpF/Pt+cvFQE/rkv49luh7+o410EKEBSBDMzpzNjzTZEN535ji1QbRxdhHCR4Rxu1KQ== X-Received: by 2002:a1c:6a0d:: with SMTP id f13-v6mr1876004wmc.1.1527260698035; Fri, 25 May 2018 08:04:58 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id e13-v6sm1863566wrm.45.2018.05.25.08.04.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 08:04:56 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 5A99A3E025C; Fri, 25 May 2018 16:04:56 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 16:04:56 +0100 Message-Id: <20180525150456.26443-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::234 Subject: [Qemu-devel] [PATCH v5.1 21/49] tests/tcg/i386: add runner for test-i386-fprem X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The runner needs to compare against a reference run. We also only run this test when SPEED=slow as it takes a while. Signed-off-by: Alex Bennée --- v5 - include test-i386-fprem.ref v5.1 - remove the 69Mb test-i386-fprem.ref - generate test-i386-fprem.ref on developers machine - add TIMEOUT=60 --- tests/tcg/i386/Makefile.target | 16 ++++++++++++++++ tests/tcg/i386/test-i386-fprem.c | 12 +++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index 8b46cc021e..64d241cfdf 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -33,5 +33,21 @@ test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386 run-runcom: runcom pi_10.com $(call quiet-command, $(QEMU) ./runcom $(I386_SRC)/pi_10.com > runcom.out, "TEST", "$< on $(TARGET_NAME)") +ifeq ($(SPEED), slow) + +test-i386-fprem.ref: test-i386-fprem + $(call quiet-command, ./$< > $@,"GENREF","generating $@") + +run-test-i386-fprem: TIMEOUT=60 +run-test-i386-fprem: test-i386-fprem + $(call quiet-command, \ + $(QEMU) $< > $<.out && \ + diff -u $(I386_SRC)/$<.ref $<.out, \ + "TEST", "$< (default) on $(TARGET_NAME)") +else +run-test-i386-fprem: test-i386-fprem + $(call quiet-command, /bin/true, "SLOW TEST", "$< SKIPPED on $(TARGET_NAME)") +endif + # On i386 and x86_64 Linux only supports 4k pages (large pages are a different hack) EXTRA_RUNS+=run-test-mmap-4096 diff --git a/tests/tcg/i386/test-i386-fprem.c b/tests/tcg/i386/test-i386-fprem.c index 1a71623204..66f5a9657d 100644 --- a/tests/tcg/i386/test-i386-fprem.c +++ b/tests/tcg/i386/test-i386-fprem.c @@ -23,7 +23,10 @@ * along with this program; if not, see . */ -#include "qemu/osdep.h" +#include +#include + +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) /* * Inspired by 's union ieee854_long_double, but with single @@ -39,7 +42,7 @@ union float80u { unsigned int exponent:15; unsigned int negative:1; unsigned int empty:16; - } QEMU_PACKED ieee; + } __attribute__((packed)) ieee; /* This is for NaNs in the IEEE 854 double-extended-precision format. */ struct { @@ -49,7 +52,7 @@ union float80u { unsigned int exponent:15; unsigned int negative:1; unsigned int empty:16; - } QEMU_PACKED ieee_nan; + } __attribute__((packed)) ieee_nan; }; #define IEEE854_LONG_DOUBLE_BIAS 0x3fff @@ -229,6 +232,7 @@ static void test_fprem_cases(void) do_fprem_stack_underflow(); printf("= invalid operation =\n"); + do_fprem(q_nan.d, 1.0); do_fprem(s_nan.d, 1.0); do_fprem(1.0, 0.0); do_fprem(pos_inf.d, 1.0); @@ -238,6 +242,8 @@ static void test_fprem_cases(void) do_fprem(pos_denorm.d, 1.0); do_fprem(1.0, pos_denorm.d); + do_fprem(smallest_positive_norm.d, smallest_positive_norm.d); + /* printf("= underflow =\n"); */ /* TODO: Is there a case where FPREM raises underflow? */ } From patchwork Fri May 25 14:18:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920570 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="hse4I5va"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spL96R6Tz9ry1 for ; Sat, 26 May 2018 00:20:01 +1000 (AEST) Received: from localhost ([::1]:44288 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZX-0000pT-Dj for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:19:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYl-0000nq-6j for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYh-0000GQ-67 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:11 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:39005) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYg-0000Fw-Va for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:07 -0400 Received: by mail-wm0-x243.google.com with SMTP id f8-v6so15092625wmc.4 for ; Fri, 25 May 2018 07:19:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y6r9WYKaEaRjeDqHWCRQN+yElCmsJQkAngL9Hf2LX+I=; b=hse4I5vaG49rhVQBaEiLhv3YTlc4zmg2snC2ZM06rhJlqpJmcMqMWZgmoBM9DkdCx1 6hElNvCJbOjNZ2IpgtCKC8RBfD6cXS0VwOWReJNKgniNLS58AI67kT4x8tWH83J53/b3 Oc7dzr6rxPUiVnY5ZiepcKNuFg62hiBUyjuEs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y6r9WYKaEaRjeDqHWCRQN+yElCmsJQkAngL9Hf2LX+I=; b=jeCwcj7Sjp0J5kxYaGDdc+BIJ/6lEMr7+NKPefRbufsdHgbJcIdNFpI8KE3Kkgov5z FxM9zL8wJAAG3kWSUbO+Ibe75sY9DoN39c4aKzH+/9LSv/776kq0HqLo5LnPHVkTzOZS rE3KsrSlLaTDvbOD957KJj47Z5pl+jxMTkuGPoSVkqCn69wZ4vYWpk14IK/2gfOLbBIA 2q2TIm5a+5p76WiMaeD+FpHL2dFvk06krgqy1aBOJz5inBrOPKb2/pG9a2Ow7lflKG31 GXW9kuaFZ3TzuzUDC5INJbUVpn5W3HJl3HUTAuVJtw4moxgEPzMdwu5WiWaE9A4YPD73 L+6w== X-Gm-Message-State: ALKqPwf0Pvg91sQjO/Nig8GQ0PwP8/f1rytQ2ygJFPlqzc/hbFX5+Xlf YGL4UzFqRjquPrqxDSdUv6kMjQ== X-Google-Smtp-Source: AB8JxZpzYtHasJvnCgDDNMvf+Xb7bhOzcz8QS4xuzoiRhJG3Njhzcm76snb1NQx/jkJandN6gZpkGg== X-Received: by 2002:a1c:8e47:: with SMTP id q68-v6mr2132928wmd.104.1527257945846; Fri, 25 May 2018 07:19:05 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id c18-v6sm8502992wrq.17.2018.05.25.07.19.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:04 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id CD6BB3E025C; Fri, 25 May 2018 15:19:03 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:18:56 +0100 Message-Id: <20180525141903.6257-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PATCH v5 22/49] tests/tcg/x86_64: add Makefile.target X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The sources for x86_64 are shared in the i386 directory which will be included thanks to TARGET_BASE_ARCH. However not all sources build so we need to filter out the ones we can't build in the 64 bit world and those that can't be built for 32 bit. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v4 - update MAINTAINERS v5 - merge with disable i386 version of test-i386-ssse --- MAINTAINERS | 1 + tests/tcg/i386/Makefile.target | 4 ++-- tests/tcg/x86_64/Makefile.target | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 tests/tcg/x86_64/Makefile.target diff --git a/MAINTAINERS b/MAINTAINERS index d5bcedfe1a..366f1c3694 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -284,6 +284,7 @@ M: Eduardo Habkost S: Maintained F: target/i386/ F: tests/tcg/i386/ +F: tests/tcg/x86_64/ F: hw/i386/ F: disas/i386.c T: git git://github.com/ehabkost/qemu.git x86-next diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index 937d4de7f5..d5c6f32b93 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -7,9 +7,9 @@ VPATH += $(I386_SRC) I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c)) I386_TESTS=$(I386_SRCS:.c=) - +I386_ONLY_TESTS=$(filter-out test-i386-ssse3, $(I386_TESTS)) # Update TESTS -TESTS+=$(I386_TESTS) +TESTS+=$(I386_ONLY_TESTS) ifneq ($(TARGET_NAME),x86_64) CFLAGS+=-m32 diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target new file mode 100644 index 0000000000..74f170b9ed --- /dev/null +++ b/tests/tcg/x86_64/Makefile.target @@ -0,0 +1,15 @@ +# -*- Mode: makefile -*- +# +# x86_64 tests - included from tests/tcg/Makefile.target +# +# Currently we only build test-x86_64 and test-i386-ssse3 from +# $(SRC)/tests/tcg/i386/ +# + +X86_64_TESTS=$(filter-out $(I386_ONLY_TESTS), $(TESTS)) +X86_64_TESTS+=test-x86_64 +TESTS:=$(X86_64_TESTS) + +test-x86_64: LDFLAGS+=-lm -lc +test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) From patchwork Fri May 25 14:18:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920576 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="gsCtsv/h"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spPp0hwYz9s0q for ; Sat, 26 May 2018 00:23:10 +1000 (AEST) Received: from localhost ([::1]:44308 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDcY-0003hW-On for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:23:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYl-0000oH-VH for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYk-0000J6-Sa for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:11 -0400 Received: from mail-wr0-x22f.google.com ([2a00:1450:400c:c0c::22f]:45442) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYk-0000IL-Lc for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:10 -0400 Received: by mail-wr0-x22f.google.com with SMTP id w3-v6so9528910wrl.12 for ; Fri, 25 May 2018 07:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+11l6cLn4Yj4/3tCs3T76nUrCD4k2kSS650K2lXbSIM=; b=gsCtsv/hoMOHIQfTDpmYeeryH7+YHS8wWcH7B4qlEhpZXjcivDL/U1xK1oFKcbE4eS HtqNMFlLf+OPkdSyIAjEv4lfb2TkfO09odEETqGPMty68hW+qwKXeOoAcc0nSM95QLt6 6MAzBB4VtgmW8ydW4mHy66uPnp4IMhjw8dJ4w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+11l6cLn4Yj4/3tCs3T76nUrCD4k2kSS650K2lXbSIM=; b=iezLJVcbFnAbjkjo55pfiq+P+adB8NyPEG42YMNZY/hesvHTZinKuZeI30725buPgb gIN4QHKVTM/0JWu4090yJfOOrGq4lQttiFiCbTot2s/IV2XEfhdrWG07UhJN+0SALmlp sIaSxtXXDWpB3dHrKYwsGS2ZKW2MuQm7nTS8F1GkzPWvsaC0Z9qGTsKDYc3Bp30E/B0V qOS8ptlvyLr7rx6m1cFJJtwK7YibKWW88rM1wPjqHMa0hD5U74gKsUiuijsEzuFYZgnS EOwar6PMlfuinRj3Y54Mfo0gIqWDplQaXVOU2EPZyjCDpRXbGUxJfPDb66USr8XOfrC5 PiUQ== X-Gm-Message-State: ALKqPwc5MLnnUwswUwi53mtNvERKFIqSEfraqXgmn0U0MEZV1oLO0ciN 6U5L+BPiXcDM8LK/oiRAFImovA== X-Google-Smtp-Source: AB8JxZrUlCO8Ka5eOQIIOvREOyep3PkFasTwuT6BrXFUv4UUBw95/s8SqzZoLkhYEOxOu6KjciiU4A== X-Received: by 2002:adf:d4c5:: with SMTP id w5-v6mr2172684wrk.185.1527257949615; Fri, 25 May 2018 07:19:09 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id h12-v6sm13153438wmc.7.2018.05.25.07.19.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:04 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id E1A783E027A; Fri, 25 May 2018 15:19:03 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:18:57 +0100 Message-Id: <20180525141903.6257-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22f Subject: [Qemu-devel] [PATCH v5 23/49] tests/tcg/i386/test-i386: use modern vector_size attributes X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The compiler complains about the old __mode__ style attributes. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/tcg/i386/test-i386.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/tcg/i386/test-i386.c b/tests/tcg/i386/test-i386.c index cae6a7773a..caef4da176 100644 --- a/tests/tcg/i386/test-i386.c +++ b/tests/tcg/i386/test-i386.c @@ -2106,8 +2106,8 @@ static void test_enter(void) #ifdef TEST_SSE -typedef int __m64 __attribute__ ((__mode__ (__V2SI__))); -typedef float __m128 __attribute__ ((__mode__(__V4SF__))); +typedef int __m64 __attribute__ ((vector_size(8))); +typedef float __m128 __attribute__ ((vector_size(16))); typedef union { double d[2]; From patchwork Fri May 25 14:18:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920573 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="W+J7ddKx"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spLd1tw2z9ry1 for ; Sat, 26 May 2018 00:20:25 +1000 (AEST) Received: from localhost ([::1]:44292 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZu-0001Fv-UR for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:20:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44229) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYl-0000no-6a for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYh-0000Gy-VE for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:11 -0400 Received: from mail-wr0-x234.google.com ([2a00:1450:400c:c0c::234]:45446) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYh-0000GL-OF for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:07 -0400 Received: by mail-wr0-x234.google.com with SMTP id w3-v6so9528644wrl.12 for ; Fri, 25 May 2018 07:19:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ADEmH+Tm1FxvznpiUQCOngLxJ1WZSQUzbAPrTymDHZQ=; b=W+J7ddKxHmWEf5hjezc0PHiT8CMziuatg7xChqbSqFePqWKIL0kZSUxstCJiIPKbR/ 9sjsmkzfMe66tRhBn9+XmTNiim/RwGp5fS4hkXQHNaOMjCb4ApGbFmxYeCa0gF/ADU9q 3TFhzCCXYL/nztmIagp8zDXreL9OmG1eiPpvg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ADEmH+Tm1FxvznpiUQCOngLxJ1WZSQUzbAPrTymDHZQ=; b=mhHjjcZMS0R5GaRWAmRGCWn4NO5sp8lIad3idjnQ1VaKeDgnxtqz20Qzfo74UYuCRR 4IPxfKgcs4d43JIbg/7NYTs3Nh3A8+5E66Jqzko/r6WL0jcuOqkSmVNeeJdYn/5vMqS4 xIq1NnY4TzUqCG/zyg+dqqTEmlr/xnr6cUfj5Fq5/wLAP5Osy6CEKYZ2fgefyDnWOJhD Hwe05RSsO6ZMOEJBekvWV0bRuAtinEt2RpKs4nMjPMHH5xl8UTaWsN2Zs5jsEktGMFCC qqssBNvNd5xG5xIZPd/uOqWKPnCNntiosiytQ9UJPb1LufLh2/4cWb8a9FgGDSP4stHn nVTA== X-Gm-Message-State: ALKqPwcLboYMFwUsaQVapI2eLdinyBg+a7QfjO5Whjdds31tPHHjx2gD Fx6kIX4u/fv/ZYw0YKPx6MiIbw== X-Google-Smtp-Source: AB8JxZqVIrDRR24QQp0n4d/mP1VQNV6EouNCuzvHilWU/tqoPh1gvhgkBQ0YhaE86cwaDrCz3SpDxQ== X-Received: by 2002:adf:b11a:: with SMTP id l26-v6mr2528772wra.258.1527257946683; Fri, 25 May 2018 07:19:06 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id d12-v6sm24902466wrg.2.2018.05.25.07.19.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:04 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id F41AB3E02DF; Fri, 25 May 2018 15:19:03 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:18:58 +0100 Message-Id: <20180525141903.6257-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::234 Subject: [Qemu-devel] [PATCH v5 24/49] tests/tcg/i386/test-i386: fix printf format X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/tcg/i386/test-i386.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tcg/i386/test-i386.c b/tests/tcg/i386/test-i386.c index caef4da176..a29b41e764 100644 --- a/tests/tcg/i386/test-i386.c +++ b/tests/tcg/i386/test-i386.c @@ -2258,7 +2258,7 @@ SSE_OP(a ## sd); "pop %0\n"\ : "=rm" (eflags)\ : "x" (a.dq), "x" (b.dq));\ - printf("%-9s: a=%f b=%f cc=%04x\n",\ + printf("%-9s: a=%f b=%f cc=%04lx\n",\ #op, a1, b1,\ eflags & (CC_C | CC_P | CC_Z | CC_S | CC_O | CC_A));\ } From patchwork Fri May 25 14:18:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920572 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Ku8gEMf9"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spLQ4f0qz9ry1 for ; Sat, 26 May 2018 00:20:14 +1000 (AEST) Received: from localhost ([::1]:44290 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZk-00016a-6o for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:20:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44231) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYl-0000np-6b for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYj-0000HX-0S for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:11 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:40814) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYi-0000H6-QS for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:08 -0400 Received: by mail-wr0-x243.google.com with SMTP id l41-v6so9559301wre.7 for ; Fri, 25 May 2018 07:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wVVSrZjpUIAuDOVSUTUnp6zRU/43T5KV9b+vRL2e1U4=; b=Ku8gEMf97O5tejhNWtS0HzXHgv8YjfeTP0RxvW/eP3+psKknBoZywBMERDNO4qLPi+ 6qNyMJpWmGelPkg5b5rRGxCqrOa36Ts9KQoZ9HfO0pIkQ8quq4C1xEC11uqMZEsMgeUm b7U4XqbaezKbqU7hC7wb+zScSSYqK6HL5MBK4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wVVSrZjpUIAuDOVSUTUnp6zRU/43T5KV9b+vRL2e1U4=; b=cAygh+gXW3EutFwNhxK19lZjLubWLMSKxzBmnWOqG+isTF4xqYNWB8rQ8gIXjGpXNm dF6+mNvHcNaxkt6k7Xpr3e80qyx9ZQUp41BTyBJds0c9XKnkYNS/bTa4841QBzKmqlSK 4RPptiNLc/ZNbOQGuHyJz6P2nCMmpzcAb2KwUxOuW5wSGN4CIb77NQAJcRrMeieUKUix DEamGWCDjS13GO+s+AVDWoMQtxkP3UBFqp4fEHVl/Ue8YZA26/s6v30HNb/L2IN6ydZC l//5Cx6girtimAGPm2k8DpxX/Eo9M6FecG9T7UQIWLgM7VWGrJpWC5hiTQhrW2tBQztT U1Eg== X-Gm-Message-State: ALKqPwdNsHHkbRgeCiYWeqoKkIA06oGEw8H6s/ZWktfmgPQyCHDLdxLL IwjrNurApYFv0pXIbiqySHfcrO3K+OY= X-Google-Smtp-Source: AB8JxZpbf5M0hTBqS/nOibrVQslhbIhs2p/e52NF7KXvYFLPbppd1WWCeRGoxjMlUGosmmnOd2XEyA== X-Received: by 2002:adf:90cd:: with SMTP id i71-v6mr2375060wri.136.1527257947709; Fri, 25 May 2018 07:19:07 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id y129-v6sm7608297wmg.44.2018.05.25.07.19.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:04 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 17E6D3E0312; Fri, 25 May 2018 15:19:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:18:59 +0100 Message-Id: <20180525141903.6257-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 25/49] tests/tcg: move ARM specific tests into subdir X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:ARM" , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" These only need to be built for ARM guests. Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v2 - do VPATH manipulation in tests/tcg/arm/Makefile.target - merge with fix hello-arm test v4 - update MAINTAINERS --- MAINTAINERS | 1 + tests/tcg/README | 9 --------- tests/tcg/arm/Makefile.target | 13 +++++++++++++ tests/tcg/arm/README | 11 +++++++++++ tests/tcg/{ => arm}/hello-arm.c | 0 tests/tcg/{ => arm}/test-arm-iwmmxt.s | 0 6 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 tests/tcg/arm/Makefile.target create mode 100644 tests/tcg/arm/README rename tests/tcg/{ => arm}/hello-arm.c (100%) rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 366f1c3694..e8abe172f5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -135,6 +135,7 @@ M: Peter Maydell L: qemu-arm@nongnu.org S: Maintained F: target/arm/ +F: tests/tcg/arm/ F: hw/arm/ F: hw/cpu/a*mpcore.c F: include/hw/cpu/a*mpcore.h diff --git a/tests/tcg/README b/tests/tcg/README index 469504c4cb..625f2326e6 100644 --- a/tests/tcg/README +++ b/tests/tcg/README @@ -5,15 +5,6 @@ or they are architecture specific. -ARM -=== - -hello-arm ---------- - -test-arm-iwmmxt ---------------- - MIPS ==== diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target new file mode 100644 index 0000000000..bc6962ecc6 --- /dev/null +++ b/tests/tcg/arm/Makefile.target @@ -0,0 +1,13 @@ +# -*- Mode: makefile -*- +# +# ARM - included from tests/tcg/Makefile.target +# + +ARM_SRC=$(SRC_PATH)/tests/tcg/arm + +# Set search path for all sources +VPATH += $(ARM_SRC) + + +hello-arm: CFLAGS+=-marm -ffreestanding +hello-arm: LDFLAGS+=-nostdlib diff --git a/tests/tcg/arm/README b/tests/tcg/arm/README new file mode 100644 index 0000000000..e6307116e2 --- /dev/null +++ b/tests/tcg/arm/README @@ -0,0 +1,11 @@ +These are ARM specific guest programs + +hello-arm +--------- + +A very simple inline assembly, write syscall based hello world + +test-arm-iwmmxt +--------------- + +A simple test case for older iwmmxt extended ARMs diff --git a/tests/tcg/hello-arm.c b/tests/tcg/arm/hello-arm.c similarity index 100% rename from tests/tcg/hello-arm.c rename to tests/tcg/arm/hello-arm.c diff --git a/tests/tcg/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s similarity index 100% rename from tests/tcg/test-arm-iwmmxt.s rename to tests/tcg/arm/test-arm-iwmmxt.s From patchwork Fri May 25 14:19:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920579 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="PhZw/F3y"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spSz1SGmz9ry1 for ; Sat, 26 May 2018 00:25:55 +1000 (AEST) Received: from localhost ([::1]:44323 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDfE-0005zw-NM for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:25:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44253) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYl-0000oB-Py for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYk-0000Is-K4 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:11 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:33777) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYk-0000I4-Ck for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:10 -0400 Received: by mail-wm0-x241.google.com with SMTP id x12-v6so32661457wmc.0 for ; Fri, 25 May 2018 07:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b+9UMjDxYy9HVtXf490Sg7xwtkC9ySp21mwtru16fMc=; b=PhZw/F3ygZTQf9a96kbyS6F6bxswMVd4Guzj0X2/JAVv3TXCyjn++m8jr3KJAadVzq EJXNLVFk8NTHB7DJhWP/Jf/j0bTT8/cMBlmZzOS8YIXrCQWdY5TS+twpBZYy9mPgfsHx D3YqEzyS5Qc19IDQEZdYRjY6mhI71VfCUw8ms= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b+9UMjDxYy9HVtXf490Sg7xwtkC9ySp21mwtru16fMc=; b=GTKSZ2a3e21kfeJPmhGvOjB/H72b/PR1h1s8pzt352ZIP4VGkAsXhwUt5N70x+haj7 a47SZyR9zUPlyLZbyDnMvJGnBtU/Zc36mkCTEkXr60FOp4cGQWojeGbi1NzgDvlQ5py/ +IPLHh+/ViPF9jd93Y0kwVW8H8QP/dh2dag/61XQPalj1389gBAMIXQ1T21GoqM5MopC XN9szZ5KktI5e010hAP3nhArSuuNctTIzIiWbHu11cKV1l68ID8dSA6gVM80Aft4Beut 3OCuoyWMDSd736SGm56Jopw0A4lJAQ6U+vSSDvMwzAdN/YKoXrFRGbmrjDk+AfQYeSYl K8xw== X-Gm-Message-State: ALKqPwejl9cmA8i0WCWylU77GUqUcKRUAtcQGqerwS9dOW3KmJAirQc1 nuqrGthttBT+aOjTDL0Igr6fSrxRE7k= X-Google-Smtp-Source: ADUXVKKz7igQfPFhYIWpMRxMY6/ZokySowwGQ74TXDoowSX0XUc4wtFZxp73S5aqkUP6+8fgGAxCyg== X-Received: by 2002:a1c:8012:: with SMTP id b18-v6mr1765912wmd.13.1527257948777; Fri, 25 May 2018 07:19:08 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 75-v6sm7553119wmw.37.2018.05.25.07.19.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:04 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 2BECD3E05B2; Fri, 25 May 2018 15:19:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:00 +0100 Message-Id: <20180525141903.6257-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PATCH v5 26/49] tests/tcg: enable building for ARM X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:ARM" , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This allows us to use the docker cross compiler image to build these tests. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v5 - add EXTRA_RUNS for mmap tests --- tests/tcg/arm/Makefile.include | 8 ++++++++ tests/tcg/arm/Makefile.target | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 tests/tcg/arm/Makefile.include diff --git a/tests/tcg/arm/Makefile.include b/tests/tcg/arm/Makefile.include new file mode 100644 index 0000000000..8e7eac008f --- /dev/null +++ b/tests/tcg/arm/Makefile.include @@ -0,0 +1,8 @@ +# Makefile.include for all ARM targets +# +# We don't have any bigendian build tools so we only use this for armhf + +ifeq ($(TARGET_NAME),arm) +DOCKER_IMAGE=debian-armhf-cross +DOCKER_CROSS_COMPILER=arm-linux-gnueabihf-gcc +endif diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target index bc6962ecc6..0312293dca 100644 --- a/tests/tcg/arm/Makefile.target +++ b/tests/tcg/arm/Makefile.target @@ -1,6 +1,6 @@ # -*- Mode: makefile -*- # -# ARM - included from tests/tcg/Makefile.target +# ARM - included from tests/tcg/Makefile # ARM_SRC=$(SRC_PATH)/tests/tcg/arm @@ -11,3 +11,6 @@ VPATH += $(ARM_SRC) hello-arm: CFLAGS+=-marm -ffreestanding hello-arm: LDFLAGS+=-nostdlib + +# On ARM Linux only supports 4k pages +EXTRA_RUNS+=run-test-mmap-4096 From patchwork Fri May 25 14:19:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920577 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="VYjjK/8h"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spPx65FHz9ry1 for ; Sat, 26 May 2018 00:23:17 +1000 (AEST) Received: from localhost ([::1]:44311 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDch-0003oo-B9 for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:23:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYn-0000pO-EI for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYm-0000KS-G7 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:13 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:38782) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYm-0000Jm-9Y for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:12 -0400 Received: by mail-wr0-x243.google.com with SMTP id 94-v6so9544338wrf.5 for ; Fri, 25 May 2018 07:19:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pbJ5fJqxLMI9UvovF7KyOyeZsAxQQWjlNKiirTc9+64=; b=VYjjK/8hYk7wBu5zH4/X5tPUDm/xx4pB3TQ0QH0Md6NvAR31yap9/Vq2Qg/1FJQWyE 6tBSm08tMH8r1qI9ajv5FbLYsZTkVFP/SjPJ8lekTYqz710xJ0T5bg4/o+9AHPeGSyd7 RhWcZjPOjjI3xqKIU0OulcbdKrVcRtJuXBXHs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pbJ5fJqxLMI9UvovF7KyOyeZsAxQQWjlNKiirTc9+64=; b=XrdalFfN+9JS4xfsjBNwFj/6B7KPyNE0w3/KDoWcHd2iAIaI9aDn186MC1qex+rJa+ 1UokPaP7XyhS8pckr9uOVcest8ByhWvSGrJtuOAZV7T6r6IzigVww8BZUTfovIiJ0JDd GiXNMC8KPuBn9BAIS/Ldrl30Wl97l7I6cCYQM0Ct/pvXpMTw6vdzgFdSjNPNtEbkY6Kb 7EZOfoZmHX8EI0/dmrFppkaCrwnFJWZYpiYU6D4j5RsSU8yTKAc2M6HQAq8U+TrnRCtp 6JmU7o+4M7yBiH/PMbD2aYIA1NO/zj0xay5JCEWpD5VCIsytJ+IV6C7lz8toA07RVimv 5jmQ== X-Gm-Message-State: ALKqPwfEv03erT7jxQpTofU7TBmSxumPmj1oyaGp8eiHvLcI3Q4iCAud y3H94BiFtxJd/s4aiCO0Zk9x1g== X-Google-Smtp-Source: AB8JxZor+YzujJJfFtf11xlrXw/ymbeYTA/A934Wxw+UWzYj34rTCsKi5yYJKt4vAd1imw2l5lL+vQ== X-Received: by 2002:adf:e4cd:: with SMTP id v13-v6mr2317050wrm.238.1527257951285; Fri, 25 May 2018 07:19:11 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id u35-v6sm36201241wrc.29.2018.05.25.07.19.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:09 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3ECE53E069A; Fri, 25 May 2018 15:19:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:01 +0100 Message-Id: <20180525141903.6257-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 27/49] tests/tcg/arm: fix up test-arm-iwmmxt test X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:ARM" , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We need to rename the source file to a .S so we can do a single-line assemble and link invocation. We also specify the additional CFLAGS for the compile as it's a non-standard ARM binary. Signed-off-by: Alex Bennée [rth: force fpu configuration] Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- v4 - include rth's -mfpu=fpv4-sp-d16 v5 - merge fixes --- tests/tcg/arm/Makefile.target | 5 +++++ tests/tcg/arm/{test-arm-iwmmxt.s => test-arm-iwmmxt.S} | 0 2 files changed, 5 insertions(+) rename tests/tcg/arm/{test-arm-iwmmxt.s => test-arm-iwmmxt.S} (100%) diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target index 0312293dca..cadb385890 100644 --- a/tests/tcg/arm/Makefile.target +++ b/tests/tcg/arm/Makefile.target @@ -8,9 +8,14 @@ ARM_SRC=$(SRC_PATH)/tests/tcg/arm # Set search path for all sources VPATH += $(ARM_SRC) +TESTS += hello-arm test-arm-iwmmxt hello-arm: CFLAGS+=-marm -ffreestanding hello-arm: LDFLAGS+=-nostdlib +test-arm-iwmmxt: CFLAGS+=-marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16 +test-arm-iwmmxt: test-arm-iwmmxt.S + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) + # On ARM Linux only supports 4k pages EXTRA_RUNS+=run-test-mmap-4096 diff --git a/tests/tcg/arm/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.S similarity index 100% rename from tests/tcg/arm/test-arm-iwmmxt.s rename to tests/tcg/arm/test-arm-iwmmxt.S From patchwork Fri May 25 14:19:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920571 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="CidQ4Y9A"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spLG3T2rz9ry1 for ; Sat, 26 May 2018 00:20:06 +1000 (AEST) Received: from localhost ([::1]:44289 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZc-0000vP-4W for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:20:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44315) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYo-0000qA-9c for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYn-0000L7-Ci for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:14 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:38783) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYn-0000KZ-6G for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:13 -0400 Received: by mail-wr0-x244.google.com with SMTP id 94-v6so9544422wrf.5 for ; Fri, 25 May 2018 07:19:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KdsKRRP4Ry95jtNZH8XD76P9lEdyr2Q1F1tYzM0BUAo=; b=CidQ4Y9AyQXJXDIoTyX6T9p4ZpdMFWrF1UVtl+RxfSeH1j3GFSDdsT1tkQJCbqBiP2 vRAf6f3QYsm/Vc4s7r5l8kk8aADnnAPU3R8OGBlPu/5tyE07o0c1nQfKhbJVQKv3i1kC xQ/HABhOv96cKmS+E0tmte/qapCfeIevLHq6s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KdsKRRP4Ry95jtNZH8XD76P9lEdyr2Q1F1tYzM0BUAo=; b=kXp+uTwvYEFE7TrNAEeRWRH2tVPXrJxzIh/q0jrq+EgdYCz8IlXRlb4hgcottE8TYb 36eRet9+szT7pAXZ/o4ejPC2aksa0vWB8ZUlotsfUeDadvJHvLTemwB+O+PklVbeKE/c IihA1dk61ymg64OM/ctkKlsLCnnOJFMYHcGlycOqdg66+xkBJD/tB5lTE8CTlxjMbg4L buBylkjFP9NVX/5Z7WPA+ncfaMuaUQlJAE3EXK7jl+DvCbkkb1R9Gd/jGBRfFhxTJhWr EwvWfPBLTbMmGmAXE39rdt365Neh9/FfqjSvOAOhVrQKoHdBKY3O4tt6XkvIJu7Y/rzA ZYpA== X-Gm-Message-State: ALKqPwdJQ6oh1F3ud9O7UPLbN+hWA1n4yE18g58YKSUaiXbHLZFEEPUt J3gV6fkF17tCaBuKl0wr+g9HHA== X-Google-Smtp-Source: AB8JxZqSNMLuRP13SkFWbyAijf20oVSf4QDYuDYAF9DQwEsUHpA1RTTv0N/ysyJLweVBfUkMxAlpTA== X-Received: by 2002:adf:ac64:: with SMTP id v91-v6mr2187433wrc.80.1527257952153; Fri, 25 May 2018 07:19:12 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id y129-v6sm7608371wmg.44.2018.05.25.07.19.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:09 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 5332C3E06C7; Fri, 25 May 2018 15:19:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:02 +0100 Message-Id: <20180525141903.6257-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PATCH v5 28/49] tests/tcg: enable building for AArch64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:ARM" , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We only have compilers for the (default) little endian variants. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v4 - update MAINTAINERS --- MAINTAINERS | 1 + tests/tcg/aarch64/Makefile.include | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 tests/tcg/aarch64/Makefile.include diff --git a/MAINTAINERS b/MAINTAINERS index e8abe172f5..ec385a15df 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -136,6 +136,7 @@ L: qemu-arm@nongnu.org S: Maintained F: target/arm/ F: tests/tcg/arm/ +F: tests/tcg/aarch64/ F: hw/arm/ F: hw/cpu/a*mpcore.c F: include/hw/cpu/a*mpcore.h diff --git a/tests/tcg/aarch64/Makefile.include b/tests/tcg/aarch64/Makefile.include new file mode 100644 index 0000000000..de32c91235 --- /dev/null +++ b/tests/tcg/aarch64/Makefile.include @@ -0,0 +1,8 @@ +# Makefile.include for AArch64 targets +# +# We don't have any bigendian build tools so we only use this for AArch64 + +ifeq ($(TARGET_NAME),aarch64) +DOCKER_IMAGE=debian-arm64-cross +DOCKER_CROSS_COMPILER=aarch64-linux-gnu-gcc +endif From patchwork Fri May 25 14:19:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920602 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Udk+tbrt"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40splf6MrMz9rxs for ; Sat, 26 May 2018 00:38:38 +1000 (AEST) Received: from localhost ([::1]:44397 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDrY-0007zA-GQ for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:38:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44547) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZS-0001RW-3h for qemu-devel@nongnu.org; Fri, 25 May 2018 10:20:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYs-0000Nh-Fd for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:54 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:37644) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYr-0000Ml-Cz for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:18 -0400 Received: by mail-wr0-x241.google.com with SMTP id i12-v6so9562479wrc.4 for ; Fri, 25 May 2018 07:19:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gyEUH8wPByHp50dTsaWrqnoMiR8OZGFeDgGJjJ0RIcQ=; b=Udk+tbrtk2kKEePbdlP7oHyAyW5gZg0Goey6OYD5qQIWfEJbGNHZeFZUE6qbU4C/pT c7slq014GnGDvdG0GfdM/Be7bTha3whLvfjNj/TYXX6K1cAFQyUz/mb1G/AYdCUtiCum /n7dfmMaSUBEwTGjGCkuHyuJLwARJPIWzSnjs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gyEUH8wPByHp50dTsaWrqnoMiR8OZGFeDgGJjJ0RIcQ=; b=pjqPIUlWKjAhaOmhmKAJbzfmF0RPlBF6zqS8wpKq+R+swcb5WWtuZB9TIitXWsXyrt 6OCsFeiKY43TcFPnIOZF8gH3S6+FKy3ftpi5wb8EDxLDPiSmSa993C37xc520zLCSc6i 6MoBdC0ow6A//2+eI5Q4+ikrQ86I0v+LS56idaRcULQavPoXeoQb76F5sBnzF99JdjCu ztuAaa/SvzucOppUYnnECS6ozoBmn39E98lkUwaJhFxUC/zACECn+9lOZHsDQrlu6eKD g7RtQ3B6XQfsdjkpc86NKb6UasZeIzvCy2xzK2BOUsl+Esel29oFQLVgHKzwjf89i9TA fTTQ== X-Gm-Message-State: ALKqPwcPH1Wf6yIT/HpmAqPtL2Zz00BTYPoAdxntAgs/Yv6PgiTVZxTc cbFemth/nficADv55XK0n2Yz4w== X-Google-Smtp-Source: AB8JxZoRXoJIp3rck67PBp+kAvIN9bIvz9RyvH/7F9kHtcxMvvdd3jNQqya4tHNWdKYfplRhzhLeeg== X-Received: by 2002:adf:c98c:: with SMTP id f12-v6mr2537529wrh.272.1527257954033; Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id e80-v6sm9949868wmd.1.2018.05.25.07.19.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:10 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 7BF173E071E; Fri, 25 May 2018 15:19:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:03 +0100 Message-Id: <20180525141903.6257-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141903.6257-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141903.6257-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PATCH v5 29/49] tests/tcg/arm: add fcvt test cases for AArch32/64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:ARM" , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This runs through the usual float to float conversions and crucially also runs with ARM Alternative Half Precision Format. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v4 - add fcvt.ref and check results against it - fix single_to_half, single_to_double conversions - properly toggle AHP mode (fpsr->fpcr) - more values around the AHP margins - add INF/NAN/SNAN inputs - build for ARM and AArch64 - fix bug for hex literals - add float-to-int - checkpatch fix v5 - merge with tests/tcg/aarch64: add Makefile.target --- tests/tcg/aarch64/Makefile.target | 19 + tests/tcg/aarch64/fcvt.ref | 3268 +++++++++++++++++++++++++++++ tests/tcg/arm/Makefile.target | 15 +- tests/tcg/arm/fcvt.c | 458 ++++ tests/tcg/arm/fcvt.ref | 3268 +++++++++++++++++++++++++++++ 5 files changed, 7027 insertions(+), 1 deletion(-) create mode 100644 tests/tcg/aarch64/Makefile.target create mode 100644 tests/tcg/aarch64/fcvt.ref create mode 100644 tests/tcg/arm/fcvt.c create mode 100644 tests/tcg/arm/fcvt.ref diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target new file mode 100644 index 0000000000..7dba32138d --- /dev/null +++ b/tests/tcg/aarch64/Makefile.target @@ -0,0 +1,19 @@ +# -*- Mode: makefile -*- +# +# AArch64 specific tweaks + +AARCH64_SRC=$(SRC_PATH)/tests/tcg/aarch64 +VPATH += $(AARCH64_SRC) + +# we don't build any of the ARM tests +AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS)) +AARCH64_TESTS+=fcvt +TESTS:=$(AARCH64_TESTS) + +fcvt: LDFLAGS+=-lm + +run-fcvt: fcvt + $(call quiet-command, \ + $(QEMU) $< > fcvt.out && \ + diff -u $(AARCH64_SRC)/fcvt.ref fcvt.out, \ + "TEST", "$< (default) on $(TARGET_NAME)") diff --git a/tests/tcg/aarch64/fcvt.ref b/tests/tcg/aarch64/fcvt.ref new file mode 100644 index 0000000000..e7af24dc58 --- /dev/null +++ b/tests/tcg/aarch64/fcvt.ref @@ -0,0 +1,3268 @@ +#### Enabling IEEE Half Precision +### Rounding to nearest +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0x7f00 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x400 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x4170 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4248 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bff (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7bff (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7c00 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0x7e00 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0x7e00 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0x7f00 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +### Rounding upwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x401 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4249 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0x7f00 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x401 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x4170 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4249 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bff (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7c00 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0x7e00 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0x7e00 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0x7f00 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +### Rounding downwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0x7f00 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x400 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x416f (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4248 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bfe (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7bff (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7c00 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0x7e00 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0x7e00 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0x7f00 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +### Rounding to zero +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0x7f00 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x400 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x416f (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4248 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bfe (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7bff (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7c00 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0x7e00 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0x7e00 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0x7f00 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +Converting single-precision to integer +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 INT64: 1/0x000000000000000001 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 INT64: 2/0x000000000000000002 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 INT64: 65503/0x00000000000000ffdf (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 INT64: 65504/0x00000000000000ffe0 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 INT64: 65505/0x00000000000000ffe1 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 INT64: 131007/0x00000000000001ffbf (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 INT64: 131008/0x00000000000001ffc0 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 INT64: 131009/0x00000000000001ffc1 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 INT64: 0/00000000000000000000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting double-precision to integer +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 INT64: -2/0x00fffffffffffffffe (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 INT64: -1/0x00ffffffffffffffff (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 INT64: 0/00000000000000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 INT64: 1/0x000000000000000001 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 INT64: 1/0x000000000000000001 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 INT64: 2/0x000000000000000002 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 INT64: 65503/0x00000000000000ffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 INT64: 65504/0x00000000000000ffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 INT64: 65505/0x00000000000000ffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 INT64: 131007/0x00000000000001ffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 INT64: 131008/0x00000000000001ffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 INT64: 131009/0x00000000000001ffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 INT64: 2147483647/0x00000000007fffffff (0 => OK) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 INT64: 0/00000000000000000000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 INT64: 0/00000000000000000000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting half-precision to integer +00 HALF: 0xffff (0 => OK) +00 INT64: 4294959104/0x0000000000ffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 INT64: 4292861952/0x0000000000ffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 INT64: 4290781184/0x0000000000ffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 INT64: 4286578688/0x0000000000ff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 INT64: 3347046400/0x0000000000c77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 INT64: 3221225472/0x0000000000c0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 INT64: 3212836864/0x0000000000bf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 INT64: 3011510272/0x0000000000b3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 INT64: 2147483648/0x000000000080000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 INT64: 864026624/0x000000000033800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 INT64: 1065353216/0x00000000003f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 INT64: 1199562752/0x0000000000477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 INT64: 2139095040/0x00000000007f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 INT64: 2143297536/0x00000000007fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 INT64: 2145378304/0x00000000007fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 INT64: 2147475456/0x00000000007fffe000 (0 => OK) +#### Enabling ARM Alternative Half Precision +### Rounding to nearest +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7fff (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xffff (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xffff (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x400 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x4170 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4248 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bff (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7bff (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7fff (0x10 => INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7fff (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7fff (0x10 => INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7fff (0x1 => INVALID) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7fff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7fff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7fff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7fff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +### Rounding upwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x401 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4249 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7c00 (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7fff (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x1 => INVALID) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xffff (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xffff (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x401 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x4170 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4249 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bff (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7c00 (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7fff (0x10 => INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7fff (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7fff (0x1 => INVALID) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7fff (0x1 => INVALID) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7fff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7fff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7fff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7fff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +### Rounding downwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7ffe (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xffff (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xffff (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x400 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x416f (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4248 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bfe (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7bff (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7ffe (0x10 => INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7fff (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7fff (0x10 => INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7fff (0x1 => INVALID) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7fff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7fff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7fff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7fff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +### Rounding to zero +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7ffe (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0xffff (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0xffff (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0xc000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0xbc00 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0x400 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x3c00 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x3c01 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x3c00 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x4000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x416f (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x4248 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0x7bfe (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0x7bff (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0x7bff (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0x7ffe (0x10 => INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0x7fff (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0x7fff (0x10 => INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0x7fff (0x1 => INVALID) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0x7fff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0x7fff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0x7fff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0x7fff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +Converting single-precision to integer +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 INT64: 1/0x000000000000000001 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 INT64: 2/0x000000000000000002 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 INT64: 65503/0x00000000000000ffdf (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 INT64: 65504/0x00000000000000ffe0 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 INT64: 65505/0x00000000000000ffe1 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 INT64: 131007/0x00000000000001ffbf (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 INT64: 131008/0x00000000000001ffc0 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 INT64: 131009/0x00000000000001ffc1 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 INT64: 0/00000000000000000000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting double-precision to integer +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 INT64: -9223372036854775808/0x008000000000000000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 INT64: -2/0x00fffffffffffffffe (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 INT64: -1/0x00ffffffffffffffff (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 INT64: 0/00000000000000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 INT64: 1/0x000000000000000001 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 INT64: 1/0x000000000000000001 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 INT64: 2/0x000000000000000002 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 INT64: 65503/0x00000000000000ffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 INT64: 65504/0x00000000000000ffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 INT64: 65505/0x00000000000000ffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 INT64: 131007/0x00000000000001ffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 INT64: 131008/0x00000000000001ffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 INT64: 131009/0x00000000000001ffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 INT64: 2147483647/0x00000000007fffffff (0 => OK) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 INT64: 9223372036854775807/0x007fffffffffffffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 INT64: 0/00000000000000000000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 INT64: 0/00000000000000000000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting half-precision to integer +00 HALF: 0xffff (0 => OK) +00 INT64: 3355435008/0x0000000000c7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 INT64: 3349143552/0x0000000000c79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 INT64: 3347062784/0x0000000000c7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 INT64: 3347054592/0x0000000000c7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 INT64: 3347046400/0x0000000000c77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 INT64: 3221225472/0x0000000000c0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 INT64: 3212836864/0x0000000000bf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 INT64: 3011510272/0x0000000000b3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 INT64: 2147483648/0x000000000080000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 INT64: 864026624/0x000000000033800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 INT64: 1065353216/0x00000000003f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 INT64: 1199562752/0x0000000000477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 INT64: 1199570944/0x000000000047800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 INT64: 1199579136/0x000000000047802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 INT64: 1201659904/0x0000000000479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 INT64: 1207951360/0x000000000047ffe000 (0 => OK) diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target index cadb385890..14b5435fc6 100644 --- a/tests/tcg/arm/Makefile.target +++ b/tests/tcg/arm/Makefile.target @@ -8,7 +8,9 @@ ARM_SRC=$(SRC_PATH)/tests/tcg/arm # Set search path for all sources VPATH += $(ARM_SRC) -TESTS += hello-arm test-arm-iwmmxt +ARM_TESTS=hello-arm test-arm-iwmmxt + +TESTS += $(ARM_TESTS) fcvt hello-arm: CFLAGS+=-marm -ffreestanding hello-arm: LDFLAGS+=-nostdlib @@ -17,5 +19,16 @@ test-arm-iwmmxt: CFLAGS+=-marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16 test-arm-iwmmxt: test-arm-iwmmxt.S $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) +ifeq ($(TARGET_NAME), arm) +fcvt: LDFLAGS+=-lm +# fcvt: CFLAGS+=-march=armv8.2-a+fp16 -mfpu=neon-fp-armv8 + +run-fcvt: fcvt + $(call quiet-command, \ + $(QEMU) $< > fcvt.out && \ + diff -u $(ARM_SRC)/fcvt.ref fcvt.out, \ + "TEST", "$< (default) on $(TARGET_NAME)") +endif + # On ARM Linux only supports 4k pages EXTRA_RUNS+=run-test-mmap-4096 diff --git a/tests/tcg/arm/fcvt.c b/tests/tcg/arm/fcvt.c new file mode 100644 index 0000000000..617626bc63 --- /dev/null +++ b/tests/tcg/arm/fcvt.c @@ -0,0 +1,458 @@ +/* + * Test Floating Point Conversion + */ + +/* we want additional float type definitions */ +#define __STDC_WANT_IEC_60559_BFP_EXT__ +#define __STDC_WANT_IEC_60559_TYPES_EXT__ + +#include +#include +#include +#include +#include + +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + +static char flag_str[256]; + +static char *get_flag_state(int flags) +{ + if (flags) { + snprintf(flag_str, sizeof(flag_str), "%s %s %s %s %s", + flags & FE_OVERFLOW ? "OVERFLOW" : "", + flags & FE_UNDERFLOW ? "UNDERFLOW" : "", + flags & FE_DIVBYZERO ? "DIV0" : "", + flags & FE_INEXACT ? "INEXACT" : "", + flags & FE_INVALID ? "INVALID" : ""); + } else { + snprintf(flag_str, sizeof(flag_str), "OK"); + } + + return flag_str; +} + +static void print_double_number(int i, double num) +{ + uint64_t double_as_hex = *(uint64_t *) # + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d DOUBLE: %02.20e / %#020" PRIx64 " (%#x => %s)\n", + i, num, double_as_hex, flags, fstr); +} + +static void print_single_number(int i, float num) +{ + uint32_t single_as_hex = *(uint32_t *) # + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d SINGLE: %02.20e / %#010x (%#x => %s)\n", + i, num, single_as_hex, flags, fstr); +} + +static void print_half_number(int i, uint16_t num) +{ + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d HALF: %#04x (%#x => %s)\n", + i, num, flags, fstr); +} + +static void print_int64(int i, int64_t num) +{ + uint64_t int64_as_hex = *(uint64_t *) # + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d INT64: %20" PRId64 "/%#020" PRIx64 " (%#x => %s)\n", + i, num, int64_as_hex, flags, fstr); +} + +#ifndef SNANF +/* Signaling NaN macros, if supported. */ +# if __GNUC_PREREQ(3, 3) +# define SNANF (__builtin_nansf ("")) +# define SNAN (__builtin_nans ("")) +# define SNANL (__builtin_nansl ("")) +# endif +#endif + +float single_numbers[] = { -SNANF, + -NAN, + -INFINITY, + -FLT_MAX, + -1.111E+31, + -1.111E+30, + -1.08700982e-12, + -1.78051176e-20, + -FLT_MIN, + 0.0, + FLT_MIN, + 2.98023224e-08, + 5.96046E-8, /* min positive FP16 subnormal */ + 6.09756E-5, /* max subnormal FP16 */ + 6.10352E-5, /* min positive normal FP16 */ + 1.0, + 1.0009765625, /* smallest float after 1.0 FP16 */ + 2.0, + M_E, M_PI, + 65503.0, + 65504.0, /* max FP16 */ + 65505.0, + 131007.0, + 131008.0, /* max AFP */ + 131009.0, + 1.111E+30, + FLT_MAX, + INFINITY, + NAN, + SNANF }; + +static void convert_single_to_half(void) +{ + int i; + + printf("Converting single-precision to half-precision\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + float input = single_numbers[i]; + + feclearexcept(FE_ALL_EXCEPT); + + print_single_number(i, input); +#if defined(__arm__) + uint32_t output; + asm("vcvtb.f16.f32 %0, %1" : "=t" (output) : "x" (input)); +#else + uint16_t output; + asm("fcvt %h0, %s1" : "=w" (output) : "x" (input)); +#endif + print_half_number(i, output); + } +} + +static void convert_single_to_double(void) +{ + int i; + + printf("Converting single-precision to double-precision\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + float input = single_numbers[i]; + /* uint64_t output; */ + double output; + + feclearexcept(FE_ALL_EXCEPT); + + print_single_number(i, input); +#if defined(__arm__) + asm("vcvt.f64.f32 %P0, %1" : "=w" (output) : "t" (input)); +#else + asm("fcvt %d0, %s1" : "=w" (output) : "x" (input)); +#endif + print_double_number(i, output); + } +} + +static void convert_single_to_integer(void) +{ + int i; + + printf("Converting single-precision to integer\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + float input = single_numbers[i]; + int64_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_single_number(i, input); +#if defined(__arm__) + /* asm("vcvt.s32.f32 %s0, %s1" : "=t" (output) : "t" (input)); */ + output = input; +#else + asm("fcvtzs %0, %s1" : "=r" (output) : "w" (input)); +#endif + print_int64(i, output); + } +} + +/* This allows us to initialise some doubles as pure hex */ +typedef union { + double d; + uint64_t h; +} test_doubles; + +test_doubles double_numbers[] = { + {SNAN}, + {-NAN}, + {-INFINITY}, + {-DBL_MAX}, + {-FLT_MAX-1.0}, + {-FLT_MAX}, + {-1.111E+31}, + {-1.111E+30}, /* half prec */ + {-2.0}, {-1.0}, + {-DBL_MIN}, + {-FLT_MIN}, + {0.0}, + {FLT_MIN}, + {2.98023224e-08}, + {5.96046E-8}, /* min positive FP16 subnormal */ + {6.09756E-5}, /* max subnormal FP16 */ + {6.10352E-5}, /* min positive normal FP16 */ + {1.0}, + {1.0009765625}, /* smallest float after 1.0 FP16 */ + {DBL_MIN}, + {1.3789972848607228e-308}, + {1.4914738736681624e-308}, + {1.0}, {2.0}, + {M_E}, {M_PI}, + {65503.0}, + {65504.0}, /* max FP16 */ + {65505.0}, + {131007.0}, + {131008.0}, /* max AFP */ + {131009.0}, + {.h = 0x41dfffffffc00000 }, /* to int = 0x7fffffff */ + {FLT_MAX}, + {FLT_MAX + 1.0}, + {DBL_MAX}, + {INFINITY}, + {NAN}, + {.h = 0x7ff0000000000001}, /* SNAN */ + {SNAN}, +}; + +static void convert_double_to_half(void) +{ + int i; + + printf("Converting double-precision to half-precision\n"); + + for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) { + double input = double_numbers[i].d; + uint16_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_double_number(i, input); + + /* as we don't have _Float16 support */ +#if defined(__arm__) + /* asm("vcvtb.f16.f64 %0, %P1" : "=t" (output) : "x" (input)); */ + output = input; +#else + asm("fcvt %h0, %d1" : "=w" (output) : "x" (input)); +#endif + print_half_number(i, output); + } +} + +static void convert_double_to_single(void) +{ + int i; + + printf("Converting double-precision to single-precision\n"); + + for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) { + double input = double_numbers[i].d; + uint32_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_double_number(i, input); + +#if defined(__arm__) + asm("vcvt.f32.f64 %0, %P1" : "=w" (output) : "x" (input)); +#else + asm("fcvt %s0, %d1" : "=w" (output) : "x" (input)); +#endif + + print_single_number(i, output); + } +} + +static void convert_double_to_integer(void) +{ + int i; + + printf("Converting double-precision to integer\n"); + + for (i = 0; i < ARRAY_SIZE(double_numbers); ++i) { + double input = double_numbers[i].d; + int64_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_double_number(i, input); +#if defined(__arm__) + /* asm("vcvt.s32.f32 %s0, %s1" : "=t" (output) : "t" (input)); */ + output = input; +#else + asm("fcvtzs %0, %d1" : "=r" (output) : "w" (input)); +#endif + print_int64(i, output); + } +} + +/* no handy defines for these numbers */ +uint16_t half_numbers[] = { + 0xffff, /* -NaN / AHP -Max */ + 0xfcff, /* -NaN / AHP */ + 0xfc01, /* -NaN / AHP */ + 0xfc00, /* -Inf */ + 0xfbff, /* -Max */ + 0xc000, /* -2 */ + 0xbc00, /* -1 */ + 0x8001, /* -MIN subnormal */ + 0x8000, /* -0 */ + 0x0000, /* +0 */ + 0x0001, /* MIN subnormal */ + 0x3c00, /* 1 */ + 0x7bff, /* Max */ + 0x7c00, /* Inf */ + 0x7c01, /* NaN / AHP */ + 0x7cff, /* NaN / AHP */ + 0x7fff, /* NaN / AHP +Max*/ +}; + +static void convert_half_to_double(void) +{ + int i; + + printf("Converting half-precision to double-precision\n"); + + for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) { + uint16_t input = half_numbers[i]; + double output; + + feclearexcept(FE_ALL_EXCEPT); + + print_half_number(i, input); +#if defined(__arm__) + /* asm("vcvtb.f64.f16 %P0, %1" : "=w" (output) : "t" (input)); */ + output = input; +#else + asm("fcvt %d0, %h1" : "=w" (output) : "x" (input)); +#endif + print_double_number(i, output); + } +} + +static void convert_half_to_single(void) +{ + int i; + + printf("Converting half-precision to single-precision\n"); + + for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) { + uint16_t input = half_numbers[i]; + float output; + + feclearexcept(FE_ALL_EXCEPT); + + print_half_number(i, input); +#if defined(__arm__) + asm("vcvtb.f32.f16 %0, %1" : "=w" (output) : "x" ((uint32_t)input)); +#else + asm("fcvt %s0, %h1" : "=w" (output) : "x" (input)); +#endif + print_single_number(i, output); + } +} + +static void convert_half_to_integer(void) +{ + int i; + + printf("Converting half-precision to integer\n"); + + for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) { + uint16_t input = half_numbers[i]; + int64_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_half_number(i, input); +#if defined(__arm__) + /* asm("vcvt.s32.f16 %0, %1" : "=t" (output) : "t" (input)); v8.2*/ + output = input; +#else + asm("fcvt %s0, %h1" : "=w" (output) : "x" (input)); +#endif + print_int64(i, output); + } +} + +typedef struct { + int flag; + char *desc; +} float_mapping; + +float_mapping round_flags[] = { + { FE_TONEAREST, "to nearest" }, + { FE_UPWARD, "upwards" }, + { FE_DOWNWARD, "downwards" }, + { FE_TOWARDZERO, "to zero" } +}; + +int main(int argc, char *argv[argc]) +{ + int i; + + printf("#### Enabling IEEE Half Precision\n"); + + for (i = 0; i < ARRAY_SIZE(round_flags); ++i) { + fesetround(round_flags[i].flag); + printf("### Rounding %s\n", round_flags[i].desc); + convert_single_to_half(); + convert_single_to_double(); + convert_double_to_half(); + convert_double_to_single(); + convert_half_to_single(); + convert_half_to_double(); + } + + /* convert to integer */ + convert_single_to_integer(); + convert_double_to_integer(); + convert_half_to_integer(); + + /* And now with ARM alternative FP16 */ +#if defined(__arm__) + /* See glibc sysdeps/arm/fpu_control.h */ + asm("mrc p10, 7, r1, cr1, cr0, 0\n\t" + "orr r1, r1, %[flags]\n\t" + "mcr p10, 7, r1, cr1, cr0, 0\n\t" + : /* no output */ : [flags] "n" (1 << 26) : "r1" ); +#else + asm("mrs x1, fpcr\n\t" + "orr x1, x1, %[flags]\n\t" + "msr fpcr, x1\n\t" + : /* no output */ : [flags] "n" (1 << 26) : "x1" ); +#endif + + printf("#### Enabling ARM Alternative Half Precision\n"); + + for (i = 0; i < ARRAY_SIZE(round_flags); ++i) { + fesetround(round_flags[i].flag); + printf("### Rounding %s\n", round_flags[i].desc); + convert_single_to_half(); + convert_single_to_double(); + convert_double_to_half(); + convert_double_to_single(); + convert_half_to_single(); + convert_half_to_double(); + } + + /* convert to integer */ + convert_single_to_integer(); + convert_double_to_integer(); + convert_half_to_integer(); + + return 0; +} diff --git a/tests/tcg/arm/fcvt.ref b/tests/tcg/arm/fcvt.ref new file mode 100644 index 0000000000..f052b6d7e5 --- /dev/null +++ b/tests/tcg/arm/fcvt.ref @@ -0,0 +1,3268 @@ +#### Enabling IEEE Half Precision +### Rounding to nearest +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +### Rounding upwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x401 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4249 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +### Rounding downwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +### Rounding to zero +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0xff00 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0xfe00 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xfc00 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7c00 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0x7e00 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0x7f00 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +Converting single-precision to integer +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 INT64: 1/0x000000000000000001 (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT ) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 INT64: 0/00000000000000000000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting double-precision to integer +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 INT64: 1/0x000000000000000001 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 INT64: -2/0x00fffffffffffffffe (0x10 => INEXACT ) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 INT64: -1/0x00ffffffffffffffff (0x10 => INEXACT ) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 INT64: 0/00000000000000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT ) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT ) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 INT64: 2147483647/0x00000000007fffffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 INT64: 0/00000000000000000000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 INT64: 0/00000000000000000000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting half-precision to integer +00 HALF: 0xffff (0 => OK) +00 INT64: 65535/0x00000000000000ffff (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 INT64: 64767/0x00000000000000fcff (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 INT64: 64513/0x00000000000000fc01 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 INT64: 64512/0x00000000000000fc00 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 INT64: 64511/0x00000000000000fbff (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 INT64: 49152/0x00000000000000c000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 INT64: 48128/0x00000000000000bc00 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 INT64: 32769/0x000000000000008001 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 INT64: 32768/0x000000000000008000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 INT64: 1/0x000000000000000001 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 INT64: 15360/0x000000000000003c00 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 INT64: 31743/0x000000000000007bff (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 INT64: 31744/0x000000000000007c00 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 INT64: 31745/0x000000000000007c01 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 INT64: 31999/0x000000000000007cff (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 INT64: 32767/0x000000000000007fff (0 => OK) +#### Enabling ARM Alternative Half Precision +### Rounding to nearest +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7fff (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +### Rounding upwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 HALF: 0x401 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x4170 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4249 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bff (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7c00 (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7fff (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x1 => INVALID) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005935e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015673e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851006e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324219e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635273e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013061e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638080000000000000e+08 / 0x4e4c0001 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32540006400000000000e+09 / 0x4e9e0000 (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859812e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570815e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +### Rounding downwards +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7ffe (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909791e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635273e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289629e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730512e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +### Rounding to zero +Converting single-precision to half-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 HALF: 0x8000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 HALF: 0x8000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 HALF: 0xffff (0x1 => INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 HALF: 0x400 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 HALF: 0x3c00 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 HALF: 0x3c01 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 HALF: 0x4000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 HALF: 0x416f (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 HALF: 0x4248 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 HALF: 0x7bfe (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 HALF: 0x7bff (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 HALF: 0x7bff (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 HALF: 0x7ffe (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 HALF: 0x7fff (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 HALF: 0x7fff (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 HALF: 0x7fff (0x1 => INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 HALF: 0x7fff (0x1 => INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 HALF: 0x7fff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 HALF: 0000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 HALF: 0000 (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 DOUBLE: -nan / 0x00fffc000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 DOUBLE: -1.11100004769645909790e+31 / 0x00c661874b20000000 (0 => OK) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 DOUBLE: -1.11100003258488635272e+30 / 0x00c62c0bab60000000 (0 => OK) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 DOUBLE: -1.08700982243137289628e-12 / 0x00bd731f7500000000 (0 => OK) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 DOUBLE: -1.78051176151664730511e-20 / 0x00bbd5054440000000 (0 => OK) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 DOUBLE: 2.98023223876953125000e-08 / 0x003e60000000000000 (0 => OK) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 DOUBLE: 5.96045985901128005934e-08 / 0x003e6ffffe60000000 (0 => OK) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 DOUBLE: 6.09755988989491015672e-05 / 0x003f0ff801a0000000 (0 => OK) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 DOUBLE: 6.10351999057456851005e-05 / 0x003f100000c0000000 (0 => OK) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 DOUBLE: 2.71828174591064453125e+00 / 0x004005bf0a80000000 (0 => OK) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 DOUBLE: 3.14159274101257324218e+00 / 0x00400921fb60000000 (0 => OK) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 DOUBLE: 1.11100003258488635272e+30 / 0x00462c0bab60000000 (0 => OK) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 DOUBLE: nan / 0x007ffc000000000000 (0x1 => INVALID) +Converting double-precision to half-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 HALF: 0000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 HALF: 0000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 HALF: 0000 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 HALF: 0000 (0x1 => INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 HALF: 0000 (0x1 => INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 HALF: 0000 (0x1 => INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 HALF: 0000 (0x1 => INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 HALF: 0000 (0x1 => INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 HALF: 0000 (0x1 => INVALID) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 HALF: 0000 (0x1 => INVALID) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 HALF: 0000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 HALF: 0000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 HALF: 0000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 HALF: 0000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 HALF: 0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 HALF: 0000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 HALF: 0000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 HALF: 0000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 HALF: 0x01 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 HALF: 0x01 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 HALF: 0000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 HALF: 0000 (0x10 => INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 HALF: 0000 (0x10 => INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 HALF: 0x01 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 HALF: 0x02 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 HALF: 0x02 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 HALF: 0x03 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 HALF: 0xffdf (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 HALF: 0xffe0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 HALF: 0xffe1 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 HALF: 0xffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 HALF: 0xffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 HALF: 0xffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 HALF: 0xffff (0 => OK) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 HALF: 0xffff (0x1 => INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 HALF: 0xffff (0x1 => INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 HALF: 0xffff (0x1 => INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 HALF: 0xffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 HALF: 0000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 HALF: 0000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 HALF: 0000 (0x1 => INVALID) +Converting double-precision to single-precision +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 SINGLE: 4.29077299200000000000e+09 / 0x4f7fc000 (0 => OK) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0 => OK) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 SINGLE: 8.55638016000000000000e+08 / 0x4e4c0000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 SINGLE: 1.19956275200000000000e+09 / 0x4e8effc0 (0 => OK) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 SINGLE: 1.19956300800000000000e+09 / 0x4e8effc2 (0 => OK) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 SINGLE: 1.20795123200000000000e+09 / 0x4e8fffbf (0 => OK) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 SINGLE: 1.20795136000000000000e+09 / 0x4e8fffc0 (0 => OK) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 SINGLE: 1.20795148800000000000e+09 / 0x4e8fffc1 (0 => OK) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 SINGLE: 1.32539993600000000000e+09 / 0x4e9dffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x10 => INEXACT ) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 SINGLE: 2.13909491200000000000e+09 / 0x4efeffff (0x14 => OVERFLOW INEXACT ) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 SINGLE: 2.13909504000000000000e+09 / 0x4eff0000 (0 => OK) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0 => OK) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 SINGLE: 2.14328934400000000000e+09 / 0x4eff8000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 SINGLE: 2.14538649600000000000e+09 / 0x4effc000 (0x1 => INVALID) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: 6.55350000000000000000e+04 / 0x0040efffe000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: 6.47670000000000000000e+04 / 0x0040ef9fe000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: 6.45130000000000000000e+04 / 0x0040ef802000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: 6.45120000000000000000e+04 / 0x0040ef800000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: 6.45110000000000000000e+04 / 0x0040ef7fe000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: 4.91520000000000000000e+04 / 0x0040e8000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: 4.81280000000000000000e+04 / 0x0040e7800000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: 3.27690000000000000000e+04 / 0x0040e0002000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: 3.27680000000000000000e+04 / 0x0040e0000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.53600000000000000000e+04 / 0x0040ce000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 3.17430000000000000000e+04 / 0x0040deffc000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 3.17440000000000000000e+04 / 0x0040df000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 3.17450000000000000000e+04 / 0x0040df004000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 3.19990000000000000000e+04 / 0x0040df3fc000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 3.27670000000000000000e+04 / 0x0040dfffc000000000 (0 => OK) +Converting single-precision to integer +00 SINGLE: -nan / 0xffa00000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 SINGLE: -nan / 0xffc00000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 SINGLE: -inf / 0xff800000 (0 => OK) +02 INT64: 1/0x000000000000000001 (0x1 => INVALID) +03 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +04 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +05 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +06 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +06 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +07 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +07 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +08 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +08 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 SINGLE: 2.98023223876953125000e-08 / 0x33000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +12 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +13 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +15 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +16 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +16 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +17 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +17 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +18 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +18 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +19 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +19 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +20 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +20 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT ) +21 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +21 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT ) +22 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +22 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT ) +23 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +23 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT ) +24 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +24 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT ) +25 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +25 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT ) +26 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +26 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +27 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +27 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +28 SINGLE: inf / 0x7f800000 (0 => OK) +28 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID) +29 SINGLE: nan / 0x7fc00000 (0 => OK) +29 INT64: 0/00000000000000000000 (0x1 => INVALID) +30 SINGLE: nan / 0x7fa00000 (0 => OK) +30 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting double-precision to integer +00 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +00 INT64: 0/00000000000000000000 (0x1 => INVALID) +01 DOUBLE: -nan / 0x00fff8000000000000 (0 => OK) +01 INT64: 0/00000000000000000000 (0x1 => INVALID) +02 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +02 INT64: 1/0x000000000000000001 (0x1 => INVALID) +03 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +03 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +04 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +04 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +05 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +05 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +06 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +06 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +07 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +07 INT64: 1/0x000000000000000001 (0x11 => INEXACT INVALID) +08 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +08 INT64: -2/0x00fffffffffffffffe (0x10 => INEXACT ) +09 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +09 INT64: -1/0x00ffffffffffffffff (0x10 => INEXACT ) +10 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +10 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +11 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +11 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +12 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +12 INT64: 0/00000000000000000000 (0 => OK) +13 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +13 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +14 DOUBLE: 2.98023224000000013060e-08 / 0x003e600000001c5f68 (0 => OK) +14 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +15 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +15 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +16 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +16 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +17 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +17 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +18 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +18 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +19 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +19 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +20 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +20 INT64: 0/00000000000000000000 (0x10 => INEXACT ) +21 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +21 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT ) +22 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +22 INT64: 0/00000000000000000000 (0x18 => UNDERFLOW INEXACT ) +23 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +23 INT64: 1/0x000000000000000001 (0x10 => INEXACT ) +24 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +24 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +25 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +25 INT64: 2/0x000000000000000002 (0x10 => INEXACT ) +26 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +26 INT64: 3/0x000000000000000003 (0x10 => INEXACT ) +27 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +27 INT64: 65503/0x00000000000000ffdf (0x10 => INEXACT ) +28 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +28 INT64: 65504/0x00000000000000ffe0 (0x10 => INEXACT ) +29 DOUBLE: 6.55050000000000000000e+04 / 0x0040effc2000000000 (0 => OK) +29 INT64: 65505/0x00000000000000ffe1 (0x10 => INEXACT ) +30 DOUBLE: 1.31007000000000000000e+05 / 0x0040fffbf000000000 (0 => OK) +30 INT64: 131007/0x00000000000001ffbf (0x10 => INEXACT ) +31 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +31 INT64: 131008/0x00000000000001ffc0 (0x10 => INEXACT ) +32 DOUBLE: 1.31009000000000000000e+05 / 0x0040fffc1000000000 (0 => OK) +32 INT64: 131009/0x00000000000001ffc1 (0x10 => INEXACT ) +33 DOUBLE: 2.14748364700000000000e+09 / 0x0041dfffffffc00000 (0 => OK) +33 INT64: 2147483647/0x00000000007fffffff (0x10 => INEXACT ) +34 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +34 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +35 DOUBLE: 3.40282346638528859811e+38 / 0x0047efffffe0000000 (0 => OK) +35 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +36 DOUBLE: 1.79769313486231570814e+308 / 0x007fefffffffffffff (0 => OK) +36 INT64: -1/0x00ffffffffffffffff (0x11 => INEXACT INVALID) +37 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +37 INT64: -1/0x00ffffffffffffffff (0x1 => INVALID) +38 DOUBLE: nan / 0x007ff8000000000000 (0 => OK) +38 INT64: 0/00000000000000000000 (0x1 => INVALID) +39 DOUBLE: nan / 0x007ff0000000000001 (0 => OK) +39 INT64: 0/00000000000000000000 (0x1 => INVALID) +40 DOUBLE: nan / 0x007ff4000000000000 (0 => OK) +40 INT64: 0/00000000000000000000 (0x1 => INVALID) +Converting half-precision to integer +00 HALF: 0xffff (0 => OK) +00 INT64: 65535/0x00000000000000ffff (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 INT64: 64767/0x00000000000000fcff (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 INT64: 64513/0x00000000000000fc01 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 INT64: 64512/0x00000000000000fc00 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 INT64: 64511/0x00000000000000fbff (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 INT64: 49152/0x00000000000000c000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 INT64: 48128/0x00000000000000bc00 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 INT64: 32769/0x000000000000008001 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 INT64: 32768/0x000000000000008000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 INT64: 0/00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 INT64: 1/0x000000000000000001 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 INT64: 15360/0x000000000000003c00 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 INT64: 31743/0x000000000000007bff (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 INT64: 31744/0x000000000000007c00 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 INT64: 31745/0x000000000000007c01 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 INT64: 31999/0x000000000000007cff (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 INT64: 32767/0x000000000000007fff (0 => OK) From patchwork Fri May 25 14:19:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920581 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="U8mitrtS"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spTB4xcnz9s0q for ; Sat, 26 May 2018 00:26:06 +1000 (AEST) Received: from localhost ([::1]:44329 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDfQ-0006D2-8K for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:26:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYv-0000wW-3I for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYr-0000Mt-4L for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:21 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:39005) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYq-0000MZ-UN for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:17 -0400 Received: by mail-wm0-x241.google.com with SMTP id f8-v6so15093905wmc.4 for ; Fri, 25 May 2018 07:19:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FYQ82Ou+xEFIXjJj+koAUVqk54LL9OfHKMd9SZja0do=; b=U8mitrtS4n+ovO9wVJ0wtAZKyuzqVHU6AzSbbt5+J+7/raNu8dczaL/CiILkjD7Rii NMBXIqOJ2S9z0fd+juiz734w+OcVtcUWbjJpvqlTo5cT4qQd2x7Dr1QYyOBD5sxgQrz+ 4yxjJaZRLGUtebUVa0LHteDRRobm3icPdYgRM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FYQ82Ou+xEFIXjJj+koAUVqk54LL9OfHKMd9SZja0do=; b=In6iKySzhOi/qXi9jX0alSulGx7ye8AO1jXuGg0J4/ZzhYlQOUxMrupFln15ulY152 EAF/5Nyd2niktiXOKlTihlFwaFdUEyeMGOYzkU4aCaYXES/mThpL4x8BVtMb4cByDe/D wAQzv7o1/kVrL4zaT/o1V26bA+1xC7PkEwb9tLoqxTneIqK+egACpgzUyH+1BgMF0i5G JrU3ssHrVv2kYl5cxON+BKLiFg6f97dGW8Q8nsLFZCSg1AnfhcyodWylDdtm3+vjt9Bl gbzczcS6jdfi0MlOk0GG3DmlTGw+0jIND7zlO/upl7lyk/3IblWNKJaSRimPjvVyQKTb czWA== X-Gm-Message-State: ALKqPwf8ldV61AsyogN4YCJrCHHt0YrIsDX28GWSlQfly9HpUBitri7v THV3ywz9EDB8mGy6KpyvyhmKkw== X-Google-Smtp-Source: ADUXVKKOjAcVoscdWPGQgqpORW8UzSGKseQ/d6i1VmWYtE3SyH9sFHf1MNNhWhxdcHLTKlGduu6nIg== X-Received: by 2002:a1c:ce0e:: with SMTP id e14-v6mr1720183wmg.87.1527257955911; Fri, 25 May 2018 07:19:15 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id g192-v6sm8944504wmd.36.2018.05.25.07.19.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id D03873E025C; Fri, 25 May 2018 15:19:10 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:01 +0100 Message-Id: <20180525141910.6384-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PATCH v5 30/49] tests/tcg: move MIPS specific tests into subdir X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yongbok Kim , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" These only need to be built for MIPS guests. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/tcg/README | 11 ----------- tests/tcg/mips/README | 7 +++++++ tests/tcg/{ => mips}/hello-mips.c | 0 3 files changed, 7 insertions(+), 11 deletions(-) create mode 100644 tests/tcg/mips/README rename tests/tcg/{ => mips}/hello-mips.c (100%) diff --git a/tests/tcg/README b/tests/tcg/README index 625f2326e6..a5643d33e7 100644 --- a/tests/tcg/README +++ b/tests/tcg/README @@ -3,17 +3,6 @@ regression testing. Tests are either multi-arch, meaning they can be built for all guest architectures that support linux-user executable, or they are architecture specific. - - -MIPS -==== - -hello-mips ----------- - -hello-mipsel ------------- - CRIS ==== The testsuite for CRIS is in tests/tcg/cris. You can run it diff --git a/tests/tcg/mips/README b/tests/tcg/mips/README new file mode 100644 index 0000000000..e5bbc58ec5 --- /dev/null +++ b/tests/tcg/mips/README @@ -0,0 +1,7 @@ +MIPS +==== + +hello-mips +---------- + +A very simple inline assembly, write syscall based hello world diff --git a/tests/tcg/hello-mips.c b/tests/tcg/mips/hello-mips.c similarity index 100% rename from tests/tcg/hello-mips.c rename to tests/tcg/mips/hello-mips.c From patchwork Fri May 25 14:19:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920584 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="N/Kpeu1v"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spXQ3KgKz9s19 for ; Sat, 26 May 2018 00:28:53 +1000 (AEST) Received: from localhost ([::1]:44343 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDi4-0008Vd-6E for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:28:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44347) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYv-0000x5-CX for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYu-0000Oc-Gx for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:21 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:35827) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYu-0000OH-Ao for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:20 -0400 Received: by mail-wr0-x241.google.com with SMTP id i14-v6so9546257wre.2 for ; Fri, 25 May 2018 07:19:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=68Rv+iZHkRid9jzXyBDyYkbCPm2jdgKrMR8EXPY/iTs=; b=N/Kpeu1vz5KLc7DQ+4mjQUbea7qGArtRfgk2s/SkegeBfeBs0qRemqbZaUFFwbaxOL /XDf4W3MTY1bS6SWV0czYcIjBopyoHWCeyymXDh7Hqdzo/m4eY+suwtLa0NG5hXX3a3i r/fE8CoISLojpu9AKW7aYU2OUcocJEnXgK1uA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=68Rv+iZHkRid9jzXyBDyYkbCPm2jdgKrMR8EXPY/iTs=; b=bBhoFJbSg6GjF9ZDw3ZTVDJQ9WaD8k7BEcCcCLCLRYNrTpnLXf7dUNqvNk3gIwGo3t RrixPj5RrF13A7fNAa1z/211HbJvKedFW5xVZMmjrN8OKud2/8YecHd6SG6xJi1b31q7 QOWC4JVbReLESueOJFMMVK4KgJJxuN4mPmu7QJHGBoHSGWDYm+6Qw1h17zJo701h9qp3 XKjddolG2r1CnFa3TP8T6NbqBT+vXkp4fAMrYaPXa/i9rYmpd+08cNbQKsCd3ItQY+vD U0CYit0V9ZAPMynlUnAOvwj0WoFaiGUfyirBX5Q0EqFZH24Dyb1VXRzpk+NKTNZ0HaJi 3C5w== X-Gm-Message-State: ALKqPwd0Yh+M3j65cpgvbwHrpfesP300vPTd/V6+IJ6afNFT6X+CfQBl D5bG1V4SC3hiPDd6PUpvxrtIDA== X-Google-Smtp-Source: AB8JxZqFTNv98qaMGfAI9lNIrIqJI7jWdTtWh/Qcw/SKvGlfDlgR0DzSVmM8fkwamcW5c2G4kiWdIg== X-Received: by 2002:adf:9986:: with SMTP id y6-v6mr2542127wrb.40.1527257959347; Fri, 25 May 2018 07:19:19 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id y11-v6sm17802876wrc.93.2018.05.25.07.19.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id E2B5D3E027A; Fri, 25 May 2018 15:19:10 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:02 +0100 Message-Id: <20180525141910.6384-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PATCH v5 31/49] tests/tcg: enable building for MIPS X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yongbok Kim , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This doesn't add any additional tests but enables building the multiarch tests for MIPS using docker cross compilers. We don't have a cross compiler for mips64 big endian though. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/tcg/mips/Makefile.include | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/tcg/mips/Makefile.include diff --git a/tests/tcg/mips/Makefile.include b/tests/tcg/mips/Makefile.include new file mode 100644 index 0000000000..a9beceb623 --- /dev/null +++ b/tests/tcg/mips/Makefile.include @@ -0,0 +1,17 @@ +# +# Makefile.include for all MIPs targets +# +# As Debian doesn't support mip64 in big endian mode the only way to +# build BE is to pass a working cross compiler to ./configure +# + +ifeq ($(TARGET_NAME),mips64el) +DOCKER_IMAGE=debian-mips64el-cross +DOCKER_CROSS_COMPILER=mips64el-linux-gnuabi64-gcc +else ifeq ($(TARGET_NAME),mipsel) +DOCKER_IMAGE=debian-mipsel-cross +DOCKER_CROSS_COMPILER=mipsel-linux-gnu-gcc +else ifeq ($(TARGET_NAME),mips) +DOCKER_IMAGE=debian-mips-cross +DOCKER_CROSS_COMPILER=mips-linux-gnu-gcc +endif From patchwork Fri May 25 14:19:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920574 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="HV5Pwib5"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spPd2S93z9ry1 for ; Sat, 26 May 2018 00:23:01 +1000 (AEST) Received: from localhost ([::1]:44306 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDcQ-0003ZP-UR for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:22:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44362) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYw-0000yP-Bm for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYv-0000PH-JC for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:22 -0400 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:52523) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYv-0000Om-Dc for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:21 -0400 Received: by mail-wm0-x229.google.com with SMTP id 18-v6so9303944wml.2 for ; Fri, 25 May 2018 07:19:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MM6cWQOsF9gaa9/GYE6L9ZxnUB8dkPkHAJM+3V/pENU=; b=HV5Pwib5rQQXetc+PZhZ7TJBMjdwMdxbORWfLd1G7zJASxWR7RQUB+Hw+rbxQNKwEy X9/8PfDg0ao68mVErXlzTpnQ+EX4uKwrsxQcTNUgtqSiXb3+fjU/e/fQIpCCF+0JFXkj yacGnZJ6T+mqN7nyNGYxc2yCqAcqzr4CRpxfY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MM6cWQOsF9gaa9/GYE6L9ZxnUB8dkPkHAJM+3V/pENU=; b=ewzruClxnN5Fv8AoHsTIyCmP1BrHlbcslu8hR7LE9qhIlKsN3c+38gPbE82ZfYDm63 c8+/NKkELEb2XzTNO409d8xXLWXJAlgMYmeZbnjhOQV0RLC0YDDPg3wZh5xe63pzSf0/ vqpempRhT/oMMSH01aoywye/15OO53azYkJMUb4ZW986UYC1Duu2C1NhSLSA3IpRgQoS eJ1nCJvK3PWCR5pFVbn/YG18F72gfsT+7A4Jh3XBKAl2l0rjMpGeIRi+A0Bqz0Xvm22T C8AUioRZviyDgMybyGgOPq7eKZouYIlZXn/wU3aPaOQevMCPpujVjrslpToYxIBWq8g8 WNSA== X-Gm-Message-State: ALKqPwd/ntRp8izf3XNTMq3uWR6KmJKGL6D2P3YTiGjIiGlBZz37/DR6 Gz3PzkbV5OOVL2fUgDAqbBqJZsL/dXA= X-Google-Smtp-Source: ADUXVKLs4fw8jIW6xecujPmIXbVBRREMTGUMXsh/p82cJ8zYhb9LG4XBIM0CxqikyB8NbMa2ks5xVQ== X-Received: by 2002:a1c:1103:: with SMTP id 3-v6mr1875997wmr.26.1527257960328; Fri, 25 May 2018 07:19:20 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id h188-v6sm7687035wmf.8.2018.05.25.07.19.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 00E0A3E02DF; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:03 +0100 Message-Id: <20180525141910.6384-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::229 Subject: [Qemu-devel] [PATCH v5 32/49] tests/tcg/mips: include common mips hello-mips X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yongbok Kim , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/tcg/mips/Makefile.target | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/tcg/mips/Makefile.target diff --git a/tests/tcg/mips/Makefile.target b/tests/tcg/mips/Makefile.target new file mode 100644 index 0000000000..71f0c2dd53 --- /dev/null +++ b/tests/tcg/mips/Makefile.target @@ -0,0 +1,19 @@ +# -*- Mode: makefile -*- +# +# MIPS - included from tests/tcg/Makefile.target +# + +MIPS_SRC=$(SRC_PATH)/tests/tcg/mips + +# Set search path for all sources +VPATH += $(MIPS_SRC) + +MIPS_TESTS=hello-mips + +TESTS += $(MIPS_TESTS) + +hello-mips: CFLAGS+=-ffreestanding +hello-mips: LDFLAGS+=-nostdlib + +# For MIPS32 and 64 we have a bunch of extra tests in sub-directories +# however they are intended for system tests. From patchwork Fri May 25 14:19:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920578 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Cn4pA/V1"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spSs6w3lz9ry1 for ; Sat, 26 May 2018 00:25:49 +1000 (AEST) Received: from localhost ([::1]:44319 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDf9-0005ur-J1 for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:25:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44378) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYx-0000za-PB for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYx-0000RL-0w for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:23 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:40065) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYw-0000QU-Qz for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:22 -0400 Received: by mail-wm0-x242.google.com with SMTP id x2-v6so7703481wmh.5 for ; Fri, 25 May 2018 07:19:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YRxyJ/7zVX4/ASMms652O387Lj40DoQpsN3YhmzacRI=; b=Cn4pA/V1dICzTiXs6BNWAHnjCxicHcBtEKJzNemwIDZxp44AiMXVvC2mAaaTv826Qt u5Z40pIjUlsJs+s9dNMUeiLsSo9g5Ogeaj+gvoIT7FhBqBniv1ylBiIh84RmLxw+kenP GbkIrmQ5a6FaqjQ1zgwpCOxd65pvZMG/MgFvE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YRxyJ/7zVX4/ASMms652O387Lj40DoQpsN3YhmzacRI=; b=dsU1otxj4q7qIVNW7dJOe+5xQiXA0csrxj9RANZIyDs1hTSl688DeU1efimfd+5x57 iggSYAbcQcQdAYOEfTPmDWOEz+N7pM9m++ecwXioajTRtZv7Fxx2iC5mZYl4QiNiyKVA q250g+KFnADqp6FRXeTyaFLOlepZMtBgTjnDVjl5RKyXE8W68MkZpSJBmhAnialpu1nY rW67rCmVNWHFrUXlBTTCtBkiPPLYT2MtsJXsp1CbrQL76y9IRfFvtNQ5TzafNntFpk65 htF6M1ZcQRYd3a5g3cwiaxs2OkzuwsQ6rrdDCvzYzrIGJn153x4zOuHhummfkUTAtW1g GfGw== X-Gm-Message-State: ALKqPwcSIufaCwlSeBkZx2NCSwat0pMLT8a+0vWJQHpeP63nUcu98hKl dlmH3ot68l7CUYjyCJ5rXQGHGA== X-Google-Smtp-Source: ADUXVKJyH0Y093OUmIR88ZhOasC6dabxJ76vfrnXLldDX4TwSa2xESGY6zTOFzVIYtdX9YJnZy8BVQ== X-Received: by 2002:a1c:8795:: with SMTP id j143-v6mr2152786wmd.149.1527257961760; Fri, 25 May 2018 07:19:21 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id g78-v6sm8854020wmc.27.2018.05.25.07.19.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 13F873E0312; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:04 +0100 Message-Id: <20180525141910.6384-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PATCH v5 33/49] tests/tcg: enable building for s390x X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "open list:S390" , Cornelia Huck , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This doesn't add any additional tests but enables building the multiarch tests for s390x. Signed-off-by: Alex Bennée Acked-by: Cornelia Huck Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: David Hildenbrand --- tests/tcg/s390x/Makefile.include | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tests/tcg/s390x/Makefile.include diff --git a/tests/tcg/s390x/Makefile.include b/tests/tcg/s390x/Makefile.include new file mode 100644 index 0000000000..1f58115d96 --- /dev/null +++ b/tests/tcg/s390x/Makefile.include @@ -0,0 +1,2 @@ +DOCKER_IMAGE=debian-s390x-cross +DOCKER_CROSS_COMPILER=s390x-linux-gnu-gcc From patchwork Fri May 25 14:19:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920575 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="ht0+rfW5"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spPn0xMgz9ry1 for ; Sat, 26 May 2018 00:23:09 +1000 (AEST) Received: from localhost ([::1]:44309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDcY-0003hi-L9 for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:23:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44395) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDYz-00011F-21 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYy-0000Rv-5V for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:25 -0400 Received: from mail-wr0-x22a.google.com ([2a00:1450:400c:c0c::22a]:44541) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYx-0000RS-WC for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:24 -0400 Received: by mail-wr0-x22a.google.com with SMTP id y15-v6so9546195wrg.11 for ; Fri, 25 May 2018 07:19:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=N+Yt0V8P8ncsq0xlCoJleeiWA+dT2h31z2H2F2pLSIk=; b=ht0+rfW5FjzjUI5pQELnQ0IGkQ5ynZkf4Ae2hv09dJ0N8A1Hw1cHScy0nL9hH8YAe3 KmbeUMeYRc9q3lB/xzC5e0q1I+8g1tz0JvlqlKHr0xzj2ssFQpDAshrlIQ04Nislznpb ATNW6q4vM3UzaC3oh+GdVYLXOWttn9D/ZqqCw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=N+Yt0V8P8ncsq0xlCoJleeiWA+dT2h31z2H2F2pLSIk=; b=opnibzZUFEKVtnHhGFgYJsMqxLP1lhRdD9pxhGeKWq34kH4+FueBwcY1weLvffZ1wR mPiWZ4PM1TUZ7JBYStyE7iTJ76IxT66TqZ+NfSzqf0FTbr2o5k+Zc7RA2PHTL8P14iBs j2cZlSkU9Gimi9aeTtmgMWm3FHnP8KI5YVupwghCdhxu5dBz09E9USw68aKahwXZa6Y5 vuWh7MPnixFlYhktymVj0F/kF5rYQ9v4FZgJasSDNHy/QuCc7B35NfGRBdJzjrbSw3C4 6075P+xk+XV70U8IqhezP+UKjt38oyBlVhGJH3gpW1VLeAjLBwfMAlLMuXrSLU6ahZtY nXQA== X-Gm-Message-State: ALKqPwenP6Irh3LBJN+IFkdowK/VRfHFktCX+gHvyWm4fFTxTywopcY0 gZjabKdjn73C7ORbbeCRJpthFA== X-Google-Smtp-Source: AB8JxZomP7N7Tf+vJ9we4KCNtht9ocLJbFq7XfVqF/l2Pdrsng63GxCqmgtEnaoFarA+aPCApyyuMQ== X-Received: by 2002:adf:bf08:: with SMTP id p8-v6mr2317825wrh.166.1527257962932; Fri, 25 May 2018 07:19:22 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id z63-v6sm33355536wrb.34.2018.05.25.07.19.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 267FD3E05B2; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:05 +0100 Message-Id: <20180525141910.6384-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22a Subject: [Qemu-devel] [PATCH v5 34/49] tests/tcg: enable building for ppc64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Currently this just enables building the multiarch tests. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/tcg/ppc64le/Makefile.include | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tests/tcg/ppc64le/Makefile.include diff --git a/tests/tcg/ppc64le/Makefile.include b/tests/tcg/ppc64le/Makefile.include new file mode 100644 index 0000000000..d71cfc9aa7 --- /dev/null +++ b/tests/tcg/ppc64le/Makefile.include @@ -0,0 +1,2 @@ +DOCKER_IMAGE=debian-ppc64el-cross +DOCKER_CROSS_COMPILER=powerpc64le-linux-gnu-gcc From patchwork Fri May 25 14:19:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920586 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="RzI/EYOq"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spXh6V5Mz9ry1 for ; Sat, 26 May 2018 00:29:08 +1000 (AEST) Received: from localhost ([::1]:44345 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDiM-0000Mn-I0 for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:29:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44407) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ0-00014n-O6 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDYz-0000Sy-Gh for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:26 -0400 Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]:38475) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDYz-0000SA-7t for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:25 -0400 Received: by mail-wm0-x236.google.com with SMTP id m129-v6so15023203wmb.3 for ; Fri, 25 May 2018 07:19:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SQCr6kmDjbtMa+C1oVYfdS/Eno6CUQWt/elYZsMYURI=; b=RzI/EYOqnWSndQ7ZCSEx6QLaPUqA0PsQmp4EqcAZnrhqw+LZTUIyHv/jYBJ6MquvpC rZ9GYhvaQhvQ3uceAeW95JfSwSnbTR0c05siPAWFvsrahZkiPwV3cVxHmuvZYiHDKbHi DAoQ74HBH8ljJIxMfTGX756Xop6+rVj/OZaoM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SQCr6kmDjbtMa+C1oVYfdS/Eno6CUQWt/elYZsMYURI=; b=uFYeK5Ry1m2dBVHLjguFxCTbLwEnCO1QHXaoAFnBADer0o6429ZYZD8+ySG0QtPtD0 R28tRbmEnTg8PpuLJJDthTEe/OI9Ey4BWYnHJsJrq5lqWARZY7CeTdVNtKcJ02t2ESqn QxaK6rMEzuWiwrMhuWrjzwWUZdQcTIqA7wSleS1vb9yhaKx/RMAHEIJ3kJjRnrp53glt gVtEFm9dZQ2/d0FgF+O3P2X7zFHtWQR+eQXoYMY0j7cDGcnJcNG2WBkizuQmWFkVW1Tk lhZ773xeqJJT4CmdXCmALgC4FxRHmGDxkorNoWDn91Fi95Zz7F6V5ef6aEV0qHm8RtNN JseA== X-Gm-Message-State: ALKqPwdOZWsZhgxa+2pgKuTBqwz8hJk6punWLeHC/3uUnV6GmivtFzyE ef0uuOInYCud4Ze1wKD5tIl+mQ== X-Google-Smtp-Source: ADUXVKJJpUNVcJYFF4/YaA12MVvNNfFLCaIiwt6i0izZN8cIfrmz0VCRG3y3Vn2fPi1iNT7NomOeew== X-Received: by 2002:a1c:36e9:: with SMTP id y102-v6mr1885867wmh.152.1527257964134; Fri, 25 May 2018 07:19:24 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id s7-v6sm16848546wrc.5.2018.05.25.07.19.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3E2283E0736; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:06 +0100 Message-Id: <20180525141910.6384-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::236 Subject: [Qemu-devel] [PATCH v5 35/49] tests/tcg: enable building for Alpha X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We can't use our normal Debian based compilers as Alpha isn't an officially supported architecture. However it is available as a port and fortunately cross compilers for all these targets are included in Debian Sid, the perpetual rolling/unstable/testing version of Debian. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v5 - drop the unused debian-cross-build docker image - add note to debian-sid docker image - echo reference to notes on build failure - include EXTRA_RUNS for mmap tests --- tests/docker/Makefile.include | 1 + .../dockerfiles/debian-alpha-cross.docker | 12 +++++++ tests/docker/dockerfiles/debian-sid.docker | 32 +++++++++++++++++++ tests/tcg/alpha/Makefile.include | 2 ++ tests/tcg/alpha/Makefile.target | 6 ++++ 5 files changed, 53 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-alpha-cross.docker create mode 100644 tests/docker/dockerfiles/debian-sid.docker create mode 100644 tests/tcg/alpha/Makefile.include create mode 100644 tests/tcg/alpha/Makefile.target diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index b56386f49e..5dc49c6a54 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -62,6 +62,7 @@ docker-image-debian-ppc64el-cross: docker-image-debian9 docker-image-debian-s390x-cross: docker-image-debian9 docker-image-debian-win32-cross: docker-image-debian8-mxe docker-image-debian-win64-cross: docker-image-debian8-mxe +docker-image-debian-alpha-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-alpha-cross.docker b/tests/docker/dockerfiles/debian-alpha-cross.docker new file mode 100644 index 0000000000..29a25d0dfd --- /dev/null +++ b/tests/docker/dockerfiles/debian-alpha-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-alpha-linux-gnu \ + libc6.1-dev-alpha-cross || { echo "Failed to build - see debian-sid.docker notes"; exit 1; } diff --git a/tests/docker/dockerfiles/debian-sid.docker b/tests/docker/dockerfiles/debian-sid.docker new file mode 100644 index 0000000000..9a3d168705 --- /dev/null +++ b/tests/docker/dockerfiles/debian-sid.docker @@ -0,0 +1,32 @@ +# +# Debian Sid Base +# +# A number of our guests exist as ports only. We can either use the +# ports repo or get everything from Sid. However Sid is a rolling +# distro which may be broken at any particular time. If you are +# unlucky and try and build your images while gcc is in the process of +# being uploaded this can fail. Your only recourse is to try again in +# a few hours when the repos have re-synced. Once built however you +# won't be affected by repo changes unless the docker recipies are +# updated and trigger a re-build. +# + +FROM debian:sid-slim + +# Duplicate deb line as deb-src +RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list + +# Install common build utilities +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt install -y --no-install-recommends \ + bison \ + build-essential \ + ca-certificates \ + flex \ + git \ + pkg-config \ + psmisc \ + python \ + texinfo || { echo "Failed to build - see debian-sid.docker notes"; exit 1; } diff --git a/tests/tcg/alpha/Makefile.include b/tests/tcg/alpha/Makefile.include new file mode 100644 index 0000000000..c7dc48eadb --- /dev/null +++ b/tests/tcg/alpha/Makefile.include @@ -0,0 +1,2 @@ +DOCKER_IMAGE=debian-alpha-cross +DOCKER_CROSS_COMPILER=alpha-linux-gnu-gcc diff --git a/tests/tcg/alpha/Makefile.target b/tests/tcg/alpha/Makefile.target new file mode 100644 index 0000000000..bedf1b6444 --- /dev/null +++ b/tests/tcg/alpha/Makefile.target @@ -0,0 +1,6 @@ +# -*- Mode: makefile -*- +# +# Alpha specific tweaks + +# On Alpha Linux only supports 8k pages +EXTRA_RUNS+=run-test-mmap-8192 From patchwork Fri May 25 14:19:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920587 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="djNyMSAZ"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spYC1wNWz9ry1 for ; Sat, 26 May 2018 00:29:35 +1000 (AEST) Received: from localhost ([::1]:44346 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDim-0000iF-Sj for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:29:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44445) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ5-00018J-IB for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDZ1-0000Xo-JD for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:31 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:46219) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDZ1-0000W2-Ce for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:27 -0400 Received: by mail-wr0-x243.google.com with SMTP id x9-v6so9541693wrl.13 for ; Fri, 25 May 2018 07:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OK4P3HsaBQrLksTqWWECnHmwCrduw6xPbr2u3lhUlDU=; b=djNyMSAZANljAbCyV6L347Jwef+l5FyNs1ICWBnqQ2CakisWiLuKs8s3RuTfeA2Ohk QsTk3j/YEe75McJNnBy0Pv3/ilhCJt4a0E5s+fXJ8pA3W6W8fW4J3e7ZgE7z9zJtNZ79 qjOM6+9ZXpYPB6Bw2Zc6U4LYklJulBvM2+KG8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OK4P3HsaBQrLksTqWWECnHmwCrduw6xPbr2u3lhUlDU=; b=MFUQa7W7XEsbxRsHNa6v1S+8Oqgc1f+BkZtnuLZ4Om2DuXWRJeMy8DPQnnMvZMtuLO 41X2AKc3X8VDKb9z0V4O5O6Rj+RFuBAfL4rNAByQbeM+BkSTfgTzjG9quP6cyhNMnb7h zqN9zr3NtndstjCLh+MACRxSW5rlai23k0Ub2oB0s40bxD/LrWuyophle4L4Ssw2SnrI v9R6669KU9xp8qOtz4cdxOZYz8LxvFcewTRre1Y17EbJ5us4kPTRVK3QMrzrv+rkggyW T+Sak6PsNbj5up3k6mL+2USY/t4yn83ntNAUr1tA8hyRgHcZjWZ00pTI6UDo4uBNfvUk AG/Q== X-Gm-Message-State: ALKqPwfmthQPKycR+3GPUVYELNRFeIdQCdXZdPMd1RimMn3xAyyWIFW6 s61ApSrdSZE6zAMEVra1gF3ruQ== X-Google-Smtp-Source: AB8JxZq8pth+xcVWvbT4OOQqojTNdNkzGe9o7KecLMvkHrD5ngeNsEAmdyE0MHUaXwucQ9YuffNCoQ== X-Received: by 2002:adf:c7ca:: with SMTP id y10-v6mr2236220wrg.104.1527257966375; Fri, 25 May 2018 07:19:26 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 4-v6sm9837513wmg.8.2018.05.25.07.19.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 55B743E069A; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:07 +0100 Message-Id: <20180525141910.6384-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 36/49] tests/tcg/alpha: add Alpha specific tests X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org, Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" These tests did use their own crt.o stub however that is a little stone age so we drop crt.S and just statically link to the cross compilers libraries. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v4 - drop crt.s - drop skipping of threadtest - drop write() hack, include unistd.h v5 - merge fixes --- tests/tcg/alpha/Makefile | 35 --------------------------------- tests/tcg/alpha/Makefile.target | 12 +++++++++++ tests/tcg/alpha/crt.s | 26 ------------------------ tests/tcg/alpha/hello-alpha.c | 2 ++ tests/tcg/alpha/test-cond.c | 1 + tests/tcg/alpha/test-ovf.c | 2 ++ 6 files changed, 17 insertions(+), 61 deletions(-) delete mode 100644 tests/tcg/alpha/Makefile delete mode 100644 tests/tcg/alpha/crt.s diff --git a/tests/tcg/alpha/Makefile b/tests/tcg/alpha/Makefile deleted file mode 100644 index 2b1f03d048..0000000000 --- a/tests/tcg/alpha/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -CROSS=alpha-linux-gnu- -CC=$(CROSS)gcc -AS=$(CROSS)as - -SIM=../../alpha-linux-user/qemu-alpha - -CFLAGS=-O -LINK=$(CC) -o $@ crt.o $< -nostdlib - -TESTS=test-cond test-cmov - -all: hello-alpha $(TESTS) - -hello-alpha: hello-alpha.o crt.o - $(LINK) - -test-cond: test-cond.o crt.o - $(LINK) - -test-cmov.o: test-cond.c - $(CC) -c $(CFLAGS) -DTEST_CMOV -o $@ $< - -test-cmov: test-cmov.o crt.o - $(LINK) - -test-ovf: test-ovf.o crt.o - $(LINK) - -check: $(TESTS) - for f in $(TESTS); do $(SIM) $$f || exit 1; done - -clean: - $(RM) *.o *~ hello-alpha $(TESTS) - -.PHONY: clean all check diff --git a/tests/tcg/alpha/Makefile.target b/tests/tcg/alpha/Makefile.target index bedf1b6444..a585080328 100644 --- a/tests/tcg/alpha/Makefile.target +++ b/tests/tcg/alpha/Makefile.target @@ -2,5 +2,17 @@ # # Alpha specific tweaks +ALPHA_SRC=$(SRC_PATH)/tests/tcg/alpha +VPATH+=$(ALPHA_SRC) + +ALPHA_TESTS=hello-alpha test-cond test-cmov test-ovf +TESTS+=$(ALPHA_TESTS) + +test-cmov: EXTRA_CFLAGS=-DTEST_CMOV +test-cmov: test-cond.c + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) + +run-test-cmov: test-cmov + # On Alpha Linux only supports 8k pages EXTRA_RUNS+=run-test-mmap-8192 diff --git a/tests/tcg/alpha/crt.s b/tests/tcg/alpha/crt.s deleted file mode 100644 index 31af8825bc..0000000000 --- a/tests/tcg/alpha/crt.s +++ /dev/null @@ -1,26 +0,0 @@ - .text - - .globl _start - .ent _start,0 -_start: - .frame $15,0,$15 - br $29,1f -1: ldgp $29, 0($29) - .prologue 0 - ldq $27,main($29) !literal!1 - jsr $26,($27) - or $0,$0,$16 - .end _start - - .globl _exit -_exit: - lda $0,1 - callsys - - call_pal 0 - - .globl write -write: - lda $0,4 - callsys - ret diff --git a/tests/tcg/alpha/hello-alpha.c b/tests/tcg/alpha/hello-alpha.c index 79892e6522..84e43b2fc4 100644 --- a/tests/tcg/alpha/hello-alpha.c +++ b/tests/tcg/alpha/hello-alpha.c @@ -1,3 +1,5 @@ +#include + int main (void) { write (1, "hello\n", 6); diff --git a/tests/tcg/alpha/test-cond.c b/tests/tcg/alpha/test-cond.c index 74adffaa69..e625313b3e 100644 --- a/tests/tcg/alpha/test-cond.c +++ b/tests/tcg/alpha/test-cond.c @@ -1,3 +1,4 @@ +#include #ifdef TEST_CMOV diff --git a/tests/tcg/alpha/test-ovf.c b/tests/tcg/alpha/test-ovf.c index 01c80e7525..17892f1e89 100644 --- a/tests/tcg/alpha/test-ovf.c +++ b/tests/tcg/alpha/test-ovf.c @@ -1,3 +1,5 @@ +#include + static long test_subqv (long a, long b) { long res; From patchwork Fri May 25 14:19:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920580 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="hr1V2lZ4"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spSz2pl1z9s0q for ; Sat, 26 May 2018 00:25:55 +1000 (AEST) Received: from localhost ([::1]:44324 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDfE-000601-US for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:25:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ1-00015i-He for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDZ0-0000V9-G9 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:27 -0400 Received: from mail-wr0-x22e.google.com ([2a00:1450:400c:c0c::22e]:36940) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDZ0-0000TH-9k for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:26 -0400 Received: by mail-wr0-x22e.google.com with SMTP id i12-v6so9563279wrc.4 for ; Fri, 25 May 2018 07:19:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CwmUPvh0EVnpzo6WEx+YMD/jjCc406YUC453Zas0RZY=; b=hr1V2lZ4GKAhlJrDogJSdky8WIj+9Wzajg28DBekUSDoK5Rk8BMiBuLn2jb40D7534 xvi1kKwo8O6gbE4kP4/tXjsfvo2C+aygjj8DYHPrbN7s4uWQn9K/nrJonIwno+/82Pvj f753rnuaAPb2phpQyvYNFIt+q+kVHESTJzKDc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CwmUPvh0EVnpzo6WEx+YMD/jjCc406YUC453Zas0RZY=; b=ET1Mgj2wMFVK0fZhA6CWJ2bZ60rPpnCGjiCsF0Va+rkT/13LBI6bT+oHeIIFghU6h/ YuLFW1P7q8AhQy340kfOLjAnpTD2M3P20bQQuCTD4q8zx5MEJkXem91ZpiwWPMOA5lrb 6447H5lUTAoCbc9qS3KDIzkXctoZ6QryVOT+XCi4gBnsGnhE0Kt1ZFOM4hJP4UNSpCGA S6AJjuj2V5IyWBWrGruLCDNbhBYurGk+5NZ9yZ0s3t+DRut0caoFiycRZ9U/gyyPSTWr wflhnjCKWCr1++z0oiPq1XDPYYyG7+qc5AzvRWm0641pu/D+tlBKhhEPc7lVCYqgjMgF CYXg== X-Gm-Message-State: ALKqPwc+1POvWFKbGtnug29EUXnahsO4Ko7pQnntc5I3opAnd9SbXry5 oXkra7CvLC/AdgeTNls0mW+atxE6rCw= X-Google-Smtp-Source: AB8JxZpd1O01FbIIKNnMssIwkg1aiP3sCJPHiwbD4LcNvL1nM+kfp1bHnAasosKf85lslrMGZXgWqQ== X-Received: by 2002:adf:a54a:: with SMTP id j10-v6mr2722119wrb.155.1527257965235; Fri, 25 May 2018 07:19:25 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id k126-v6sm12500332wmd.45.2018.05.25.07.19.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 6BDB43E07B5; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:08 +0100 Message-Id: <20180525141910.6384-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22e Subject: [Qemu-devel] [PATCH v5 37/49] tests/tcg: enable building for HPPA X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v5 - add EXTRA_RUNS for mmap tests --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-hppa-cross.docker | 12 ++++++++++++ tests/tcg/hppa/Makefile.include | 2 ++ tests/tcg/hppa/Makefile.target | 6 ++++++ 4 files changed, 21 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-hppa-cross.docker create mode 100644 tests/tcg/hppa/Makefile.include create mode 100644 tests/tcg/hppa/Makefile.target diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 5dc49c6a54..4200988d01 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -63,6 +63,7 @@ docker-image-debian-s390x-cross: docker-image-debian9 docker-image-debian-win32-cross: docker-image-debian8-mxe docker-image-debian-win64-cross: docker-image-debian8-mxe docker-image-debian-alpha-cross: docker-image-debian-sid +docker-image-debian-hppa-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-hppa-cross.docker b/tests/docker/dockerfiles/debian-hppa-cross.docker new file mode 100644 index 0000000000..ad443defac --- /dev/null +++ b/tests/docker/dockerfiles/debian-hppa-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-hppa-linux-gnu \ + libc6-dev-hppa-cross diff --git a/tests/tcg/hppa/Makefile.include b/tests/tcg/hppa/Makefile.include new file mode 100644 index 0000000000..da2353430e --- /dev/null +++ b/tests/tcg/hppa/Makefile.include @@ -0,0 +1,2 @@ +DOCKER_IMAGE=debian-hppa-cross +DOCKER_CROSS_COMPILER=hppa-linux-gnu-gcc diff --git a/tests/tcg/hppa/Makefile.target b/tests/tcg/hppa/Makefile.target new file mode 100644 index 0000000000..8bf01966bd --- /dev/null +++ b/tests/tcg/hppa/Makefile.target @@ -0,0 +1,6 @@ +# -*- Mode: makefile -*- +# +# HPPA specific tweaks - specifically masking out broken tests + +# On parisc Linux supports 4K/16K/64K (but currently only 4k works) +EXTRA_RUNS+=run-test-mmap-4096 # run-test-mmap-16384 run-test-mmap-65536 From patchwork Fri May 25 14:19:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920589 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="ih+x2a8L"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spc700t6z9ry1 for ; Sat, 26 May 2018 00:32:06 +1000 (AEST) Received: from localhost ([::1]:44364 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDlE-00034v-Ho for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:32:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44446) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ5-00018N-J3 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDZ3-0000Zd-27 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:31 -0400 Received: from mail-wm0-x22d.google.com ([2a00:1450:400c:c09::22d]:38468) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDZ2-0000Yb-SS for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:29 -0400 Received: by mail-wm0-x22d.google.com with SMTP id m129-v6so15023728wmb.3 for ; Fri, 25 May 2018 07:19:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7e5KLfffM6GttDB2R639eGyORYo4nzmXWcfUfXs3W2E=; b=ih+x2a8LevbzCbBh46e3V3/JvA9bvR2FAykQ6A9v0WL1G41k6qAEqxTL/3nd9pR1vd sjuUcGqhicQ5gkrpJTgJXELw+L/ijgSdisiZBrp9ELa0i8vg3Q9tH2cF5HxFXHQhxe/e OmiiBIRnXS1Nf0QkAj+QjxcnUr67M/Cy7IgXw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7e5KLfffM6GttDB2R639eGyORYo4nzmXWcfUfXs3W2E=; b=ledQ6kH1JE65cs08+dVkZm7yTuPS5uxbexMNwTzQXd0t0s6F8vAKa/57rtlrAWPpDN U+wGEm58s8DJe5RYWmPymmVnZ6b7LS2+pOl8aVpXvcD0//1TK2txrjBdyFd/+ZEYgj79 yT83aOEYJrgRiqzL2w0HO4XFePAJ6pCmEoL30e2Ep+YxNgMbhgc62kX2ghG53gZokE9g kAP0Um+WVrj8BO36tiJSgpLxMPX5RyCeYWhmaW/HcOXtan1hLnNDNnrWsL7pztkIKsGW clmi3QjCvHjPzUThWofd5GXdVblaiZW89fTq9o5HaRDWxgxvSXlQJpsz7zF89UbTgak0 hoEg== X-Gm-Message-State: ALKqPwfE3JMTQQC0roo/UdcdljuNlDJ77QnsFkPgIvgpChmlPmLNeXYQ I3/usWchMvtjJGvLE0NQvPUWAQ== X-Google-Smtp-Source: ADUXVKIaIQrwo9OAJN1OK595KphYccLliWV3vIMOxZhQ8TeCIfinb/0QmrNSSJXR2oiIkV86pwQq3A== X-Received: by 2002:a1c:dca:: with SMTP id 193-v6mr1871288wmn.36.1527257967802; Fri, 25 May 2018 07:19:27 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 88-v6sm17715854wro.49.2018.05.25.07.19.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:14 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 827EE3E07B9; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:09 +0100 Message-Id: <20180525141910.6384-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::22d Subject: [Qemu-devel] [PATCH v5 38/49] tests/tcg: enable building for m68k X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As before, using Debian SID compilers. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v5 - add EXTRA_RUNS for mmap tests --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-m68k-cross.docker | 12 ++++++++++++ tests/tcg/m68k/Makefile.include | 2 ++ tests/tcg/m68k/Makefile.target | 7 +++++++ 4 files changed, 22 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-m68k-cross.docker create mode 100644 tests/tcg/m68k/Makefile.include create mode 100644 tests/tcg/m68k/Makefile.target diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 4200988d01..c85f085d9d 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -64,6 +64,7 @@ docker-image-debian-win32-cross: docker-image-debian8-mxe docker-image-debian-win64-cross: docker-image-debian8-mxe docker-image-debian-alpha-cross: docker-image-debian-sid docker-image-debian-hppa-cross: docker-image-debian-sid +docker-image-debian-m68k-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-m68k-cross.docker b/tests/docker/dockerfiles/debian-m68k-cross.docker new file mode 100644 index 0000000000..21ba3b0132 --- /dev/null +++ b/tests/docker/dockerfiles/debian-m68k-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-m68k-linux-gnu \ + libc6-dev-m68k-cross diff --git a/tests/tcg/m68k/Makefile.include b/tests/tcg/m68k/Makefile.include new file mode 100644 index 0000000000..cd7c6bf50d --- /dev/null +++ b/tests/tcg/m68k/Makefile.include @@ -0,0 +1,2 @@ +DOCKER_IMAGE=debian-m68k-cross +DOCKER_CROSS_COMPILER=m68k-linux-gnu-gcc diff --git a/tests/tcg/m68k/Makefile.target b/tests/tcg/m68k/Makefile.target new file mode 100644 index 0000000000..62f109eef4 --- /dev/null +++ b/tests/tcg/m68k/Makefile.target @@ -0,0 +1,7 @@ +# -*- Mode: makefile -*- +# +# m68k specific tweaks - specifically masking out broken tests +# + +# On m68k Linux supports 4k and 8k pages (but 8k is currently broken) +EXTRA_RUNS+=run-test-mmap-4096 # run-test-mmap-8192 From patchwork Fri May 25 14:19:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920605 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="eZiUQqaq"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40sprm4MSMz9rxs for ; Sat, 26 May 2018 00:43:04 +1000 (AEST) Received: from localhost ([::1]:44432 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDvq-0003Lf-84 for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:43:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45526) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeM-0005mq-ML for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeL-0003wA-JW for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:58 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:33878) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeL-0003vh-DG for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:57 -0400 Received: by mail-wr0-x244.google.com with SMTP id j1-v6so9584860wrm.1 for ; Fri, 25 May 2018 07:24:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=H9DFl6Z5s4o5L5UQPC28eTo9hevhwb8rqzaSjdj1zp8=; b=eZiUQqaq6lC4KW+QNC1SYvnkZqdfOoyHSEQoDBBUlRWHAHfi0PCAofvSRXjtXzqNSu dO20oYjXNwhw0lamYcEDLVZ2g7K2tkhApI6BKndqe8E+3b78NkMwloEw39lm7k83yE72 TlwpOXA8zornj9NqLAzlWL7mrHEPc6Mi4fraM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=H9DFl6Z5s4o5L5UQPC28eTo9hevhwb8rqzaSjdj1zp8=; b=ge1GzRUS6G5u7dl5urSasMN9EgmJcrUlc1gGi0Y5anxqBMCZoB8mglVau0H8RQ2vi6 CdKUCu/tIZLEo2OsgyBVFNHHus2InfG7asNkKerpJ4PaPbjP5Hu7da1ZcxADoCbeL9yL ZHTewsgs4dzTMoH8Iatx8V0sm1O5i60SJvVbpdjkqBvCKbwy9HTAXfRAm5DkPAMi77iT LOZ+SsZZUHmFySWB48cAXxJzHJ4A0N4zVD5Qeet6X0sWQZqGBeMQNMWV4v4qYWzdWf+n rkk7nTfBks/SOhqvjlDkTrVEPe33BDu2QJ/HLKay7IqGj+te8ZQzCSmR6qT1yv77cTb4 sjKg== X-Gm-Message-State: ALKqPwcd0dTuxt8sxGmjwhV0cTAkETMwGfYJY9aAPq5htUh/Snl/c+ch 1wyPK0kbyrGAxnJCSWJ+EauK1Q== X-Google-Smtp-Source: AB8JxZokcjLXd/PdrKHrgcFfJ6ggqURDj7uFQeH5U9pg+WvIbUuMfBAo3zWZ65Z0nXHWyuTMryQLdg== X-Received: by 2002:a5d:4045:: with SMTP id w5-v6mr2541660wrp.96.1527258296389; Fri, 25 May 2018 07:24:56 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id t198-v6sm8847327wmt.23.2018.05.25.07.24.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:54 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 9854D3E07C2; Fri, 25 May 2018 15:19:11 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:10 +0100 Message-Id: <20180525141910.6384-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141910.6384-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141910.6384-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PATCH v5 39/49] tests/tcg: enable building for sh4 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As before, using Debian SID compilers. While the compiler can be coerced into generating big-endian code it seems the linker can't deal with it so we only enable the building for little endian SH4. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v5 - add Makefile.target with EXTRA_RUNS for mmap tests --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-sh4-cross.docker | 12 ++++++++++++ tests/tcg/sh4/Makefile.include | 4 ++++ tests/tcg/sh4/Makefile.target | 7 +++++++ 4 files changed, 24 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-sh4-cross.docker create mode 100644 tests/tcg/sh4/Makefile.include create mode 100644 tests/tcg/sh4/Makefile.target diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index c85f085d9d..1eb34c1dd2 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -65,6 +65,7 @@ docker-image-debian-win64-cross: docker-image-debian8-mxe docker-image-debian-alpha-cross: docker-image-debian-sid docker-image-debian-hppa-cross: docker-image-debian-sid docker-image-debian-m68k-cross: docker-image-debian-sid +docker-image-debian-sh4-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-sh4-cross.docker b/tests/docker/dockerfiles/debian-sh4-cross.docker new file mode 100644 index 0000000000..88a2423094 --- /dev/null +++ b/tests/docker/dockerfiles/debian-sh4-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-sh4-linux-gnu \ + libc6-dev-sh4-cross diff --git a/tests/tcg/sh4/Makefile.include b/tests/tcg/sh4/Makefile.include new file mode 100644 index 0000000000..ad21594d9d --- /dev/null +++ b/tests/tcg/sh4/Makefile.include @@ -0,0 +1,4 @@ +ifneq ($(TARGET_NAME), sh4eb) +DOCKER_IMAGE=debian-sh4-cross +DOCKER_CROSS_COMPILER=sh4-linux-gnu-gcc +endif diff --git a/tests/tcg/sh4/Makefile.target b/tests/tcg/sh4/Makefile.target new file mode 100644 index 0000000000..9d18d44612 --- /dev/null +++ b/tests/tcg/sh4/Makefile.target @@ -0,0 +1,7 @@ +# -*- Mode: makefile -*- +# +# SuperH specific tweaks +# + +# On sh Linux supports 4k, 8k, 16k and 64k pages (but only 4k currently works) +EXTRA_RUNS+=run-test-mmap-4096 # run-test-mmap-8192 run-test-mmap-16384 run-test-mmap-65536 From patchwork Fri May 25 14:19:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920582 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="kE9Ic9Iq"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spX775M0z9ry1 for ; Sat, 26 May 2018 00:28:39 +1000 (AEST) Received: from localhost ([::1]:44339 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDht-0008NP-IU for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:28:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44479) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ6-00019t-P4 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDZ5-0000b9-P6 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:32 -0400 Received: from mail-wr0-x236.google.com ([2a00:1450:400c:c0c::236]:36860) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDZ5-0000aX-JF for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:31 -0400 Received: by mail-wr0-x236.google.com with SMTP id k5-v6so9548601wrn.3 for ; Fri, 25 May 2018 07:19:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gt/N8AysM+qDEJCZeyIWH1Cxjh7YSk4gVpPH2dVPu9k=; b=kE9Ic9IqZ++GevQAfpbohVlwZWJevQWYf0D1X0WLQ1Nw7/dq6TfzUR58Z2fJzk3aOL xOEA4SDhiktLw2xnzpsjNOF4fcxHNXHfoDwVBWhtSmqOCM8X09yDcm4LYnCmtGCdH3+r 4uMph+xfvslcBwGMlAqDvCi1VVX1MdKs5ZLkM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gt/N8AysM+qDEJCZeyIWH1Cxjh7YSk4gVpPH2dVPu9k=; b=R4wthiPZfzmXRezaUx+K0pkM4/sb/hsHQqpDvs1coWi3N9pjsYJZBdMZBEXw3dSYpt ChagFhs1CWmwpGDYoOXn3Tu4BdeeADIojX6RIf0MWGRK3HnHq0MBlZkBf6zQ/GoJ5EsY dR2X8OQ/5GZAIi0r6tUBg57FXaJn84e/VkUu8d7w6qYfecSOF+MTiGh52yY9ipEqcUjA zHMDpQAZ4OayuiIHG4+L79W57bSjmaHcOwwZP5xpq7oGMNhIjjaZYcgy5dS0XpICd20i wJ5DjDoKJnlUkYhMHS5p3pbTsh4bnuOHT5wt1SMR01ndfCMy2tXHjXkjFoh+i66FT45j boIA== X-Gm-Message-State: ALKqPwez5qE1RZRdVlRZPYAgf8fCBBhhLK9fil25mxOK47S9xErFmX6S JCIpjtnRBl51iesOSsTsizKUG4e8kJ8= X-Google-Smtp-Source: AB8JxZpeHxi1msj/pEBx8PjwbuGTBdB2mcWFWuEVBvHMGGl+avPN5bGRnHbIQLlThS4bngLE+8BYdA== X-Received: by 2002:adf:9d93:: with SMTP id p19-v6mr2669463wre.21.1527257970554; Fri, 25 May 2018 07:19:30 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id y11-v6sm17803037wrc.93.2018.05.25.07.19.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:27 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3A8933E06C7; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:06 +0100 Message-Id: <20180525141915.6497-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525133851.27161-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::236 Subject: [Qemu-devel] [PATCH v5 40/49] tests/tcg: enable building for sparc64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As before, using Debian SID compilers. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v5 - add Makefile with EXTRA_RUNS for mmap tests --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-sparc64-cross.docker | 12 ++++++++++++ tests/tcg/sparc64/Makefile.include | 2 ++ tests/tcg/sparc64/Makefile.target | 6 ++++++ 4 files changed, 21 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-sparc64-cross.docker create mode 100644 tests/tcg/sparc64/Makefile.include create mode 100644 tests/tcg/sparc64/Makefile.target diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 1eb34c1dd2..1dba05ed18 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -66,6 +66,7 @@ docker-image-debian-alpha-cross: docker-image-debian-sid docker-image-debian-hppa-cross: docker-image-debian-sid docker-image-debian-m68k-cross: docker-image-debian-sid docker-image-debian-sh4-cross: docker-image-debian-sid +docker-image-debian-sparc64-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-sparc64-cross.docker b/tests/docker/dockerfiles/debian-sparc64-cross.docker new file mode 100644 index 0000000000..1e2c809274 --- /dev/null +++ b/tests/docker/dockerfiles/debian-sparc64-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-sparc64-linux-gnu \ + libc6-dev-sparc64-cross diff --git a/tests/tcg/sparc64/Makefile.include b/tests/tcg/sparc64/Makefile.include new file mode 100644 index 0000000000..95fc8dee9f --- /dev/null +++ b/tests/tcg/sparc64/Makefile.include @@ -0,0 +1,2 @@ +DOCKER_IMAGE=debian-sparc64-cross +DOCKER_CROSS_COMPILER=sparc64-linux-gnu-gcc diff --git a/tests/tcg/sparc64/Makefile.target b/tests/tcg/sparc64/Makefile.target new file mode 100644 index 0000000000..408dace783 --- /dev/null +++ b/tests/tcg/sparc64/Makefile.target @@ -0,0 +1,6 @@ +# -*- Mode: makefile -*- +# +# sparc specific tweaks + +# On Sparc64 Linux support 8k pages +EXTRA_RUNS+=run-test-mmap-8192 From patchwork Fri May 25 14:19:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920590 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Oyh3Ghl7"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spcn2h6Rz9ry1 for ; Sat, 26 May 2018 00:32:41 +1000 (AEST) Received: from localhost ([::1]:44366 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDlm-0003TE-Tn for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:32:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44454) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ6-00019D-4e for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDZ4-0000aQ-Tn for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:32 -0400 Received: from mail-wr0-x230.google.com ([2a00:1450:400c:c0c::230]:42564) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDZ4-0000a4-Ni for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:30 -0400 Received: by mail-wr0-x230.google.com with SMTP id w10-v6so9548640wrk.9 for ; Fri, 25 May 2018 07:19:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/T/WIpST8iR4x/0W7N8Dw9UedppVzqgNaSstdJ4WVxM=; b=Oyh3Ghl7JTlbe83jp/BWi8uVAMu/+fstrOlFVZUqu9kkPJfW2CgAz91eGSFZjdzA1A pxZGyvMnK2Riuk9iS5iulPfB5iqwqn8TIImpRhuolpxZMRQxBKQIHbmGAMckLAFWfVYa I8prnedglj/SqCBFqEKc2O3IOeHCiwlWwL3LY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/T/WIpST8iR4x/0W7N8Dw9UedppVzqgNaSstdJ4WVxM=; b=E21CSiKdN3KFSfm+emGiK3oVRkYBAIZ4KpjMyLQJ7Li3b4ia0RfHGF0eEcRfsfTJk8 Fchzi/PC3wTkTLomkABYfdOGwKv+DAr1Bkhzvdo3tgk+SJS8qRJVI4tVCEMCnSyYYJgA gqpgyXS4fK5Y64q7QiHsBu/Uf1zNYa+bnG10+e7plqbJHU2yN30mYec2ZtAUmfYBdphm i/J2o2hfIw/NsIgwhhNv30CWlpEVV8vtK2mSn0MAV37K+tqeY+pR1ZZZ+LiYCfCz+fP0 diD3oK06eQ33CpDLDMCgTvE2WM2uN2FEl6hD7BGYwlF7ZhINKnIEOMoRPZ1et/Z0RQn5 EVaA== X-Gm-Message-State: ALKqPwdMCFU3vR+uNMO/ZCSAERaV5230KcEOSMAfI+9H5502AtKWNcYR uVm9gZF+BwSsyBaFz5PsUkCa6g== X-Google-Smtp-Source: AB8JxZob+mHh//5/OH+DQJiAXQCJ1G8ro/ymt4ZRenKRanENhbUTdA5zWw6k107H0CZg6xOAD4rUhQ== X-Received: by 2002:adf:8327:: with SMTP id 36-v6mr2747466wrd.176.1527257969671; Fri, 25 May 2018 07:19:29 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id a129-v6sm7069706wme.34.2018.05.25.07.19.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:27 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 4FFE73E071E; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:07 +0100 Message-Id: <20180525141915.6497-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::230 Subject: [Qemu-devel] [PATCH v5 41/49] tests/tcg: enable building for mips64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yongbok Kim , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As before, using Debian SID compilers. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-mips64-cross.docker | 12 ++++++++++++ tests/tcg/mips/Makefile.include | 3 +++ 3 files changed, 16 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-mips64-cross.docker diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 1dba05ed18..ccd824a329 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -67,6 +67,7 @@ docker-image-debian-hppa-cross: docker-image-debian-sid docker-image-debian-m68k-cross: docker-image-debian-sid docker-image-debian-sh4-cross: docker-image-debian-sid docker-image-debian-sparc64-cross: docker-image-debian-sid +docker-image-debian-mips64-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-mips64-cross.docker b/tests/docker/dockerfiles/debian-mips64-cross.docker new file mode 100644 index 0000000000..ed1ce0e919 --- /dev/null +++ b/tests/docker/dockerfiles/debian-mips64-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-mips64-linux-gnuabi64 \ + libc6-dev-mips64-cross diff --git a/tests/tcg/mips/Makefile.include b/tests/tcg/mips/Makefile.include index a9beceb623..4a14fc078d 100644 --- a/tests/tcg/mips/Makefile.include +++ b/tests/tcg/mips/Makefile.include @@ -8,6 +8,9 @@ ifeq ($(TARGET_NAME),mips64el) DOCKER_IMAGE=debian-mips64el-cross DOCKER_CROSS_COMPILER=mips64el-linux-gnuabi64-gcc +else ifeq ($(TARGET_NAME),mips64) +DOCKER_IMAGE=debian-mips64-cross +DOCKER_CROSS_COMPILER=mips64-linux-gnuabi64-gcc else ifeq ($(TARGET_NAME),mipsel) DOCKER_IMAGE=debian-mipsel-cross DOCKER_CROSS_COMPILER=mipsel-linux-gnu-gcc From patchwork Fri May 25 14:19:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920593 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="DTDf+9x8"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spgs2ltxz9ry1 for ; Sat, 26 May 2018 00:35:21 +1000 (AEST) Received: from localhost ([::1]:44378 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDoM-0005Qk-Sq for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:35:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44496) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDZ7-0001B4-UA for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDZ6-0000c4-Vi for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:33 -0400 Received: from mail-wr0-x22c.google.com ([2a00:1450:400c:c0c::22c]:41401) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDZ6-0000bN-P8 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:19:32 -0400 Received: by mail-wr0-x22c.google.com with SMTP id u12-v6so9526708wrn.8 for ; Fri, 25 May 2018 07:19:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Yuu+GC6yL6ywKxeF0PAKFUOpE2EcbQeU3DYDEriQ9Wo=; b=DTDf+9x8JoTRANvNquebvywZInWXy5PLRSvEqSE8gS4FiY3sFmXWTnJfsmJ09LdeI+ isVKY2RgLzds/kuhBbNUUdRPPXSoFxrdQmOy5NJ2aMVvH+rQ/+ghQwFBK9sQqX1KV6Ou 8jtEu/umBLDEs0bNKzSF52YCT6wSMPGHEYcxQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Yuu+GC6yL6ywKxeF0PAKFUOpE2EcbQeU3DYDEriQ9Wo=; b=rYMx3QxLc+kTeFO1A+C5lRq2gxBShZHPLIsAq0fMp4XFYPk0fG0xlF8C/ErDhB8EoD kduOp/17dkiaDwdbwKd/YDLu0WAuyJgi6o7SWdtGlFmA2c+DXfOac5g2WnXnVimyQUCY c0QIHWSC5LrygMnS2qnx7/pbprqh8/FGcteTnl4UtMwulrb1cd0rXy9LyBuu2oEbKr+x rX3PTYJNDdesmsNvb+w/TTntD+hzIWIp+brWEAjZyEAVi0A/52Fdef/Dpx88dwNbPwKW 4bH7ht23H+A5UIwWnxsxiBMBT6HHW6IuLWl1q4wHV7aNgT6aaeA/2X9gWl0cdF+4TweB yqWA== X-Gm-Message-State: ALKqPwegYH0civXREABzniRHLecc+AqBZxm4WGwQFEmbn+CQpzD8pR/B NZ2HSlcHQya6+xrr5ChUJUwHOg== X-Google-Smtp-Source: AB8JxZr/oEFaOox72G6Adt8gZhVc19p6VBFFBUzkiwzz/lmUHthuI3kBzj7dniI0TypDIVOk/DKP0g== X-Received: by 2002:adf:dfc2:: with SMTP id q2-v6mr1481887wrn.113.1527257971675; Fri, 25 May 2018 07:19:31 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id p5-v6sm1685066wre.83.2018.05.25.07.19.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:19:27 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 65ED13E07D1; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:08 +0100 Message-Id: <20180525141915.6497-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22c Subject: [Qemu-devel] [PATCH v5 42/49] tests/tcg: enable building for RISCV64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As before, using Debian SID compilers. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- tests/docker/Makefile.include | 1 + tests/docker/dockerfiles/debian-riscv64-cross.docker | 12 ++++++++++++ tests/tcg/riscv/Makefile.include | 10 ++++++++++ 3 files changed, 23 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-riscv64-cross.docker create mode 100644 tests/tcg/riscv/Makefile.include diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index ccd824a329..36779645d7 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -68,6 +68,7 @@ docker-image-debian-m68k-cross: docker-image-debian-sid docker-image-debian-sh4-cross: docker-image-debian-sid docker-image-debian-sparc64-cross: docker-image-debian-sid docker-image-debian-mips64-cross: docker-image-debian-sid +docker-image-debian-riscv64-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker new file mode 100644 index 0000000000..2b2e64cee6 --- /dev/null +++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker @@ -0,0 +1,12 @@ +# +# Docker cross-compiler target +# +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. +# +FROM qemu:debian-sid + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-riscv64-linux-gnu \ + libc6-dev-riscv64-cross diff --git a/tests/tcg/riscv/Makefile.include b/tests/tcg/riscv/Makefile.include new file mode 100644 index 0000000000..d92ac6c89f --- /dev/null +++ b/tests/tcg/riscv/Makefile.include @@ -0,0 +1,10 @@ +# +# Makefile.include for all RISCV targets +# +# Debian only really cares about 64 bit going forward +# + +ifeq ($(TARGET_NAME),riscv64) +DOCKER_IMAGE=debian-riscv64-cross +DOCKER_CROSS_COMPILER=riscv64-linux-gnu-gcc +endif From patchwork Fri May 25 14:19:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920603 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="GhsfHmaz"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spm218Mwz9s0q for ; Sat, 26 May 2018 00:38:56 +1000 (AEST) Received: from localhost ([::1]:44404 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDrp-0008Lb-CG for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:38:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45478) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeJ-0005kA-Od for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeH-0003tD-7U for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:55 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:38830) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeG-0003sf-UT for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:53 -0400 Received: by mail-wr0-x243.google.com with SMTP id 94-v6so9575830wrf.5 for ; Fri, 25 May 2018 07:24:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l/90mDxBThWiH+1nprxQFPbwv5pgw2maNVicQoJl72c=; b=GhsfHmazqhv+In15/OFv/lIFPHDSjG/em9BgfooQZYOQjgrCx4pgBDCEC/ca+OTm3P gAabBqBZ/WoTCzX3PEl+H/hJzUnt3OYLS/pnTQus1zIgYosUlI092Rt3RpbhajHbyGIA mrFnYhhCcstu2uuNGUnXIyH/SpYI568Rp4bWo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l/90mDxBThWiH+1nprxQFPbwv5pgw2maNVicQoJl72c=; b=J3X3uVZBhmyUg1FpTqGZbUhdvqGVnsxRCrJjcEM5hjfIiWuu/YXNxeKwr8Xu0UvOFl DquS2jaZbIxPlnNqIWgx0unqyM6DyEzbrN9C0AYNSJcvm24kihkQ6Q0ypJMyCEX2d8j/ 2cvnUx2J7tdLLsgbXZJyZGsp5pVLvJbKn7pTjrKkSDzKU5n96Kh83OjmG2x3hJSfFkPt 0woNDVmacBBL0Ta10OXaTke7h/QEmi2FH5ueBJbCNvNcuGZcbhQo0y0t1hFjqtbb+mwH ytUG8kQ1vU0nur5MuM+2xoqKWBNCd65amv1O8TRQPxnRWp67h2UYHSO5yyidLn4fbUU+ NK9A== X-Gm-Message-State: ALKqPwf1nRauBE0Sm4IwH5io9TBew4ive/qvMimQPLTrOS/oT4DNqmvQ fWcXJc8z4Xf447QvDIYLwVp7kA== X-Google-Smtp-Source: AB8JxZoAFXm8OZl9qcLdAJQrtfSESaReJgTjeSWPp+U0WWyaAHGfg/2zlKNfMWx4mP7o1XwN3XvPAw== X-Received: by 2002:adf:ea84:: with SMTP id s4-v6mr2226609wrm.223.1527258291840; Fri, 25 May 2018 07:24:51 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id i11-v6sm12717067wre.66.2018.05.25.07.24.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 7D0213E08B3; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:09 +0100 Message-Id: <20180525141915.6497-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 43/49] docker: move debian-powerpc-cross to sid based build X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The original Jessie based cross builder hasn't worked for a while. The state of the libraries is still perilous for cross-building QEMU but we can use it for building TCG tests. The debian-apt-fake.sh script can also be dropped as it is no longer used. Signed-off-by: Alex Bennée Reviewed-by: Fam Zheng --- tests/docker/Makefile.include | 4 +- tests/docker/dockerfiles/debian-apt-fake.sh | 46 ------------------- .../dockerfiles/debian-powerpc-cross.docker | 39 +++------------- tests/docker/dockerfiles/debian8.docker | 3 -- 4 files changed, 7 insertions(+), 85 deletions(-) delete mode 100755 tests/docker/dockerfiles/debian-apt-fake.sh diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 36779645d7..d59314ee65 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -46,8 +46,6 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\ "BUILD","$*") -docker-image-debian-powerpc-cross: EXTRA_FILES:=$(SRC_PATH)/tests/docker/dockerfiles/debian-apt-fake.sh - # Enforce dependencies for composite images docker-image-debian: docker-image-debian9 docker-image-debian8-mxe: docker-image-debian8 @@ -57,7 +55,6 @@ docker-image-debian-armhf-cross: docker-image-debian9 docker-image-debian-arm64-cross: docker-image-debian9 docker-image-debian-mips-cross: docker-image-debian9 docker-image-debian-mips64el-cross: docker-image-debian9 -docker-image-debian-powerpc-cross: docker-image-debian8 docker-image-debian-ppc64el-cross: docker-image-debian9 docker-image-debian-s390x-cross: docker-image-debian9 docker-image-debian-win32-cross: docker-image-debian8-mxe @@ -69,6 +66,7 @@ docker-image-debian-sh4-cross: docker-image-debian-sid docker-image-debian-sparc64-cross: docker-image-debian-sid docker-image-debian-mips64-cross: docker-image-debian-sid docker-image-debian-riscv64-cross: docker-image-debian-sid +docker-image-debian-powerpc-cross: docker-image-debian-sid docker-image-travis: NOUSER=1 # Expand all the pre-requistes for each docker image and test combination diff --git a/tests/docker/dockerfiles/debian-apt-fake.sh b/tests/docker/dockerfiles/debian-apt-fake.sh deleted file mode 100755 index 2ec0fdf47a..0000000000 --- a/tests/docker/dockerfiles/debian-apt-fake.sh +++ /dev/null @@ -1,46 +0,0 @@ -#! /bin/sh -# -# Generate fake debian package to resolve unimportant unmet dependencies held -# by upstream multiarch broken packages. -# -# Copyright (c) 2017 Philippe Mathieu-Daudé -# -# This work is licensed under the terms of the GNU GPL, version 2 -# or (at your option) any later version. See the COPYING file in -# the top-level directory. - -test $1 = "install" && shift 1 - -fake_install() -{ - echo "Generating fake $2 $1 $3 ..." - (cd /var/cache/apt/archives - (cat << 'EOF' -Section: misc -Priority: optional -Standards-Version: 3.9.2 - -Package: NAME -Version: VERSION -Maintainer: qemu-devel@nongnu.org -Architecture: any -Multi-Arch: same -Description: fake NAME -EOF - ) | sed s/NAME/$2/g | sed s/VERSION/$3/g > $2.control - equivs-build -a $1 $2.control 1>/dev/null 2>/dev/null - dpkg -i --force-overwrite $2_$3_$1.deb - ) -} - -try_install() -{ - name=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\1/") - arch=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\2/") - vers=$(echo $1|sed "s/\(.*\):\(.*\)=\(.*\)/\3/") - apt-get install -q -yy $1 || fake_install $arch $name $vers -} - -for package in $*; do - try_install $package -done diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker index a5dd46b4ac..5e62ca0df1 100644 --- a/tests/docker/dockerfiles/debian-powerpc-cross.docker +++ b/tests/docker/dockerfiles/debian-powerpc-cross.docker @@ -1,40 +1,13 @@ # # Docker powerpc cross-compiler target # -# This docker target builds on the debian Jessie base image. +# This docker target builds on the debian sid base image which +# contains cross compilers for Debian "ports" targets. The original +# Jessie based no longer builds. # -FROM qemu:debian8 -MAINTAINER Philippe Mathieu-Daudé +FROM qemu:debian-sid -# Add the foreign architecture we want and install dependencies -RUN dpkg --add-architecture powerpc -RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive eatmydata \ apt-get install -y --no-install-recommends \ - crossbuild-essential-powerpc - -# to fix "following packages have unmet dependencies" ... -ADD debian-apt-fake.sh /usr/local/bin/apt-fake -RUN apt-get install -y --no-install-recommends \ - equivs \ - pkg-config -RUN apt-fake install \ - pkg-config:powerpc=0.28-1.1-fake && \ - ln -s pkg-config /usr/bin/powerpc-linux-gnu-pkg-config -ENV PKG_CONFIG_PATH /usr/lib/powerpc-linux-gnu/pkgconfig -# - -# Specify the cross prefix for this image (see tests/docker/common.rc) -ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc-linux-gnu- - -RUN DEBIAN_FRONTEND=noninteractive eatmydata \ - apt-get build-dep -yy -a powerpc qemu -RUN DEBIAN_FRONTEND=noninteractive \ - apt-get install -y --no-install-recommends \ - glusterfs-common:powerpc \ - libbz2-dev:powerpc \ - liblzo2-dev:powerpc \ - libncursesw5-dev:powerpc \ - libnfs-dev:powerpc \ - librdmacm-dev:powerpc \ - libsnappy-dev:powerpc + gcc-powerpc-linux-gnu \ + libc6-dev-powerpc-cross || { echo "Failed to build - see debian-sid.docker notes"; exit 1; } diff --git a/tests/docker/dockerfiles/debian8.docker b/tests/docker/dockerfiles/debian8.docker index 1bcf2e3d2f..52945631cd 100644 --- a/tests/docker/dockerfiles/debian8.docker +++ b/tests/docker/dockerfiles/debian8.docker @@ -32,6 +32,3 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \ pkg-config \ python-minimal -# Setup Emdebian [emdebian-archive-keyring] -RUN echo "deb http://emdebian.org/tools/debian/ jessie main" > /etc/apt/sources.list.d/emdebian.list && \ - curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add - From patchwork Fri May 25 14:19:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920604 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="JwBySprc"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spq20fSlz9rxs for ; Sat, 26 May 2018 00:41:34 +1000 (AEST) Received: from localhost ([::1]:44417 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDuN-0002Gd-PA for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:41:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45514) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeL-0005lv-LV for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeK-0003vc-QT for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:57 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:40873) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeK-0003vB-K7 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:56 -0400 Received: by mail-wr0-x243.google.com with SMTP id l41-v6so9590976wre.7 for ; Fri, 25 May 2018 07:24:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QohshHYTl1wXjE1j14bYMFa2JpgZbJXiWEVtObpcAqA=; b=JwBySprct2G0YB8fuzC9KjfJCSuotaCZo77kyxF6pDVX26hd6l69FlPm3/fat5+IPh nB1b0OmBytBtf1iEcoNBz6ihFKwin8OJG48K/bkOHgt7rpKlcOjX0bWSoAE72PhoP9G7 1U1hW02GxmaTGCbM15+pob1bWM2uwSwW/u5b8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QohshHYTl1wXjE1j14bYMFa2JpgZbJXiWEVtObpcAqA=; b=li4YM1XMKnti61iB1T8EcmW/4MOlqFNa/9qU9QyomYhfmSEkP5YwREDa+LLnDXiD2A MrEIsPP+nSocTvfIB5AX+HF0sjMvnOL5upZL3skKeQz5P3Dc4MA5j06HKOFwCDUVWopH UNgKFH8smM4bFV3QlARtUVfLspfXQ6eKkW5YwWFUotp9ovyBquA7JSVRlH6A9fKPTpBO qqT47NVWCAnN+9uDESX079Zf2NIEchCYJ0PuK5r/GCouP5KK1VHNWu2kvjDIlXLO2SNp C672ETykLnEYgPOC+LEa8u9+hSJPJUhSOoQ7rv1pu8t9ZAuzgVeaEXyI5b8T2SdcABKL ARrA== X-Gm-Message-State: ALKqPwcTITgAwEx1Sxqf23RbaBwI3EP7iMvW5KbmYUMfr2IEwtq1JPpB 3Y/VvE9yuVKgYuaui9GKlMQijQ== X-Google-Smtp-Source: AB8JxZpdPCp7LrTwk9QuzyoOkRONCVPT55as3tTOiMUdpc0Tot+dlVTeAIk+0Iq4ZdR2T+RjnC46Nw== X-Received: by 2002:adf:eb8f:: with SMTP id t15-v6mr2608745wrn.243.1527258295575; Fri, 25 May 2018 07:24:55 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id h81-v6sm13811706wmd.0.2018.05.25.07.24.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:53 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 91C893E08BB; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:10 +0100 Message-Id: <20180525141915.6497-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 44/49] tests/tcg: enable building for PowerPC X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Now we have restored debian-image-powerpc-cross using Debian SID compilers we can build for 32 bit powerpc. Although PPC32 supports a range of pages sizes currently only 4k works so the others are commented out for now. We can also merge the ppc64 support under the base architecture directory to avoid too much proliferation of directories. Signed-off-by: Alex Bennée --- v5 - new for v5 --- tests/tcg/ppc/Makefile.include | 7 +++++++ tests/tcg/ppc/Makefile.target | 12 ++++++++++++ tests/tcg/ppc64le/Makefile.include | 2 -- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 tests/tcg/ppc/Makefile.include create mode 100644 tests/tcg/ppc/Makefile.target delete mode 100644 tests/tcg/ppc64le/Makefile.include diff --git a/tests/tcg/ppc/Makefile.include b/tests/tcg/ppc/Makefile.include new file mode 100644 index 0000000000..b062c30dd3 --- /dev/null +++ b/tests/tcg/ppc/Makefile.include @@ -0,0 +1,7 @@ +ifeq ($(TARGET_NAME),ppc) +DOCKER_IMAGE=debian-powerpc-cross +DOCKER_CROSS_COMPILER=powerpc-linux-gnu-gcc +else ifeq ($(TARGET_NAME),ppc64le) +DOCKER_IMAGE=debian-ppc64el-cross +DOCKER_CROSS_COMPILER=powerpc64le-linux-gnu-gcc +endif diff --git a/tests/tcg/ppc/Makefile.target b/tests/tcg/ppc/Makefile.target new file mode 100644 index 0000000000..f5e08c7376 --- /dev/null +++ b/tests/tcg/ppc/Makefile.target @@ -0,0 +1,12 @@ +# -*- Mode: makefile -*- +# +# PPC - included from tests/tcg/Makefile +# + +ifneq (,$(findstring 64,$(TARGET_NAME))) +# On PPC64 Linux can be configured with 4k (default) or 64k pages (currently broken) +EXTRA_RUNS+=run-test-mmap-4096 #run-test-mmap-65536 +else +# On PPC32 Linux supports 4K/16K/64K/256K (but currently only 4k works) +EXTRA_RUNS+=run-test-mmap-4096 #run-test-mmap-16384 run-test-mmap-65536 run-test-mmap-262144 +endif diff --git a/tests/tcg/ppc64le/Makefile.include b/tests/tcg/ppc64le/Makefile.include deleted file mode 100644 index d71cfc9aa7..0000000000 --- a/tests/tcg/ppc64le/Makefile.include +++ /dev/null @@ -1,2 +0,0 @@ -DOCKER_IMAGE=debian-ppc64el-cross -DOCKER_CROSS_COMPILER=powerpc64le-linux-gnu-gcc From patchwork Fri May 25 14:19:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920606 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="DfHf1BIk"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40sptp1MY4z9rxs for ; Sat, 26 May 2018 00:44:48 +1000 (AEST) Received: from localhost ([::1]:44443 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDxU-0004Uq-NH for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:44:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45466) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeJ-0005jm-BH for qemu-devel@nongnu.org; Fri, 25 May 2018 10:25:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeF-0003sL-Ki for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:55 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:39140) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeF-0003ru-Bh for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:51 -0400 Received: by mail-wr0-x244.google.com with SMTP id w18-v6so9584740wrn.6 for ; Fri, 25 May 2018 07:24:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/QDMbm1GQzLUH3tr3cBNp0UqMJN8CGOeovBcQqe02kE=; b=DfHf1BIkOWVEfAEM2ZOo+ChcJ2KjXH7dXy/Y8yCIwDF5i7emySXfEtWahgOxkUGJzP 86X6cmb3YmyspFL4SStsXWdJV93//HVXKzq12GbaExlv+AMRBmxK+ZpGlW0j6Yts3QOg JXzlPUEPBNABKm5yghRSgCJ7zNyilBYaCboTM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/QDMbm1GQzLUH3tr3cBNp0UqMJN8CGOeovBcQqe02kE=; b=mjuk1Imvmm2jtHtw87Hsl4eVU1viEwojZjPTycvZkWQQB5xnjBRT0NJQOqTHBlcTxW JsDEI192pYSBEdBKf/DbSIeS2EKNAHSkw4mcpqgd+hlLwstgC+I0vlIqJ2Y5jN172nA3 axQphkeY7SXEte5YOqHcTgztNRYJBvOgOuHtNDy/MpGYF/DgDMcsqwY4uk2g9r5r0rl7 ooC9pnwyyUMGN1oNFxQocppAFwsUOiL9WHv1sjbzaIkVp/m5jeFswKcAIsyuk6OaXikm ev8jp6VumNFlsOnrhPQNQR/VUk6R/tRaAhb8NoHk9ogXOagXQ/ANdNQFYos/NGIO5+rq OXNw== X-Gm-Message-State: ALKqPwdziJjqcSMoLXY4935KnRG4ph0SUi9ThKF/SvePo+NL3HpPLfyE o7XYo3FClhUKuyTlK5RIi17mQA== X-Google-Smtp-Source: AB8JxZp6XchgOf1T49+7gUaE+URNe+UhxsAeRPZx9RQMyJI80NJRBueJd6S2ryB8HFWOi/UvkoGD+A== X-Received: by 2002:adf:86ac:: with SMTP id 41-v6mr2269073wrx.260.1527258290159; Fri, 25 May 2018 07:24:50 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id u8-v6sm6227431wmc.40.2018.05.25.07.24.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id A599E3E08BF; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:11 +0100 Message-Id: <20180525141915.6497-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PATCH v5 45/49] tests/tcg/Makefile: update to be called from Makefile.target X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This make is now invoked from each individual target make with the appropriate CC and EXTRA_CFLAGS set for each guest. It then includes additional Makefile.targets from: - tests/tcg/multiarch (always) - tests/tcg/$(TARGET_BASE_ARCH) (if available) - tests/tcg/$(TARGET_NAME) The order is important as the later Makefile's may want to suppress TESTS from its base arch profile. Each included Makefile.target is responsible for adding TESTS as well as defining any special build instructions for individual tests. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v2 - cleaner approach to include sub makefiles - move TESTS/VPATH manipulation into sub-makefile - avoid double inclusion when TARGET_BASE_ARCH==TARGET_NAME v4 - add timeout to default runner - clean-up comments about build flags - update to handle BUILD_STATIC - add MAINTAINERS entry v5 - support EXTRA_RUNS for run variants --- MAINTAINERS | 5 ++ tests/tcg/Makefile | 179 ++++++++++++++++++--------------------------- 2 files changed, 76 insertions(+), 108 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index ec385a15df..bfa8d0fb9c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2138,6 +2138,11 @@ W: https://travis-ci.org/qemu/qemu W: https://app.shippable.com/github/qemu/qemu W: http://patchew.org/QEMU/ +Guest Test Compilation Support +M: Alex Bennée +F: tests/tcg/Makefile +L: qemu-devel@nongnu.org + Documentation ------------- Build system architecture diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile index e12395117a..8158c1f099 100644 --- a/tests/tcg/Makefile +++ b/tests/tcg/Makefile @@ -1,125 +1,88 @@ +# -*- Mode: makefile -*- +# +# TCG tests +# +# These are complicated by the fact we want to build them for guest +# systems. This requires knowing what guests we are building and which +# ones we have cross-compilers for or docker images with +# cross-compilers. +# +# The tests themselves should be as minimal as possible as +# cross-compilers don't always have a large amount of libraries +# available. +# +# We only include the host build system for SRC_PATH and we don't +# bother with the common rules.mk. We expect the following: +# +# CC - the C compiler command +# EXTRA_CFLAGS - any extra CFLAGS +# BUILD_STATIC - are we building static binaries +# +# By default all tests are statically compiled but some host systems +# may not package static libraries by default. If an external +# cross-compiler can only build dynamic libraries the user might need +# to make extra efforts to ensure ld.so can link at runtime when the +# tests are run. +# +# We also accept SPEED=slow to enable slower running tests +# +# We also expect to be in the tests build dir for the FOO-linux-user. +# + -include ../../config-host.mak --include $(SRC_PATH)/rules.mak +-include ../config-target.mak -$(call set-vpath, $(SRC_PATH)/tests/tcg) +quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1)) -QEMU=../../i386-linux-user/qemu-i386 -QEMU_X86_64=../../x86_64-linux-user/qemu-x86_64 -CC_X86_64=$(CC_I386) -m64 +# Tests we are building +TESTS= -QEMU_INCLUDES += -I../.. -CFLAGS=-Wall -O2 -g -fno-strict-aliasing -#CFLAGS+=-msse2 +# Start with a blank slate, the build targets get to add stuff first +CFLAGS= +QEMU_CFLAGS= LDFLAGS= -# TODO: automatically detect ARM and MIPS compilers, and run those too - -# runcom maps page 0, so it requires root privileges -# also, pi_10.com runs indefinitely - -I386_TESTS=hello-i386 \ - sha1-i386 \ - test-i386 \ - test-i386-fprem \ - # runcom +# The QEMU for this TARGET +QEMU=../qemu-$(TARGET_NAME) +TIMEOUT=15 -# native i386 compilers sometimes are not biarch. assume cross-compilers are -ifneq ($(ARCH),i386) -I386_TESTS+=run-test-x86_64 +# The order we include is important. We include multiarch, base arch +# and finally arch if it's not the same as base arch. +-include $(SRC_PATH)/tests/tcg/multiarch/Makefile.target +-include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.target +ifneq ($(TARGET_BASE_ARCH),$(TARGET_NAME)) +-include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target endif -TESTS = test_path -ifneq ($(call find-in-path, $(CC_I386)),) -TESTS += $(I386_TESTS) +# Add the common build options +CFLAGS+=-Wall -O0 -g -fno-strict-aliasing +ifeq ($(BUILD_STATIC),y) +LDFLAGS+=-static endif -all: $(patsubst %,run-%,$(TESTS)) -test: all - -# rules to run tests - -.PHONY: $(patsubst %,run-%,$(TESTS)) - -run-%: % - -$(QEMU) ./$* - -run-hello-i386: hello-i386 -run-sha1-i386: sha1-i386 - -run-test-i386: test-i386 - ./test-i386 > test-i386.ref - -$(QEMU) test-i386 > test-i386.out - @if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi - -run-test-i386-fprem: test-i386-fprem - ./test-i386-fprem > test-i386-fprem.ref - -$(QEMU) test-i386-fprem > test-i386-fprem.out - @if diff -u test-i386-fprem.ref test-i386-fprem.out ; then echo "Auto Test OK"; fi - -run-test-x86_64: test-x86_64 - ./test-x86_64 > test-x86_64.ref - -$(QEMU_X86_64) test-x86_64 > test-x86_64.out - @if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test OK"; fi - +%: %.c + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) -run-runcom: runcom - -$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com +all: $(TESTS) -run-test_path: test_path - ./test_path +# +# Test Runners +# +# By default we just run the test with the appropriate QEMU for the +# target. More advanced tests may want to override the runner in their +# specific make rules. Additional runners for the same binary should +# be added to EXTRA_RUNS. +# -# rules to compile tests +RUN_TESTS=$(patsubst %,run-%, $(TESTS)) +RUN_TESTS+=$(EXTRA_RUNS) -hello-i386: hello-i386.c - $(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $< - strip $@ - -# i386/x86_64 emulation test (test various opcodes) */ -test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S \ - test-i386.h test-i386-shift.h test-i386-muldiv.h - $(CC_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ \ - $( $<.out, \ + "TEST", "$< on $(TARGET_NAME)") -# testsuite for the LM32 port. -test-lm32: - $(MAKE) -C lm32 check +.PHONY: run +run: $(RUN_TESTS) -clean: - rm -f *~ *.o test-i386.out test-i386.ref \ - test-x86_64.log test-x86_64.ref qruncom $(TESTS) +# There is no clean target, the calling make just rm's the tests build dir From patchwork Fri May 25 14:19:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920594 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="XIxnbgA/"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40sphY6d65z9ry1 for ; Sat, 26 May 2018 00:35:57 +1000 (AEST) Received: from localhost ([::1]:44382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDov-0005w4-KF for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:35:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45484) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeK-0005kL-0l for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeI-0003tt-BL for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:56 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:46278) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeI-0003tW-1N for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:54 -0400 Received: by mail-wr0-x241.google.com with SMTP id x9-v6so9571023wrl.13 for ; Fri, 25 May 2018 07:24:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2i4kdHRWX4vaes+RofRwESoEH/j3mZSphzGKeHkEYPM=; b=XIxnbgA/gwYzL1kEJ8Do9qtrXWQmXLoE75iQROHICc+P3cIi0VsHxKjGMVACHVCjpj VDYnzqcuc1wxoZMt9EgsO5VJ5gpzbzSLyzekSdKGFjVwiONVjkukD2QV2m9sXGuHw/n+ ysmK+wjoZNeZJvshx0HzHUsU6wgOox0p6PE0E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2i4kdHRWX4vaes+RofRwESoEH/j3mZSphzGKeHkEYPM=; b=c8uMG4TEVatG/AL8MSLkR2jK8Dx9kt5aUaOeCIrw3PD7oegIgmexV7F4Ocg8WMw7Yc 9GRUZDk7KGhuH4J47g7I07713Jcv0TSdlKcrl8bymxf6tWaZeTWgdU6cjDOZL9Qr+Hub 8TaGdXuC+ahdxTkm2r3D08yCHYE/mMYfeSG/bzu06nl1Qw/ClS4VaFKwUhzvj3N2h4jb BYvEGVfnwmfQQ+blug9jJ1lsYavoli5nRBAah7SqIKyvYd2LN33yf4EMgKFHYz8hbkB6 MN/POjO/xeNFCqjjZvabWIcSWfYM/1mHFzuNJdGi4ulIvDkgvx5VvR7i6e6JUkVgRx1I mQdg== X-Gm-Message-State: ALKqPwfmU16s+JgtL65Qcr2YhMdlGQv9jgZR2DgNGCtyD11lYmfp2V0w WCniqX0j+hU6HEvvqK8QD+2v1Q== X-Google-Smtp-Source: AB8JxZq40WkOU3mKlW1XQHNmnQF+DsZmztwqIYpUYObPJ92hNEI/bJIzwFgrFsdJJB0xlX4c98stjQ== X-Received: by 2002:adf:9f4a:: with SMTP id f10-v6mr2252175wrg.216.1527258292926; Fri, 25 May 2018 07:24:52 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id i26-v6sm5986652wmb.19.2018.05.25.07.24.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id BB02B3E08E4; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:12 +0100 Message-Id: <20180525141915.6497-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PATCH v5 46/49] Makefile.target: add (clean-/build-)guest-tests targets X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Now all the build infrastructure is in place we can build tests for each guest that we support. That support mainly depends on having cross compilers installed or docker setup. To keep all the logic for that together we put the rules in tests/tcg/Makefile.include and include it from the main Makefile.target. Signed-off-by: Alex Bennée --- v4 - pulled Makefile.include bits from next patch - added qemu-$(TARGET_NAME) dependency for running tests - accept SPEED parameter to run slow tests - pass BUILD_STATIC - update MAINTAINERS --- MAINTAINERS | 1 + Makefile.target | 5 +++ tests/tcg/Makefile.include | 88 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 tests/tcg/Makefile.include diff --git a/MAINTAINERS b/MAINTAINERS index bfa8d0fb9c..e575bad174 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2141,6 +2141,7 @@ W: http://patchew.org/QEMU/ Guest Test Compilation Support M: Alex Bennée F: tests/tcg/Makefile +F: tests/tcg/Makefile.include L: qemu-devel@nongnu.org Documentation diff --git a/Makefile.target b/Makefile.target index d0ec77a307..a30fd40257 100644 --- a/Makefile.target +++ b/Makefile.target @@ -36,6 +36,11 @@ endif PROGS=$(QEMU_PROG) $(QEMU_PROGW) STPFILES= +# Makefile Tests +ifdef CONFIG_USER_ONLY +include $(SRC_PATH)/tests/tcg/Makefile.include +endif + config-target.h: config-target.h-timestamp config-target.h-timestamp: config-target.mak diff --git a/tests/tcg/Makefile.include b/tests/tcg/Makefile.include new file mode 100644 index 0000000000..fbefc8b23b --- /dev/null +++ b/tests/tcg/Makefile.include @@ -0,0 +1,88 @@ +# -*- Mode: makefile -*- +# +# TCG tests (per-target rules) +# +# This Makefile fragement is included from the per-target +# Makefile.target so will be invoked for each linux-user program we +# build. We have two options for compiling, either using a configured +# guest compiler or calling one of our docker images to do it for us. +# + +# The per ARCH makefile, if it exists, holds extra information about +# useful docker images or alternative compiler flags. + +-include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include +-include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include + +GUEST_BUILD= +TCG_MAKE=$(SRC_PATH)/tests/tcg/Makefile +# Support installed Cross Compilers + +ifdef CROSS_CC_GUEST + +.PHONY: cross-build-guest-tests +cross-build-guest-tests: + $(call quiet-command, \ + (mkdir -p tests && cd tests && \ + make -f $(TCG_MAKE) CC=$(CROSS_CC_GUEST) \ + BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \ + EXTRA_CFLAGS=$(CROSS_CC_GUEST_CFLAGS)), \ + "CROSS-BUILD","$(TARGET_NAME) guest-tests with $(CROSS_CC_GUEST)") + +GUEST_BUILD=cross-build-guest-tests + +endif + +# Support building with Docker + +ifeq ($(HAVE_USER_DOCKER)$(GUEST_BUILD),y) +ifneq ($(DOCKER_IMAGE),) + +# We also need the Docker make rules to depend on +include $(SRC_PATH)/tests/docker/Makefile.include + +DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc --user $(shell id -u) \ + --cc $(DOCKER_CROSS_COMPILER) \ + -i qemu:$(DOCKER_IMAGE) \ + -s $(SRC_PATH) -- " +DOCKER_PREREQ=docker-image-$(DOCKER_IMAGE) + +.PHONY: docker-build-guest-tests +docker-build-guest-tests: $(DOCKER_PREREQ) + $(call quiet-command, \ + (mkdir -p tests && cd tests && \ + make -f $(TCG_MAKE) CC=$(DOCKER_COMPILE_CMD) \ + BUILD_STATIC=y \ + EXTRA_CFLAGS=$(DOCKER_CROSS_COMPILER_CFLAGS)), \ + "CROSS-BUILD","$(TARGET_NAME) guest-tests with docker qemu:$(DOCKER_IMAGE)") + +GUEST_BUILD=docker-build-guest-tests + +endif +endif + +# Final targets +.PHONY: guest-tests + +ifneq ($(GUEST_BUILD),) +guest-tests: $(GUEST_BUILD) + +run-guest-tests: guest-tests qemu-$(TARGET_NAME) + $(call quiet-command, \ + (cd tests && make -f $(TCG_MAKE) SPEED=$(SPEED) run), \ + "RUN-TESTS", "for $(TARGET_NAME)") + +else +guest-tests: + $(call quiet-command, /bin/true, "CROSS-BUILD", \ + "$(TARGET_NAME) guest-tests SKIPPED") + +run-guest-tests: + $(call quiet-command, /bin/true, "RUN-TESTS", \ + "for $(TARGET_NAME) SKIPPED") +endif + +# It doesn't mater if these don't exits +.PHONY: clean-guest-tests +clean-guest-tests: + rm -rf tests || echo "no $(TARGET_NAME) tests to remove" From patchwork Fri May 25 14:19:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920591 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="i6LUgoRO"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spgT4FPMz9ry1 for ; Sat, 26 May 2018 00:35:01 +1000 (AEST) Received: from localhost ([::1]:44373 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDo3-00059h-4R for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:34:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeN-0005o0-Oc for qemu-devel@nongnu.org; Fri, 25 May 2018 10:25:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeM-0003x9-NT for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:59 -0400 Received: from mail-wr0-x236.google.com ([2a00:1450:400c:c0c::236]:33363) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeM-0003wP-Gw for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:58 -0400 Received: by mail-wr0-x236.google.com with SMTP id a15-v6so9587462wrm.0 for ; Fri, 25 May 2018 07:24:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YUv1cbQcEjnF3o/ciRLsvzqrURujS6nfvquv6Eh7O4w=; b=i6LUgoROO0JxIKHVkM3uD4my92qillgumTT0gtvs72Zbsb7eRt6FreWn42CpunFz9i ck9+SPTFjfcSaBBjTY/9gw0UqV80yfYWqRp/oo+dHR2m+832TXrxcxhA4x5NCXXTT+bD XJLJuPYF/fXwXdoJw08t5KZSz4osmLWCGlI94= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YUv1cbQcEjnF3o/ciRLsvzqrURujS6nfvquv6Eh7O4w=; b=G80AqGZL9yw6MsaUDiCmlDN528qOcRwUdfxGLhjS1Tjzz3IxgopFyjHgSQLxDW9SI1 kmb0usOEYTUaP76JIbD+9B5htzs/BMM9WUOzkedBTwuo8hc/jtXDpu4M8wdQgCGI41vq 5ZFwd3/uB69D8EwBntSV+70j0pOQ81PJtf72wQEnWQMnG9psnEJxvDBXsDUik7RoMRiK JUyVzWT4ElyirI1rebr8Zq6xRQFV7Lf4DlLv3rWXkXXdSKgp0IuzZTAh84u/dKkFhpr0 8C8Qm/deimn0d4Mbn7f208OKzzAoHJv8VwSvbhiHdrU6AYXvUpSvD9/C2gBhNyG0SY0p TTDw== X-Gm-Message-State: ALKqPweHwmdhkqU/UZcxRXi6Hy+2/LjyAPoqtBCgIH/j97P+kZvHamsr KOtwpJPbDOUJpdavSCoUGrMMFQ== X-Google-Smtp-Source: AB8JxZqo7NBsZCl6pHi+llvHVNkSLh8zmf4D1oiUVmT98x5piABJ/rl9Oos4OSmffXv3HaM3vRaV+g== X-Received: by 2002:adf:dd84:: with SMTP id x4-v6mr2765746wrl.212.1527258297471; Fri, 25 May 2018 07:24:57 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id q7-v6sm16558873wrf.0.2018.05.25.07.24.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:54 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id CE1CD3E0930; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:13 +0100 Message-Id: <20180525141915.6497-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::236 Subject: [Qemu-devel] [PATCH v5 47/49] tests/Makefile.include: add [build|clean|check]-tcg targets X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will ensure all linux-user targets build their guest test programs and ensure check-tcg will run the respective tests. Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- v2 - use -include instead of complex macro stuff - also include TARGET_BASE_ARCH/Makefile v3 - add build-tcg, make check-tcg actually run tests --- tests/Makefile.include | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index 3d2f0458ab..310ccefdd9 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -10,6 +10,7 @@ check-help: @echo " $(MAKE) check-speed Run qobject speed tests" @echo " $(MAKE) check-qapi-schema Run QAPI schema tests" @echo " $(MAKE) check-block Run block tests" + @echo " $(MAKE) check-tcg Run TCG tests" @echo " $(MAKE) check-report.html Generates an HTML test report" @echo " $(MAKE) check-clean Clean the tests" @echo @@ -916,6 +917,30 @@ check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check check-report.html: check-report.xml $(call quiet-command,gtester-report $< > $@,"GEN","$@") +# Per guest TCG tests + +LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_LIST)) +BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(LINUX_USER_TARGETS)) +CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(LINUX_USER_TARGETS)) +RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(LINUX_USER_TARGETS)) + +build-tcg-tests-%: + $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" guest-tests,) + +run-tcg-tests-%: build-tcg-tests-% + $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" run-guest-tests,) + +clean-tcg-tests-%: + $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" clean-guest-tests,) + +.PHONY: build-tcg +build-tcg: $(BUILD_TCG_TARGET_RULES) + +.PHONY: check-tcg +check-tcg: $(RUN_TCG_TARGET_RULES) + +.PHONY: clean-tcg +clean-tcg: $(CLEAN_TCG_TARGET_RULES) # Other tests @@ -958,7 +983,6 @@ check-speed: $(patsubst %,check-%, $(check-speed-y)) check-block: $(patsubst %,check-%, $(check-block-y)) check: check-qapi-schema check-unit check-qtest check-decodetree check-clean: - $(MAKE) -C tests/tcg clean rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y) rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y)) rm -f tests/test-qapi-gen-timestamp From patchwork Fri May 25 14:19:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920592 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="LxjYn4ya"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spgq6zr5z9ry1 for ; Sat, 26 May 2018 00:35:19 +1000 (AEST) Received: from localhost ([::1]:44377 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDoL-0005OA-LH for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:35:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45548) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeO-0005oQ-6h for qemu-devel@nongnu.org; Fri, 25 May 2018 10:25:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeJ-0003uM-8Y for qemu-devel@nongnu.org; Fri, 25 May 2018 10:25:00 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:55897) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeJ-0003u0-21 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:55 -0400 Received: by mail-wm0-x241.google.com with SMTP id a8-v6so14895615wmg.5 for ; Fri, 25 May 2018 07:24:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YlTPuIJFtfuc47u0XCf03w83V4Ob3vUg+OFUsUsP5+A=; b=LxjYn4yaUZQitBnaHZhN/6NLbD6xOm79lsHa2AY4nALRz42yOorP3DcuocRCL1Brzd sE1XvpgHioXgpi7IrmuaTqlOwy6EiCIa5qhA4TS3SEsns3rXDmH1r8sTO2ANFAb9eZeW uXMFZHqVzcxYBSy64vhwHuxzLBR0uTWlAXGVI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YlTPuIJFtfuc47u0XCf03w83V4Ob3vUg+OFUsUsP5+A=; b=W5Z633FLcHkCilAlTIJsZ55VM9Zykr/ZZ6ercczgOWKdkgLo0bFPtH2u7whZLibxDN idcfzn1LPwYROvPcjxWqsxAQCt31nSLKd/d04BASy3US004AhrZKBS4T3xjRfUc5xbfH AJbUVPVQaXZUyB8R6frRmb263wRRh5hx2ebZ/EftrJyrAoRFUkIf30dB+X6hID/OeKwA VwjY17wTFZEMEuUjTfHdL3t3v1Tjn7nWc4iYrbsyhSLywRx34Ab/6OFd9B4r19+a47h2 xgUlkuMyUkKU/AHnoqybPRTo2BhjaitYNn7eAz0rFvVvvAkJT97k8f6oBeRW+Rb9RJqH JWdA== X-Gm-Message-State: ALKqPweCKJDRNMlzWgRQZ8NlMg988Q3u2lql7zmF+5I02vFBDyYajZL8 k/Fs/BR5BHmHhdjy0gJ2ZvAXww== X-Google-Smtp-Source: ADUXVKKoaeoPHHeI9471dMxHPuB8mC0hNeriLyMHuZjVOnEatski4czpssmjdOwGQ9XdaBUZbAsoKQ== X-Received: by 2002:a1c:bf16:: with SMTP id p22-v6mr1981246wmf.112.1527258293970; Fri, 25 May 2018 07:24:53 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id m134-v6sm8521465wmg.13.2018.05.25.07.24.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id E24413E09E4; Fri, 25 May 2018 15:19:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:14 +0100 Message-Id: <20180525141915.6497-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PATCH v5 48/49] tests/tcg: override runners for broken tests X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yongbok Kim , =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" To get a clean run of check-tcg these tests are currently skipped: - hello-mips for mips - linux-test for sparc Signed-off-by: Alex Bennée --- v4 - document broken tests in commit - temporarily demote fcvt while fixes percolate upstream v5 - reinstate fcvt - remove test-mmap overrides (done with EXTRA_RUNS now) --- tests/tcg/mips/Makefile.target | 4 ++++ tests/tcg/sparc64/Makefile.target | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/tcg/mips/Makefile.target b/tests/tcg/mips/Makefile.target index 71f0c2dd53..3db4eaf131 100644 --- a/tests/tcg/mips/Makefile.target +++ b/tests/tcg/mips/Makefile.target @@ -17,3 +17,7 @@ hello-mips: LDFLAGS+=-nostdlib # For MIPS32 and 64 we have a bunch of extra tests in sub-directories # however they are intended for system tests. + +run-hello-mips: hello-mips + $(call quiet-command, /bin/true, "BROKEN TEST", "$< SKIPPED on $(TARGET_NAME)") + diff --git a/tests/tcg/sparc64/Makefile.target b/tests/tcg/sparc64/Makefile.target index 408dace783..7237779b26 100644 --- a/tests/tcg/sparc64/Makefile.target +++ b/tests/tcg/sparc64/Makefile.target @@ -1,6 +1,11 @@ # -*- Mode: makefile -*- # -# sparc specific tweaks +# sparc specific tweaks and masking out broken tests + +# different from the other hangs +# /home/alex/lsrc/qemu/qemu.git/tests/tcg/multiarch/linux-test.c:264: Value too large for defined data type (ret=-1, errno=92/Value too large for defined data type) +run-linux-test: linux-test + $(call quiet-command, /bin/true, "BROKEN TEST", "$< SKIPPED on $(TARGET_NAME)") # On Sparc64 Linux support 8k pages EXTRA_RUNS+=run-test-mmap-8192 From patchwork Fri May 25 14:19:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 920588 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Bg/dXvDS"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40spbZ2Nqyz9ry1 for ; Sat, 26 May 2018 00:31:38 +1000 (AEST) Received: from localhost ([::1]:44359 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDkl-0002kx-Sl for incoming@patchwork.ozlabs.org; Fri, 25 May 2018 10:31:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45476) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMDeJ-0005k7-Nc for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMDeG-0003sr-Dr for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:55 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:37694) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMDeG-0003sE-48 for qemu-devel@nongnu.org; Fri, 25 May 2018 10:24:52 -0400 Received: by mail-wr0-x243.google.com with SMTP id i12-v6so9592782wrc.4 for ; Fri, 25 May 2018 07:24:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ilb+xV/1jTS1+/Rs3a4Ap9VqiRVoeMi1JNESVSUvGu8=; b=Bg/dXvDStFFtY6v8/7d+kYRzPfk/PlkmoCcF5lV9UojfaSsBQQPsXYd3+9c1rd9NkC DppmLfvKyuuOwt26M2Jpw1lXXjyfytUDcf1j4yjIXZbAy4f63Ga+q4Y3hrOf5aMXdkP+ rrfvbt0c4c9yy0WcVJruphI5z4uM3xAbWJtHE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ilb+xV/1jTS1+/Rs3a4Ap9VqiRVoeMi1JNESVSUvGu8=; b=RsUcmrRTHphFy+tH9F2VJkWdFaXl3qKtRcfOd3XIX9n9DVdrZUuaOEB5TePCaws6Oa D66QKCJjIuq82oNrfDFO87akWlHvhyxvYJks9PwE72X8thfempppDGvwrYhhbiMw7aD5 lSy1lrEXI5koOsaeyxNdU0cvVbPGFA7s0Ct2orZiJz6SZ7HE5Suh39Gh7QlP4AMW3Xvb BbR7yRg0+UQ4CJKR7NcRo78UErQBshsyGyho4SMmOUxQpyKTZffNEdqo9nALE3yC4JV+ XW1Fv3dv1vDTdt4NGtH9NDFeHBWqkMaTjPz4/THgRFjsmsroJnuz3KUyL2xjAyl10uL2 rgxg== X-Gm-Message-State: ALKqPwc+5FzOCUHxz3WgOm53BRlqFLmF1NlIMH4VNIjRwN+1ZlzL5rzG bNEFPVNW16lH9fwb6lnPgjF0/A== X-Google-Smtp-Source: AB8JxZrLw5czHpQgK6U3jM1EYV9AG6m7VimrsiPJOZw4zs/GkFHUin4RjO/mpVKzYEWLPO2E96Z4ug== X-Received: by 2002:adf:deca:: with SMTP id i10-v6mr2545480wrn.37.1527258291003; Fri, 25 May 2018 07:24:51 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 123-v6sm12624041wmt.19.2018.05.25.07.24.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 May 2018 07:24:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 0843E3E025C; Fri, 25 May 2018 15:19:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Fri, 25 May 2018 15:19:15 +0100 Message-Id: <20180525141915.6497-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180525141915.6497-1-alex.bennee@linaro.org> References: <20180525133851.27161-1-alex.bennee@linaro.org> <20180525141915.6497-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v5 49/49] tests/tcg: add run, diff, and skip helper macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Eduardo Habkost , Yongbok Kim , qemu-devel@nongnu.org, "open list:ARM" , Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" As we aren't using the default runners for all the test cases it is easy to miss out things like timeouts. To help with this we add some helpers and use them so we only need to make core changes in one place. Signed-off-by: Alex Bennée --- v5 - new for v5 --- tests/tcg/Makefile | 13 ++++++++++--- tests/tcg/aarch64/Makefile.target | 6 ++---- tests/tcg/arm/Makefile.target | 6 ++---- tests/tcg/i386/Makefile.target | 10 ++++------ tests/tcg/mips/Makefile.target | 3 +-- tests/tcg/multiarch/Makefile.target | 4 ++-- tests/tcg/sparc64/Makefile.target | 2 +- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile index 8158c1f099..ed33f3be8f 100644 --- a/tests/tcg/Makefile +++ b/tests/tcg/Makefile @@ -34,6 +34,15 @@ quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1)) +# $1 = test name, $2 = cmd, $3 = desc +run-test = $(call quiet-command, timeout $(TIMEOUT) $2 > $1.out,"TEST",$3) + +# $1 = test name, $2 = reference +diff-out = $(call quiet-command, diff -u $1.out $2 | head -n 10,"DIFF","$1.out with $2") + +# $1 = test name, $2 = reason +skip-test = @printf " SKIPPED %s because %s\n" $1 $2 + # Tests we are building TESTS= @@ -78,9 +87,7 @@ RUN_TESTS=$(patsubst %,run-%, $(TESTS)) RUN_TESTS+=$(EXTRA_RUNS) run-%: % - $(call quiet-command, \ - timeout $(TIMEOUT) $(QEMU) $< > $<.out, \ - "TEST", "$< on $(TARGET_NAME)") + $(call run-test, $<, $(QEMU) $<, "$< on $(TARGET_NAME)") .PHONY: run run: $(RUN_TESTS) diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target index 7dba32138d..08c45b8470 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -13,7 +13,5 @@ TESTS:=$(AARCH64_TESTS) fcvt: LDFLAGS+=-lm run-fcvt: fcvt - $(call quiet-command, \ - $(QEMU) $< > fcvt.out && \ - diff -u $(AARCH64_SRC)/fcvt.ref fcvt.out, \ - "TEST", "$< (default) on $(TARGET_NAME)") + $(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)") + $(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref) diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target index 14b5435fc6..aa4e4e3782 100644 --- a/tests/tcg/arm/Makefile.target +++ b/tests/tcg/arm/Makefile.target @@ -24,10 +24,8 @@ fcvt: LDFLAGS+=-lm # fcvt: CFLAGS+=-march=armv8.2-a+fp16 -mfpu=neon-fp-armv8 run-fcvt: fcvt - $(call quiet-command, \ - $(QEMU) $< > fcvt.out && \ - diff -u $(ARM_SRC)/fcvt.ref fcvt.out, \ - "TEST", "$< (default) on $(TARGET_NAME)") + $(call run-test,fcvt,$(QEMU) $<,"$< on $(TARGET_NAME)") + $(call diff-out,fcvt,$(ARM_SRC)/fcvt.ref) endif # On ARM Linux only supports 4k pages diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index d5c6f32b93..d482c57ad8 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -31,17 +31,15 @@ test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386 # Specialist test runners run-runcom: runcom pi_10.com - $(call quiet-command, $(QEMU) ./runcom $(I386_SRC)/pi_10.com > runcom.out, "TEST", "$< on $(TARGET_NAME)") + $(call run-test,$<,$(QEMU) ./runcom $(I386_SRC)/pi_10.com,"$< on $(TARGET_NAME)") ifeq ($(SPEED), slow) run-test-i386-fprem: test-i386-fprem - $(call quiet-command, \ - $(QEMU) $< > $<.out && \ - diff -u $(I386_SRC)/$<.ref $<.out, \ - "TEST", "$< (default) on $(TARGET_NAME)") + $(call run-test,test-i386-fprem, $(QEMU) $<,"$< on $(TARGET_NAME)") + $(call diff-test,test-i386-fprem, $(I386_SRC)/$<.ref) else run-test-i386-fprem: test-i386-fprem - $(call quiet-command, /bin/true, "SLOW TEST", "$< SKIPPED on $(TARGET_NAME)") + $(call skip-test, $<, "SLOW") endif # On i386 and x86_64 Linux only supports 4k pages (large pages are a different hack) diff --git a/tests/tcg/mips/Makefile.target b/tests/tcg/mips/Makefile.target index 3db4eaf131..ae4780a5c7 100644 --- a/tests/tcg/mips/Makefile.target +++ b/tests/tcg/mips/Makefile.target @@ -19,5 +19,4 @@ hello-mips: LDFLAGS+=-nostdlib # however they are intended for system tests. run-hello-mips: hello-mips - $(call quiet-command, /bin/true, "BROKEN TEST", "$< SKIPPED on $(TARGET_NAME)") - + $(call skip-test,$<, "BROKEN") diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target index 90e45a881e..b77084c146 100644 --- a/tests/tcg/multiarch/Makefile.target +++ b/tests/tcg/multiarch/Makefile.target @@ -27,10 +27,10 @@ testthread: LDFLAGS+=-lpthread # default case (host page size) run-test-mmap: test-mmap - $(call quiet-command, $(QEMU) $< > test-mmap.out, "TEST", \ + $(call run-test, test-mmap, $(QEMU) $<, \ "$< (default) on $(TARGET_NAME)") # additional page sizes (defined by each architecture adding to EXTRA_RUNS) run-test-mmap-%: test-mmap - $(call quiet-command, $(QEMU) -p $* $< > test-mmap-$*.out, "TEST", \ + $(call run-test, test-mmap-$*, $(QEMU) -p $* $<,\ "$< ($* byte pages) on $(TARGET_NAME)") diff --git a/tests/tcg/sparc64/Makefile.target b/tests/tcg/sparc64/Makefile.target index 7237779b26..064c7a598b 100644 --- a/tests/tcg/sparc64/Makefile.target +++ b/tests/tcg/sparc64/Makefile.target @@ -5,7 +5,7 @@ # different from the other hangs # /home/alex/lsrc/qemu/qemu.git/tests/tcg/multiarch/linux-test.c:264: Value too large for defined data type (ret=-1, errno=92/Value too large for defined data type) run-linux-test: linux-test - $(call quiet-command, /bin/true, "BROKEN TEST", "$< SKIPPED on $(TARGET_NAME)") + $(call skip-test, $<, "BROKEN") # On Sparc64 Linux support 8k pages EXTRA_RUNS+=run-test-mmap-8192