]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
This commit was manufactured by cvs2svn to create branch
authorNo Author <no-author@gcc.gnu.org>
Thu, 26 Sep 2002 10:19:11 +0000 (10:19 +0000)
committerNo Author <no-author@gcc.gnu.org>
Thu, 26 Sep 2002 10:19:11 +0000 (10:19 +0000)
'gcc-3_2-branch'.

From-SVN: r57535

gcc/testsuite/gcc.c-torture/execute/shiftdi.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/execute/shiftdi.c b/gcc/testsuite/gcc.c-torture/execute/shiftdi.c
new file mode 100644 (file)
index 0000000..44f0dfc
--- /dev/null
@@ -0,0 +1,20 @@
+/* Failed on sparc with -mv8plus because sparc.c:set_extends() thought
+   erroneously that SImode ASHIFT chops the upper bits, it does not.  */
+
+typedef unsigned long long uint64;
+
+void g(uint64 x, int y, int z, uint64 *p)
+{
+       unsigned w = ((x >> y) & 0xffffffffULL) << (z & 0x1f);
+       *p |= (w & 0xffffffffULL) << z;
+}
+
+int main(void)
+{
+       uint64 a = 0;
+       g(0xdeadbeef01234567ULL, 0, 0, &a);
+       return (a == 0x01234567) ? 0 : 1;
+}
+
+
+