From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106181 invoked by alias); 1 Jun 2019 07:26:55 -0000 Mailing-List: contact cgen-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cgen-owner@sourceware.org Received: (qmail 106173 invoked by uid 89); 1 Jun 2019 07:26:55 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Received:5103, HX-Spam-Relays-External:209.85.210.194, H*RU:209.85.210.194, H*r:sk:mail-pf X-HELO: mail-pf1-f194.google.com Received: from mail-pf1-f194.google.com (HELO mail-pf1-f194.google.com) (209.85.210.194) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 01 Jun 2019 07:26:54 +0000 Received: by mail-pf1-f194.google.com with SMTP id q17so7564326pfq.8 for ; Sat, 01 Jun 2019 00:26:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nl7erPS9kzpIk+VYx8bsyRf8O6chg/koE2GDiUjyfak=; b=bepdrFZjv2zUGfzZHbf8YYSO1YqSjeNoli5i6unA8GMZZWbaCVCgZRFrp6pynFhH1D QkX1y/W73zKXhb0qsp7LpMWfsPsNlce9afp5b/HVf+d1N4aW++2gGjohQQE+ZjkVkmd8 UkTRjIDOCD/0z7dMgh0kUyVj4apWffkGVIvwsNBQL5AN7gUmAWopb+7oAf+aWTEcxF5Q FvedBkw4gb/UBaxMAOsliw+0kiUJHgJhusv4iASyjf9LkLYMOkOSXtNIN0Q/TESWtDGM qrb07PKehALp8yFIYgJpJ/pfnsO7bLyiiiPDKKDxYV+fF8bbK3yuUsT8Jl/jetLbmGBP MsZA== Return-Path: Received: from localhost (g30.211-19-85.ppp.wakwak.ne.jp. [211.19.85.30]) by smtp.gmail.com with ESMTPSA id ds15sm6243368pjb.9.2019.06.01.00.26.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 01 Jun 2019 00:26:51 -0700 (PDT) From: Stafford Horne To: cgen@sourceware.org Cc: Openrisc , Stafford Horne Subject: [PATCH 1/2] cgen: Add unordered compare operation Date: Sat, 01 Jun 2019 07:26:00 -0000 Message-Id: <20190601072629.4070-2-shorne@gmail.com> In-Reply-To: <20190601072629.4070-1-shorne@gmail.com> References: <20190601072629.4070-1-shorne@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SW-Source: 2019-q2/txt/msg00014.txt.bz2 On OpenRISC we have added FPU unordered comparison operations (NaN detection). This patch adds the unordered operation which will generate c hooks to be implemented in simulators. An unordered comparison can now be defined as: ; Compare unordered (set flag if either r1 or r2 is NaN) (set BI flag (unordered WI r1 r2)) ; Compare unordered, greater than or equal (set BI flag (or (unordered WI r1 r2) (ge WI r1 r2))) ChangeLog: yyyy-mm-dd Stafford Horne * rtl-c.scm (unordered): New comparison operation. * rtx-funcs.scm (unordered): New rtx node. --- rtl-c.scm | 4 ++++ rtx-funcs.scm | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/rtl-c.scm b/rtl-c.scm index 1a4b8b0..4d4d671 100644 --- a/rtl-c.scm +++ b/rtl-c.scm @@ -1897,6 +1897,10 @@ (define-fn geu (*estate* options mode s1 s2) (s-cmpop *estate* 'geu ">=" mode s1 s2) ) +(define-fn unordered (*estate* options mode s1 s2) + (s-cmpop *estate* 'unordered #f mode s1 s2) +) + (define-fn member (*estate* options mode value set) ;; NOTE: There are multiple evalutions of VALUE in the generated code. diff --git a/rtx-funcs.scm b/rtx-funcs.scm index 6c28735..f16864a 100644 --- a/rtx-funcs.scm +++ b/rtx-funcs.scm @@ -1086,6 +1086,13 @@ COMPARE #f ) +; Detect NaNs +(drn (unordered &options &mode s1 s2) + BI + (OPTIONS ANYNUMMODE RTX RTX) (NA NA MATCHEXPR MATCH2) + COMPARE + #f +) ; Set membership. ; Useful in ifield assertions. -- 2.21.0