Skip to content

Commit

Permalink
libcilkrts/
Browse files Browse the repository at this point in the history
2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR target/66326
	* runtime/config/x86/os-unix-sysdep.c (sysdep_save_fp_ctrl_state):
	Use fnstcw instead fnstsw.


gcc/testsuite

2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR target/66326
	* g++.dg/cilk-plus/CK/pr66326.cc: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230008 138bc75d-0d04-0410-961f-82ee72b054a4
  • Loading branch information
ienkovich committed Nov 9, 2015
1 parent 716c563 commit 405a4bd
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 1 deletion.
5 changes: 5 additions & 0 deletions gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
2015-11-09 Igor Zamyatin <igor.zamyatin@intel.com>

PR target/66326
* g++.dg/cilk-plus/CK/pr66326.cc: New test.

2015-11-09 Richard Henderson <rth@redhat.com>

* gcc.target/i386/addr-space-1.c: New test.
Expand Down
33 changes: 33 additions & 0 deletions gcc/testsuite/g++.dg/cilk-plus/CK/pr66326.cc
@@ -0,0 +1,33 @@
/* { dg-options "-fcilkplus" } */
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */

#include <cilk/cilk.h>
#include <vector>
#include <random>

template <class T>
void do_not_optimize_away(T&& x) {
asm volatile("" : "+r"(x));
}

const int N = 1'000'000;

auto compute() {
std::vector<double> v(N);
auto rng = std::mt19937{std::random_device{}()};
std::uniform_real_distribution<double> dist(0, 1);
for (int i = 0; i < N; ++i) v[i] = std::log(std::sqrt(dist(rng)));
return v;
}

int main() {
std::vector<double> v1, v2, v3;
cilk_spawn [&] { v1 = compute(); }();
cilk_spawn [&] { v2 = compute(); }();
v3 = compute();
do_not_optimize_away(v1.data());
do_not_optimize_away(v2.data());
do_not_optimize_away(v3.data());
return 0;
}
6 changes: 6 additions & 0 deletions libcilkrts/ChangeLog
@@ -1,3 +1,9 @@
2015-11-09 Igor Zamyatin <igor.zamyatin@intel.com>

PR target/66326
* runtime/config/x86/os-unix-sysdep.c (sysdep_save_fp_ctrl_state):
Use fnstcw instead fnstsw.

2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>

* Makefile.in: Regenerated with automake-1.11.6.
Expand Down
2 changes: 1 addition & 1 deletion libcilkrts/runtime/config/x86/os-unix-sysdep.c
Expand Up @@ -135,7 +135,7 @@ void sysdep_save_fp_ctrl_state(__cilkrts_stack_frame *sf)
{
__asm__ ("stmxcsr %0" : "=m" (sf->mxcsr));
}
__asm__ ("fnstsw %0" : "=m" (sf->fpcsr));
__asm__ ("fnstcw %0" : "=m" (sf->fpcsr));
}
#endif
}
Expand Down

0 comments on commit 405a4bd

Please sign in to comment.