buffer_is_zero: use vector optimizations if possible
performance gain on SSE2 is approx. 20-25%. altivec is not tested. performance for unsigned long arithmetic is unchanged. Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									41a259bd2b
								
							
						
					
					
						commit
						56ded708ec
					
				| 
						 | 
				
			
			@ -215,6 +215,11 @@ bool buffer_is_zero(const void *buf, size_t len)
 | 
			
		|||
    long d0, d1, d2, d3;
 | 
			
		||||
    const long * const data = buf;
 | 
			
		||||
 | 
			
		||||
    /* use vector optimized zero check if possible */
 | 
			
		||||
    if (can_use_buffer_find_nonzero_offset(buf, len)) {
 | 
			
		||||
        return buffer_find_nonzero_offset(buf, len) == len;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    assert(len % (4 * sizeof(long)) == 0);
 | 
			
		||||
    len /= sizeof(long);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue