1; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=static < %s | FileCheck %s 2 3; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=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 8define void @foo1() #0 { 9entry: 10 %c = alloca [10 x i8], align 1 11 %arraydecay = getelementptr inbounds [10 x i8], [10 x i8]* %c, i32 0, i32 0 12 call void @x(i8* %arraydecay) 13 %arraydecay1 = getelementptr inbounds [10 x i8], [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 22declare void @x(i8*) #1 23 24; Function Attrs: nounwind 25define void @foo2() #0 { 26entry: 27 %c = alloca [150 x i8], align 1 28 %arraydecay = getelementptr inbounds [150 x i8], [150 x i8]* %c, i32 0, i32 0 29 call void @x(i8* %arraydecay) 30 %arraydecay1 = getelementptr inbounds [150 x i8], [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 40define void @foo3() #0 { 41entry: 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 55declare float @xf() #1 56 57attributes #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" } 58attributes #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