------- Comment #3 from bonzini at gnu dot org 2006-12-01 11:04 ------- We need multiple steps here to solve this bug and 17687:
1) change sincos (x, &s, &c) to sincos (x, &t1, &t2); s = t1; c = t2; Don't know the best place to do this. 2) alternatively, change sincos (x, &s, &c) to v2df = vec_sincos (x) *s = v2df[0] *c = v2df[1] This needs to be done at tree->rtl expansion time, because we don't have access to v2df[N] at tree level. 3) perform strength reduction of sin+cos to sincos. I believe it has to be done in a special pass (like CSE reciprocals), and that's actually why the file was named tree-ssa-_math-opts_.c rather than tree-ssa-recip.c. This could be the place to do (1) too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30038