1 ; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16 | FileCheck %s -check-prefix=32 2 3 @i = global i32 1, align 4 4 @f = global float 1.000000e+00, align 4 5 6 define void @vv() #0 { 7 entry: 8 ret void 9 } 10 11 ; 32: .set mips16 # @vv 12 ; 32: .ent vv 13 14 ; 32: save {{.+}} 15 ; 32: restore {{.+}} 16 ; 32: .end vv 17 18 define i32 @iv() #0 { 19 entry: 20 %0 = load i32* @i, align 4 21 ret i32 %0 22 } 23 24 ; 32: .set mips16 # @iv 25 ; 32: .ent iv 26 27 ; 32: save {{.+}} 28 ; 32: restore {{.+}} 29 ; 32: .end iv 30 31 define void @vif(i32 %i, float %f) #0 { 32 entry: 33 %i.addr = alloca i32, align 4 34 %f.addr = alloca float, align 4 35 store i32 %i, i32* %i.addr, align 4 36 store float %f, float* %f.addr, align 4 37 ret void 38 } 39 40 ; 32: .set mips16 # @vif 41 ; 32: .ent vif 42 43 ; 32: save {{.+}} 44 ; 32: restore {{.+}} 45 ; 32: .end vif 46 47 define void @foo() #0 { 48 entry: 49 store float 2.000000e+00, float* @f, align 4 50 ret void 51 } 52 53 ; 32: .set mips16 # @foo 54 ; 32: .ent foo 55 56 ; 32: save {{.+}} 57 ; 32: restore {{.+}} 58 ; 32: .end foo 59 60 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } 61 62 63 define float @fv() #0 { 64 entry: 65 ret float 1.000000e+00 66 } 67 68 ; 32: .set nomips16 # @fv 69 ; 32: .ent fv 70 ; 32: .set noreorder 71 ; 32: .set nomacro 72 ; 32: .set noat 73 ; 32: jr $ra 74 ; 32: .set at 75 ; 32: .set macro 76 ; 32: .set reorder 77 ; 32: .end fv 78