mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			17 lines
		
	
	
		
			528 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			528 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //@ only-x86_64
 | |
| //@ compile-flags: -C opt-level=3 -C target-cpu=x86-64
 | |
| #![crate_type = "lib"]
 | |
| 
 | |
| /// Check that the fast-path of `is_ascii` uses a `pmovmskb` instruction.
 | |
| /// Platforms lacking an equivalent instruction use other techniques for
 | |
| /// optimizing `is_ascii`.
 | |
| // CHECK-LABEL: @is_ascii_autovectorized
 | |
| #[no_mangle]
 | |
| pub fn is_ascii_autovectorized(s: &[u8]) -> bool {
 | |
|     // CHECK: load <32 x i8>
 | |
|     // CHECK-NEXT: icmp slt <32 x i8>
 | |
|     // CHECK-NEXT: bitcast <32 x i1>
 | |
|     // CHECK-NEXT: icmp eq i32
 | |
|     s.is_ascii()
 | |
| }
 | 
