82 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llc  -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16  | FileCheck %s -check-prefix=32
 | 
						|
 | 
						|
; RUN: llc  -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips32 -relocation-model=static -O3 -mips16-constant-islands < %s -mips-os16  | FileCheck %s -check-prefix=cisle
 | 
						|
 | 
						|
@i = global i32 1, align 4
 | 
						|
@f = global float 1.000000e+00, align 4
 | 
						|
 | 
						|
define void @vv() #0 {
 | 
						|
entry:
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
; 32: 	.set	mips16
 | 
						|
; 32: 	.ent	vv
 | 
						|
 | 
						|
; 32:	save	{{.+}}
 | 
						|
; 32:	restore	{{.+}} 
 | 
						|
; 32:	.end	vv
 | 
						|
 | 
						|
define i32 @iv() #0 {
 | 
						|
entry:
 | 
						|
  %0 = load i32, i32* @i, align 4
 | 
						|
  ret i32 %0
 | 
						|
}
 | 
						|
 | 
						|
; 32: 	.set	mips16
 | 
						|
; 32: 	.ent	iv
 | 
						|
 | 
						|
; 32:	save	{{.+}}
 | 
						|
; 32:	restore	{{.+}} 
 | 
						|
; 32:	.end	iv
 | 
						|
 | 
						|
define void @vif(i32 %i, float %f) #0 {
 | 
						|
entry:
 | 
						|
  %i.addr = alloca i32, align 4
 | 
						|
  %f.addr = alloca float, align 4
 | 
						|
  store i32 %i, i32* %i.addr, align 4
 | 
						|
  store float %f, float* %f.addr, align 4
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
; 32: 	.set	mips16
 | 
						|
; 32: 	.ent	vif
 | 
						|
 | 
						|
; 32:	save	{{.+}}
 | 
						|
; 32:	restore	{{.+}} 
 | 
						|
; 32:	.end	vif
 | 
						|
 | 
						|
define void @foo() #0 {
 | 
						|
entry:
 | 
						|
  store float 2.000000e+00, float* @f, align 4
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
; 32: 	.set	mips16
 | 
						|
; 32: 	.ent	foo
 | 
						|
 | 
						|
; 32:	save	{{.+}}
 | 
						|
; 32:	restore	{{.+}} 
 | 
						|
; 32:	.end	foo
 | 
						|
 | 
						|
; cisle:	.end	foo
 | 
						|
 | 
						|
attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
 | 
						|
 | 
						|
 | 
						|
define float @fv() #0 {
 | 
						|
entry:
 | 
						|
  ret float 1.000000e+00
 | 
						|
}
 | 
						|
 | 
						|
; 32: 	.set	nomips16
 | 
						|
; 32: 	.ent	fv
 | 
						|
; 32:	.set	noreorder
 | 
						|
; 32:	.set	nomacro
 | 
						|
; 32:	.set	noat
 | 
						|
; 32:	jr	$ra
 | 
						|
; 32:	.set	at
 | 
						|
; 32:	.set	macro
 | 
						|
; 32:	.set	reorder
 | 
						|
; 32:	.end	fv
 |