diff mbox

[rs6000] Fix PR target/80246, DFP builtins using the wrong types

Message ID 5ddc3aa0-f8ad-3ca4-4d70-1759f0bd9bb1@vnet.ibm.com
State New
Headers show

Commit Message

Peter Bergner April 3, 2017, 5:01 p.m. UTC
On 4/3/17 11:04 AM, Peter Bergner wrote:
> On 4/2/17 1:53 PM, Segher Boessenkool wrote:
>> I also have a fix for the dfp-builtin-1.c problem.
> 
> Something like the following maybe?  It seems to work for me.
> I think the hard_dfp predicate was added after the dfp-builtin-[12].c
> test cases were added, which is maybe why Mike used powerpc_vsx_ok?
> Seems like we should switch it to using hard_dfp now.

As we discussed offline, I'll commit the following patch to fix up
the dfp-builtin-1.c failures.  I'll also commit this to the GCC 5 & 6
release branches, since the same issue exists there.

Peter

Comments

Peter Bergner April 3, 2017, 6:08 p.m. UTC | #1
On 4/3/17 12:01 PM, Peter Bergner wrote:
> On 4/3/17 11:04 AM, Peter Bergner wrote:
>> On 4/2/17 1:53 PM, Segher Boessenkool wrote:
>>> I also have a fix for the dfp-builtin-1.c problem.
>>
>> Something like the following maybe?  It seems to work for me.
>> I think the hard_dfp predicate was added after the dfp-builtin-[12].c
>> test cases were added, which is maybe why Mike used powerpc_vsx_ok?
>> Seems like we should switch it to using hard_dfp now.
> 
> As we discussed offline, I'll commit the following patch to fix up
> the dfp-builtin-1.c failures.  I'll also commit this to the GCC 5 & 6
> release branches, since the same issue exists there.

Ok, committed everywhere.  Thanks and sorry about the breakage! :-(

Peter
diff mbox

Patch

Index: dfp-builtin-1.c
===================================================================
--- dfp-builtin-1.c	(revision 246653)
+++ dfp-builtin-1.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
-/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-require-effective-target hard_dfp } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
 /* { dg-options "-mcpu=power7 -O2" } */
 /* { dg-final { scan-assembler-times "ddedpd " 4    } } */
@@ -8,8 +8,12 @@ 
 /* { dg-final { scan-assembler-times "diex "   1    } } */
 /* { dg-final { scan-assembler-times "dscli "  2    } } */
 /* { dg-final { scan-assembler-times "dscri "  2    } } */
-/* { dg-final { scan-assembler-times "std "    1    } } */
-/* { dg-final { scan-assembler-times "ld "     1    } } */
+/* { dg-final { scan-assembler-times "std "    1    { target lp64 } } } */
+/* { dg-final { scan-assembler-times "ld "     1    { target lp64 } } } */
+/* 32-bit needs a stack frame, and needs two GPR mem insns per _Decimal64.  */
+/* { dg-final { scan-assembler-times "stwu "   2    { target ilp32 } } } */
+/* { dg-final { scan-assembler-times "stw "    2    { target ilp32 } } } */
+/* { dg-final { scan-assembler-times "lwz "    2    { target ilp32 } } } */
 /* { dg-final { scan-assembler-times "stfd "   1    } } */
 /* { dg-final { scan-assembler-times "lfd "    1    } } */
 /* { dg-final { scan-assembler-not   "bl __builtin" } } */
Index: dfp-builtin-2.c
===================================================================
--- dfp-builtin-2.c	(revision 246653)
+++ dfp-builtin-2.c	(working copy)
@@ -1,7 +1,5 @@ 
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
-/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
-/* { dg-skip-if "" { powerpc*-*-*spe* } { "*" } { "" } } */
-/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-require-effective-target hard_dfp } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
 /* { dg-options "-mcpu=power7 -O2" } */
 /* { dg-final { scan-assembler-times "ddedpdq " 4    } } */