В настоящее время я работаю над оптимизацией некоторых кодов C под MSVC, в которой выполняются некоторые вычисления sin () и cos ().
Я использую реализации SSE, такие как:
a = _mm_set_pd(cos(w),sin(w));
Однако, когда я проверяю коды разборки позже, я обнаруживаю, что компилятор Microsoft интерпретирует cos (w) и sin (w) следующим образом:
call __libm_sse2_cos
...
call __libm_sse2_sin
, в котором cos и sin вызываются по отдельности.Но я ожидаю, что вызов компилятора __libm_sse2_sincos вычислит sin и cos одновременно с одним и тем же радианом.
Так возможно ли, что я скажу компилятору сделать это?или какой-нибудь интерфейс для их вызова под MSVC?Как насчет Linux?
Большое спасибо за помощь.