From c9aee4508bc514dcea6383921d6b75644aecd35a Mon Sep 17 00:00:00 2001 From: Peter Bergner Date: Thu, 22 May 2014 10:55:48 -0500 Subject: [PATCH] htm.md (ttest): Use correct shift value to get CR0. gcc/ * config/rs6000/htm.md (ttest): Use correct shift value to get CR0. gcc/testsuite/ * gcc.target/powerpc/htm-ttest.c: New test. From-SVN: r210815 --- gcc/ChangeLog | 4 ++++ gcc/config/rs6000/htm.md | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.target/powerpc/htm-ttest.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/powerpc/htm-ttest.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f09c3b7b40f..1e11b1a54fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-05-22 Peter Bergner + + * config/rs6000/htm.md (ttest): Use correct shift value to get CR0. + 2014-05-22 Richard Earnshaw PR target/61208 diff --git a/gcc/config/rs6000/htm.md b/gcc/config/rs6000/htm.md index 9dbb499ce21..ca7f7fdf4fb 100644 --- a/gcc/config/rs6000/htm.md +++ b/gcc/config/rs6000/htm.md @@ -179,7 +179,7 @@ (const_int 0)] UNSPECV_HTM_TABORTWCI)) (set (subreg:CC (match_dup 2) 0) (match_dup 1)) - (set (match_dup 3) (lshiftrt:SI (match_dup 2) (const_int 24))) + (set (match_dup 3) (lshiftrt:SI (match_dup 2) (const_int 28))) (parallel [(set (match_operand:SI 0 "int_reg_operand" "") (and:SI (match_dup 3) (const_int 15))) (clobber (scratch:CC))])] diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4d814635755..84052373e91 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-05-22 Peter Bergner + + * gcc.target/powerpc/htm-ttest.c: New test. + 2014-05-22 Eric Botcazou * gnat.dg/opt37.ad[sb]: New test. diff --git a/gcc/testsuite/gcc.target/powerpc/htm-ttest.c b/gcc/testsuite/gcc.target/powerpc/htm-ttest.c new file mode 100644 index 00000000000..29cbd5b90b3 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/htm-ttest.c @@ -0,0 +1,14 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-require-effective-target powerpc_htm_ok } */ +/* { dg-options "-O2 -mhtm" } */ + +/* { dg-final { scan-assembler "rlwinm r?\[0-9\]+,r?\[0-9\]+,3,30,31" { target { ilp32 } } } } */ +/* { dg-final { scan-assembler "rldicl r?\[0-9\]+,r?\[0-9\]+,35,62" { target { lp64 } } } } */ + +#include +long +ttest (void) +{ + return _HTM_STATE(__builtin_ttest()); +}