1; RUN: llc -mtriple=mipsel-linux-gnu -mattr=mips16 -relocation-model=static < %s | FileCheck %s 2 3; RUN: llc -mtriple=mipsel-linux-gnu -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 call void @x(ptr %c) 12 call void @x(ptr %c) 13 ret void 14; CHECK: .ent foo1 15; CHECK: save $16, $17, $ra, [[FS:[0-9]+]] # 16 bit inst 16; CHECK: restore $16, $17, $ra, [[FS]] # 16 bit inst 17; CHECK: .end foo1 18} 19 20declare void @x(ptr) #1 21 22; Function Attrs: nounwind 23define void @foo2() #0 { 24entry: 25 %c = alloca [150 x i8], align 1 26 call void @x(ptr %c) 27 call void @x(ptr %c) 28 ret void 29; CHECK: .ent foo2 30; CHECK: save $16, $17, $ra, [[FS:[0-9]+]] 31; CHECK: restore $16, $17, $ra, [[FS]] 32; CHECK: .end foo2 33} 34 35; Function Attrs: nounwind 36define void @foo3() #0 { 37entry: 38 %call = call float @xf() 39 store float %call, ptr @f, align 4 40 ret void 41; CHECK: .ent foo3 42; CHECK: save $16, $17, $ra, $18, [[FS:[0-9]+]] 43; CHECK: restore $16, $17, $ra, $18, [[FS]] 44; CHECK: .end foo3 45; NEG: .ent foo3 46; NEG-NOT: save $16, $17, $ra, $18, {{[0-9]+}} # 16 bit inst 47; NEG-NOT: restore $16, $17, $ra, $18, {{[0-9]+}} # 16 bit inst 48; NEG: .end foo3 49} 50 51declare float @xf() #1 52 53attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 54attributes #1 = { "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 55 56 57