Как я должен передавать данные SSE своим функциям/операторам?

Я пишу пару классов-оболочек для SSE Intrinsics -, в основном для того, чтобы получить безопасные геометрические операции типа -, а также для добавления пары удобных функций. Все мои функции и операторы встроены. Теоретически все они будут скомпилированы непосредственно в сырую сборку SSE (без вызовов функций ), и мои электроны никогда не покинут регистры XMM.

Как мне передать свои классы SSE в качестве аргументов, чтобы гарантировать этот результат?

Я никогда не изменяю свои аргументы,поэтому выбор в основном между передачей по значению или передачей по константной ссылке. Я предполагаю, что хороший компилятор оптимизирует оба стиля для одного и того же кода. Но я этого точно не знаю. Может ли кто-нибудь с большим опытом в этой области рассказать о передовом опыте?

Заранее спасибо!

5
задан Paul R 9 August 2012 в 07:59
поделиться