aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2019-12-16 03:43:19 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2019-12-15 19:43:19 -0800
commit438fbf630358e113747c77b5be64fc3c1321d12a (patch)
tree3c3518b08e2149af6caf84a307a3544fa6e0ba2c /gcc
parent0f1374e98b0003ed48a011a1b5629f81dd13b832 (diff)
downloadgcc-438fbf630358e113747c77b5be64fc3c1321d12a.zip
gcc-438fbf630358e113747c77b5be64fc3c1321d12a.tar.gz
gcc-438fbf630358e113747c77b5be64fc3c1321d12a.tar.bz2
Add a couple int128_t bit-field testcases.
2019-12-15 Andrew Pinski <apinski@marvell.com> * gcc.c-torture/compile/bitfield-1.c: New test. * gcc.c-torture/compile/bitfield-endian-1.c: New test. * gcc.c-torture/compile/bitfield-endian-2.c: New test. From-SVN: r279409
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/bitfield-1.c13
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/bitfield-endian-1.c15
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/bitfield-endian-2.c15
4 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index da0d3ab..591f152 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-12-15 Andrew Pinski <apinski@marvell.com>
+
+ * gcc.c-torture/compile/bitfield-1.c: New test.
+ * gcc.c-torture/compile/bitfield-endian-1.c: New test.
+ * gcc.c-torture/compile/bitfield-endian-2.c: New test.
+
2019-12-14 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/92930
diff --git a/gcc/testsuite/gcc.c-torture/compile/bitfield-1.c b/gcc/testsuite/gcc.c-torture/compile/bitfield-1.c
new file mode 100644
index 0000000..0d5a82c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/bitfield-1.c
@@ -0,0 +1,13 @@
+/* { dg-require-effective-target int128 } */
+
+struct f
+{
+ __uint128_t t:124;
+ __uint128_t t1:4;
+};
+
+struct f g(void)
+{
+ struct f t = {1, 2};
+ return t;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/bitfield-endian-1.c b/gcc/testsuite/gcc.c-torture/compile/bitfield-endian-1.c
new file mode 100644
index 0000000..90920c9
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/bitfield-endian-1.c
@@ -0,0 +1,15 @@
+/* { dg-require-effective-target int128 } */
+
+#define ENDIAN __attribute((scalar_storage_order ("big-endian")))
+
+typedef struct ENDIAN
+{
+ __uint128_t t:124;
+ __uint128_t t1:4;
+}f;
+
+f g(void)
+{
+ f t = {1, 2};
+ return t;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/bitfield-endian-2.c b/gcc/testsuite/gcc.c-torture/compile/bitfield-endian-2.c
new file mode 100644
index 0000000..7644f71
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/bitfield-endian-2.c
@@ -0,0 +1,15 @@
+/* { dg-require-effective-target int128 } */
+
+#define ENDIAN __attribute((scalar_storage_order ("little-endian")))
+
+typedef struct ENDIAN
+{
+ __uint128_t t:124;
+ __uint128_t t1:4;
+}f;
+
+f g(void)
+{
+ f t = {1, 2};
+ return t;
+}