mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	peaks: small optimization
This commit is contained in:
		
							parent
							
								
									8daff4ce50
								
							
						
					
					
						commit
						67f26c9caf
					
				
					 1 changed files with 4 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -41,7 +41,8 @@ static void impl_peaks_process_sse(struct resample *r, int channel,
 | 
			
		|||
	struct peaks_data *pd = r->data;
 | 
			
		||||
	float *s = src, *d = dst, m;
 | 
			
		||||
	uint32_t i, o, end, chunk, unrolled;
 | 
			
		||||
	__m128 in, max, mask = _mm_set_ps1(-0.0f);
 | 
			
		||||
	__m128 in, max, mask = _mm_andnot_ps(_mm_set_ps1(-0.0f),
 | 
			
		||||
			_mm_cmpeq_ps(_mm_setzero_ps(), _mm_setzero_ps()));
 | 
			
		||||
 | 
			
		||||
	o = i = 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -57,8 +58,8 @@ static void impl_peaks_process_sse(struct resample *r, int channel,
 | 
			
		|||
 | 
			
		||||
		for (; i < unrolled; i+=4) {
 | 
			
		||||
			in = _mm_loadu_ps(&s[i]);
 | 
			
		||||
			in = _mm_andnot_ps(mask, in);
 | 
			
		||||
			max = _mm_max_ps(max, in);
 | 
			
		||||
			in = _mm_and_ps(mask, in);
 | 
			
		||||
			max = _mm_max_ps(in, max);
 | 
			
		||||
		}
 | 
			
		||||
		for (; i < chunk; i++)
 | 
			
		||||
			m = SPA_MAX(fabsf(s[i]), m);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue