26 lines
		
	
	
		
			839 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			839 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc %s -o - -verify-machineinstrs | FileCheck %s
 | |
| 
 | |
| target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
 | |
| target triple = "x86_64-apple-unknown"
 | |
| 
 | |
| @TheArray = external global [100000 x double], align 16
 | |
| 
 | |
| ; This test ensures, via the machine verifier, that the register class for the
 | |
| ; index of the double store is correctly constrained to not include SP.
 | |
| 
 | |
| ; CHECK: movsd
 | |
| 
 | |
| define i32 @main(i32* %i, double %tmpv) {
 | |
| bb:
 | |
|   br label %bb7
 | |
| 
 | |
| bb7:                                              ; preds = %bb7, %bb
 | |
|   %storemerge = phi i32 [ 0, %bb ], [ %tmp19, %bb7 ]
 | |
|   %tmp15 = zext i32 %storemerge to i64
 | |
|   %tmp16 = getelementptr inbounds [100000 x double], [100000 x double]* @TheArray, i64 0, i64 %tmp15
 | |
|   store double %tmpv, double* %tmp16, align 8
 | |
|   %tmp18 = load i32, i32* %i, align 4
 | |
|   %tmp19 = add i32 %tmp18, 1
 | |
|   br label %bb7
 | |
| }
 |