1 ; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static < %s | FileCheck %s 2 3 ; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static < %s | FileCheck %s -check-prefix=NEG 4 5 @f = common global float 0.000000e+00, align 4 6 7 ; Function Attrs: nounwind 8 define void @foo1() #0 { 9 entry: 10 %c = alloca [10 x i8], align 1 11 %arraydecay = getelementptr inbounds [10 x i8]* %c, i32 0, i32 0 12 call void @x(i8* %arraydecay) 13 %arraydecay1 = getelementptr inbounds [10 x i8]* %c, i32 0, i32 0 14 call void @x(i8* %arraydecay1) 15 ret void 16 ; CHECK: .ent foo1 17 ; CHECK: save $16, $17, $ra, [[FS:[0-9]+]] # 16 bit inst 18 ; CHECK: restore $16, $17, $ra, [[FS]] # 16 bit inst 19 ; CHECK: .end foo1 20 } 21 22 declare void @x(i8*) #1 23 24 ; Function Attrs: nounwind 25 define void @foo2() #0 { 26 entry: 27 %c = alloca [150 x i8], align 1 28 %arraydecay = getelementptr inbounds [150 x i8]* %c, i32 0, i32 0 29 call void @x(i8* %arraydecay) 30 %arraydecay1 = getelementptr inbounds [150 x i8]* %c, i32 0, i32 0 31 call void @x(i8* %arraydecay1) 32 ret void 33 ; CHECK: .ent foo2 34 ; CHECK: save $16, $17, $ra, [[FS:[0-9]+]] 35 ; CHECK: restore $16, $17, $ra, [[FS]] 36 ; CHECK: .end foo2 37 } 38 39 ; Function Attrs: nounwind 40 define void @foo3() #0 { 41 entry: 42 %call = call float @xf() 43 store float %call, float* @f, align 4 44 ret void 45 ; CHECK: .ent foo3 46 ; CHECK: save $16, $17, $ra, $18, [[FS:[0-9]+]] 47 ; CHECK: restore $16, $17, $ra, $18, [[FS]] 48 ; CHECK: .end foo3 49 ; NEG: .ent foo3 50 ; NEG-NOT: save $16, $17, $ra, $18, [[FS:[0-9]+]] # 16 bit inst 51 ; NEG-NOT: restore $16, $17, $ra, $18, [[FS]] # 16 bit inst 52 ; NEG: .end foo3 53 } 54 55 declare float @xf() #1 56 57 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" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 58 attributes #1 = { "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" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 59 60 61