@@ -1937,6 +1937,9 @@ test system can execute decimal floating point tests.
@item hard_dfp
Target generates decimal floating point instructions with current options.
+
+@item dfp_bid
+Target uses the BID format for decimal floating point.
@end table
@subsubsection ARM-specific attributes
@@ -1,5 +1,6 @@
/* Test non-canonical BID significands: _Decimal128. Bug 91226. */
-/* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
+/* { dg-do run { target lp64 } } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O2" } */
extern void abort (void);
@@ -1,6 +1,7 @@
/* Test non-canonical BID significands: _Decimal128, case where
combination field starts 11. Bug 91226. */
-/* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
+/* { dg-do run { target lp64 } } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O2" } */
extern void abort (void);
@@ -1,5 +1,6 @@
/* Test non-canonical BID significands: _Decimal128. Bug 91226. */
-/* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
+/* { dg-do run { target lp64 } } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O0" } */
#include "bid-non-canonical-d128-1.c"
@@ -1,6 +1,7 @@
/* Test non-canonical BID significands: _Decimal128, case where
combination field starts 11. Bug 91226. */
-/* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
+/* { dg-do run { target lp64 } } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O0" } */
#include "bid-non-canonical-d128-2.c"
@@ -1,5 +1,6 @@
/* Test non-canonical BID significands: _Decimal32. Bug 91226. */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-do run } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O2" } */
extern void abort (void);
@@ -1,5 +1,6 @@
/* Test non-canonical BID significands: _Decimal32. Bug 91226. */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-do run } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O0" } */
#include "bid-non-canonical-d32-1.c"
@@ -1,5 +1,6 @@
/* Test non-canonical BID significands: _Decimal64. Bug 91226. */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-do run } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O2" } */
extern void abort (void);
@@ -1,5 +1,6 @@
/* Test non-canonical BID significands: _Decimal64. Bug 91226. */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-do run } */
+/* { dg-require-effective-target dfp_bid } */
/* { dg-options "-std=gnu2x -O0" } */
#include "bid-non-canonical-d64-1.c"
@@ -3397,6 +3397,17 @@ proc check_effective_target_dfprt { } {
}]
}
+# Return 1 if the target uses the BID format for Decimal Floating
+# Point, 0 otherwise.
+
+proc check_effective_target_dfp_bid { } {
+ if { [istarget aarch64*-*-*]
+ || [istarget i?86-*-*] || [istarget x86_64-*-*]} {
+ return 1
+ }
+ return 0
+}
+
# Return 1 iff target has unsigned plain 'char' by default.
proc check_effective_target_unsigned_char {} {