<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:10.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">This is breaking tests when building without assertions enabled, e.g.
<a href="https://lab.llvm.org/buildbot/#/builders/67/builds/13266/steps/7/logs/stdio">https://lab.llvm.org/buildbot/#/builders/67/builds/13266/steps/7/logs/stdio</a>, I think because the initial entry: label isn’t generated in such builds. Could you please take a look?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">cfe-commits <cfe-commits-bounces@lists.llvm.org> on behalf of Nikita Popov via cfe-commits <cfe-commits@lists.llvm.org><br>
<b>Date: </b>Friday, November 10, 2023 at 7:28 AM<br>
<b>To: </b>cfe-commits@lists.llvm.org <cfe-commits@lists.llvm.org><br>
<b>Subject: </b>[clang] cd7ba9f - [Clang] Generate test checks (NFC)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">!-------------------------------------------------------------------|<br>
This Message Is From an External Sender<br>
<br>
|-------------------------------------------------------------------!<br>
<br>
<br>
Author: Nikita Popov<br>
Date: 2023-11-10T16:27:37+01:00<br>
New Revision: cd7ba9f3d090afb5d3b15b0dcf379d15d1e11e33<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/cd7ba9f3d090afb5d3b15b0dcf379d15d1e11e33">https://github.com/llvm/llvm-project/commit/cd7ba9f3d090afb5d3b15b0dcf379d15d1e11e33</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/cd7ba9f3d090afb5d3b15b0dcf379d15d1e11e33.diff">https://github.com/llvm/llvm-project/commit/cd7ba9f3d090afb5d3b15b0dcf379d15d1e11e33.diff</a><br>
<br>
LOG: [Clang] Generate test checks (NFC)<br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
clang/test/Analysis/builtin_signbit.cpp<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff --git a/clang/test/Analysis/builtin_signbit.cpp b/clang/test/Analysis/builtin_signbit.cpp<br>
index 251391952f9c586..a0bf7a45be1302b 100644<br>
--- a/clang/test/Analysis/builtin_signbit.cpp<br>
+++ b/clang/test/Analysis/builtin_signbit.cpp<br>
@@ -1,46 +1,113 @@<br>
+// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3<br>
// RUN: %clang -target powerpc-linux-gnu -emit-llvm -S -mabi=ibmlongdouble \<br>
-// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-BE<br>
+// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK-BE32<br>
// RUN: %clang -target powerpc64-linux-gnu -emit-llvm -S -mabi=ibmlongdouble \<br>
-// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-BE<br>
+// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK-BE64<br>
// RUN: %clang -target powerpc64le-linux-gnu -emit-llvm -S -mabi=ibmlongdouble \<br>
-// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-LE<br>
+// RUN: -O0 %s -o - | FileCheck %s --check-prefixes=CHECK-LE<br>
<br>
bool b;<br>
double d = -1.0;<br>
long double ld = -1.0L;<br>
+// CHECK-BE32-LABEL: define dso_local void @_Z12test_signbitv(<br>
+// CHECK-BE32-SAME: ) #[[ATTR0:[0-9]+]] {<br>
+// CHECK-BE32-NEXT: entry:<br>
+// CHECK-BE32-NEXT: [[FROMBOOL:%.*]] = zext i1 icmp slt (i64 trunc (i128 lshr (i128 bitcast (ppc_fp128 0xM3FF00000000000000000000000000000 to i128), i128 64) to i64), i64 0) to i8<br>
+// CHECK-BE32-NEXT: store i8 [[FROMBOOL]], ptr @b, align 1<br>
+// CHECK-BE32-NEXT: [[TMP0:%.*]] = load ppc_fp128, ptr @ld, align 16<br>
+// CHECK-BE32-NEXT: [[TMP1:%.*]] = bitcast ppc_fp128 [[TMP0]] to i128<br>
+// CHECK-BE32-NEXT: [[TMP2:%.*]] = lshr i128 [[TMP1]], 64<br>
+// CHECK-BE32-NEXT: [[TMP3:%.*]] = trunc i128 [[TMP2]] to i64<br>
+// CHECK-BE32-NEXT: [[TMP4:%.*]] = icmp slt i64 [[TMP3]], 0<br>
+// CHECK-BE32-NEXT: [[FROMBOOL1:%.*]] = zext i1 [[TMP4]] to i8<br>
+// CHECK-BE32-NEXT: store i8 [[FROMBOOL1]], ptr @b, align 1<br>
+// CHECK-BE32-NEXT: store i8 0, ptr @b, align 1<br>
+// CHECK-BE32-NEXT: [[TMP5:%.*]] = load double, ptr @d, align 8<br>
+// CHECK-BE32-NEXT: [[CONV:%.*]] = fptrunc double [[TMP5]] to float<br>
+// CHECK-BE32-NEXT: [[TMP6:%.*]] = bitcast float [[CONV]] to i32<br>
+// CHECK-BE32-NEXT: [[TMP7:%.*]] = icmp slt i32 [[TMP6]], 0<br>
+// CHECK-BE32-NEXT: [[FROMBOOL2:%.*]] = zext i1 [[TMP7]] to i8<br>
+// CHECK-BE32-NEXT: store i8 [[FROMBOOL2]], ptr @b, align 1<br>
+// CHECK-BE32-NEXT: [[FROMBOOL3:%.*]] = zext i1 icmp slt (i64 trunc (i128 lshr (i128 bitcast (ppc_fp128 0xM3FF00000000000000000000000000000 to i128), i128 64) to i64), i64 0) to i8<br>
+// CHECK-BE32-NEXT: store i8 [[FROMBOOL3]], ptr @b, align 1<br>
+// CHECK-BE32-NEXT: [[TMP8:%.*]] = load ppc_fp128, ptr @ld, align 16<br>
+// CHECK-BE32-NEXT: [[TMP9:%.*]] = bitcast ppc_fp128 [[TMP8]] to i128<br>
+// CHECK-BE32-NEXT: [[TMP10:%.*]] = lshr i128 [[TMP9]], 64<br>
+// CHECK-BE32-NEXT: [[TMP11:%.*]] = trunc i128 [[TMP10]] to i64<br>
+// CHECK-BE32-NEXT: [[TMP12:%.*]] = icmp slt i64 [[TMP11]], 0<br>
+// CHECK-BE32-NEXT: [[FROMBOOL4:%.*]] = zext i1 [[TMP12]] to i8<br>
+// CHECK-BE32-NEXT: store i8 [[FROMBOOL4]], ptr @b, align 1<br>
+// CHECK-BE32-NEXT: ret void<br>
+//<br>
+// CHECK-BE64-LABEL: define dso_local void @_Z12test_signbitv(<br>
+// CHECK-BE64-SAME: ) #[[ATTR0:[0-9]+]] {<br>
+// CHECK-BE64-NEXT: entry:<br>
+// CHECK-BE64-NEXT: [[FROMBOOL:%.*]] = zext i1 icmp slt (i64 trunc (i128 lshr (i128 bitcast (ppc_fp128 0xM3FF00000000000000000000000000000 to i128), i128 64) to i64), i64 0) to i8<br>
+// CHECK-BE64-NEXT: store i8 [[FROMBOOL]], ptr @b, align 1<br>
+// CHECK-BE64-NEXT: [[TMP0:%.*]] = load ppc_fp128, ptr @ld, align 16<br>
+// CHECK-BE64-NEXT: [[TMP1:%.*]] = bitcast ppc_fp128 [[TMP0]] to i128<br>
+// CHECK-BE64-NEXT: [[TMP2:%.*]] = lshr i128 [[TMP1]], 64<br>
+// CHECK-BE64-NEXT: [[TMP3:%.*]] = trunc i128 [[TMP2]] to i64<br>
+// CHECK-BE64-NEXT: [[TMP4:%.*]] = icmp slt i64 [[TMP3]], 0<br>
+// CHECK-BE64-NEXT: [[FROMBOOL1:%.*]] = zext i1 [[TMP4]] to i8<br>
+// CHECK-BE64-NEXT: store i8 [[FROMBOOL1]], ptr @b, align 1<br>
+// CHECK-BE64-NEXT: store i8 0, ptr @b, align 1<br>
+// CHECK-BE64-NEXT: [[TMP5:%.*]] = load double, ptr @d, align 8<br>
+// CHECK-BE64-NEXT: [[CONV:%.*]] = fptrunc double [[TMP5]] to float<br>
+// CHECK-BE64-NEXT: [[TMP6:%.*]] = bitcast float [[CONV]] to i32<br>
+// CHECK-BE64-NEXT: [[TMP7:%.*]] = icmp slt i32 [[TMP6]], 0<br>
+// CHECK-BE64-NEXT: [[FROMBOOL2:%.*]] = zext i1 [[TMP7]] to i8<br>
+// CHECK-BE64-NEXT: store i8 [[FROMBOOL2]], ptr @b, align 1<br>
+// CHECK-BE64-NEXT: [[FROMBOOL3:%.*]] = zext i1 icmp slt (i64 trunc (i128 lshr (i128 bitcast (ppc_fp128 0xM3FF00000000000000000000000000000 to i128), i128 64) to i64), i64 0) to i8<br>
+// CHECK-BE64-NEXT: store i8 [[FROMBOOL3]], ptr @b, align 1<br>
+// CHECK-BE64-NEXT: [[TMP8:%.*]] = load ppc_fp128, ptr @ld, align 16<br>
+// CHECK-BE64-NEXT: [[TMP9:%.*]] = bitcast ppc_fp128 [[TMP8]] to i128<br>
+// CHECK-BE64-NEXT: [[TMP10:%.*]] = lshr i128 [[TMP9]], 64<br>
+// CHECK-BE64-NEXT: [[TMP11:%.*]] = trunc i128 [[TMP10]] to i64<br>
+// CHECK-BE64-NEXT: [[TMP12:%.*]] = icmp slt i64 [[TMP11]], 0<br>
+// CHECK-BE64-NEXT: [[FROMBOOL4:%.*]] = zext i1 [[TMP12]] to i8<br>
+// CHECK-BE64-NEXT: store i8 [[FROMBOOL4]], ptr @b, align 1<br>
+// CHECK-BE64-NEXT: ret void<br>
+//<br>
+// CHECK-LE-LABEL: define dso_local void @_Z12test_signbitv(<br>
+// CHECK-LE-SAME: ) #[[ATTR0:[0-9]+]] {<br>
+// CHECK-LE-NEXT: entry:<br>
+// CHECK-LE-NEXT: [[FROMBOOL:%.*]] = zext i1 icmp slt (i64 trunc (i128 bitcast (ppc_fp128 0xM3FF00000000000000000000000000000 to i128) to i64), i64 0) to i8<br>
+// CHECK-LE-NEXT: store i8 [[FROMBOOL]], ptr @b, align 1<br>
+// CHECK-LE-NEXT: [[TMP0:%.*]] = load ppc_fp128, ptr @ld, align 16<br>
+// CHECK-LE-NEXT: [[TMP1:%.*]] = bitcast ppc_fp128 [[TMP0]] to i128<br>
+// CHECK-LE-NEXT: [[TMP2:%.*]] = trunc i128 [[TMP1]] to i64<br>
+// CHECK-LE-NEXT: [[TMP3:%.*]] = icmp slt i64 [[TMP2]], 0<br>
+// CHECK-LE-NEXT: [[FROMBOOL1:%.*]] = zext i1 [[TMP3]] to i8<br>
+// CHECK-LE-NEXT: store i8 [[FROMBOOL1]], ptr @b, align 1<br>
+// CHECK-LE-NEXT: store i8 0, ptr @b, align 1<br>
+// CHECK-LE-NEXT: [[TMP4:%.*]] = load double, ptr @d, align 8<br>
+// CHECK-LE-NEXT: [[CONV:%.*]] = fptrunc double [[TMP4]] to float<br>
+// CHECK-LE-NEXT: [[TMP5:%.*]] = bitcast float [[CONV]] to i32<br>
+// CHECK-LE-NEXT: [[TMP6:%.*]] = icmp slt i32 [[TMP5]], 0<br>
+// CHECK-LE-NEXT: [[FROMBOOL2:%.*]] = zext i1 [[TMP6]] to i8<br>
+// CHECK-LE-NEXT: store i8 [[FROMBOOL2]], ptr @b, align 1<br>
+// CHECK-LE-NEXT: [[FROMBOOL3:%.*]] = zext i1 icmp slt (i64 trunc (i128 bitcast (ppc_fp128 0xM3FF00000000000000000000000000000 to i128) to i64), i64 0) to i8<br>
+// CHECK-LE-NEXT: store i8 [[FROMBOOL3]], ptr @b, align 1<br>
+// CHECK-LE-NEXT: [[TMP7:%.*]] = load ppc_fp128, ptr @ld, align 16<br>
+// CHECK-LE-NEXT: [[TMP8:%.*]] = bitcast ppc_fp128 [[TMP7]] to i128<br>
+// CHECK-LE-NEXT: [[TMP9:%.*]] = trunc i128 [[TMP8]] to i64<br>
+// CHECK-LE-NEXT: [[TMP10:%.*]] = icmp slt i64 [[TMP9]], 0<br>
+// CHECK-LE-NEXT: [[FROMBOOL4:%.*]] = zext i1 [[TMP10]] to i8<br>
+// CHECK-LE-NEXT: store i8 [[FROMBOOL4]], ptr @b, align 1<br>
+// CHECK-LE-NEXT: ret void<br>
+//<br>
void test_signbit()<br>
{<br>
b = __builtin_signbit(1.0L);<br>
- // CHECK: i128<br>
- // CHECK-LE-NOT: lshr<br>
- // CHECK-BE: lshr<br>
- // CHECK: bitcast<br>
- // CHECK: ppc_fp128<br>
<br>
b = __builtin_signbit(ld);<br>
- // CHECK: bitcast<br>
- // CHECK: ppc_fp128<br>
- // CHECK-LE-NOT: lshr<br>
- // CHECK-BE: lshr<br>
<br>
b = __builtin_signbitf(1.0);<br>
- // CHECK: store i8 0<br>
<br>
b = __builtin_signbitf(d);<br>
- // CHECK: bitcast<br>
- // CHECK-LE-NOT: lshr<br>
- // CHECK-BE-NOT: lshr<br>
<br>
b = __builtin_signbitl(1.0L);<br>
- // CHECK: i128<br>
- // CHECK-LE-NOT: lshr<br>
- // CHECK-BE: lshr<br>
- // CHECK: bitcast<br>
- // CHECK: ppc_fp128<br>
<br>
b = __builtin_signbitl(ld);<br>
- // CHECK: bitcast<br>
- // CHECK: ppc_fp128<br>
- // CHECK-LE-NOT: lshr<br>
- // CHECK-BE: lshr<br>
}<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
cfe-commits@lists.llvm.org<br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a>
<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>