Author: post
Date: 2009-12-30 03:06:28 +0100 (Wed, 30 Dec 2009)
New Revision: 2890
Modified:
branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c
Log:
Minor SSE4 optimization.
Modified: branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c
===================================================================
--- branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c 2009-12-30 02:05:16 UTC
(rev 2889)
+++ branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c 2009-12-30 02:06:28 UTC
(rev 2890)
@@ -1405,12 +1405,10 @@
__m128 r_mask = _mm_cmpgt_ps(r, black_plus_radius);
__m128 g_mask = _mm_cmpgt_ps(g, black_plus_radius);
__m128 b_mask = _mm_cmpgt_ps(b, black_plus_radius);
- y_r = _mm_andnot_ps(r_mask, y_r);
- y_g = _mm_andnot_ps(g_mask, y_g);
- y_b = _mm_andnot_ps(b_mask, y_b);
- y_r = _mm_or_ps(y_r, _mm_and_ps(r_mask, y2_r));
- y_g = _mm_or_ps(y_g, _mm_and_ps(g_mask, y2_g));
- y_b = _mm_or_ps(y_b, _mm_and_ps(b_mask, y2_b));
+
+ y_r = _mm_blendv_ps(y_r, y2_r, r_mask);
+ y_g = _mm_blendv_ps(y_g, y2_g, g_mask);
+ y_b = _mm_blendv_ps(y_b, y2_b, b_mask);
black_minus_radius = _mm_load_ps(_black_minus_radius);
r_mask = _mm_cmple_ps(r, black_minus_radius);
g_mask = _mm_cmple_ps(g, black_minus_radius);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit